diff options
Diffstat (limited to 'src/map/storage.c')
-rw-r--r-- | src/map/storage.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/map/storage.c b/src/map/storage.c index acb72be81..aacc7c053 100644 --- a/src/map/storage.c +++ b/src/map/storage.c @@ -133,9 +133,12 @@ int compare_item(struct item *a, struct item *b) a->bound == b->bound && a->unique_id == b->unique_id) { - int i; - for (i = 0; i < MAX_SLOTS && (a->card[i] == b->card[i]); i++); - return (i == MAX_SLOTS); + int i = 0, k = 0; + ARR_FIND(0, MAX_SLOTS, i, a->card[i] != b->card[i]); + ARR_FIND(0, MAX_ITEM_OPTIONS, k, a->option[k].index != b->option[k].index || a->option[k].value != b->option[k].value); + + if (i == MAX_SLOTS && k == MAX_ITEM_OPTIONS) + return 1; } return 0; } |