From ff700c28153f374f4fbaca122ecb3a9751818e46 Mon Sep 17 00:00:00 2001 From: aleos Date: Mon, 6 Jun 2022 09:47:15 -0400 Subject: [PATCH] Cleans up check overall --- src/char/char.cpp | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/src/char/char.cpp b/src/char/char.cpp index b67a899140..e4ddf8e578 100644 --- a/src/char/char.cpp +++ b/src/char/char.cpp @@ -628,30 +628,24 @@ int char_memitemdata_to_sql(const struct item items[], int max, int id, enum sto if( items[i].nameid == 0 || flag[i] ) continue; - if( items[i].nameid == item.nameid - && (memcmp(items[i].card, item.card, sizeof(int) * MAX_SLOTS) == 0) - && (memcmp(items[i].option, item.option, 5 * MAX_ITEM_RDM_OPT) == 0) - && items[i].unique_id == item.unique_id + if( items[i].nameid == item.nameid && + items[i].amount == item.amount && + items[i].equip == item.equip && + items[i].identify == item.identify && + items[i].refine == item.refine && + items[i].attribute == item.attribute && + items[i].expire_time == item.expire_time && + items[i].bound == item.bound && + items[i].enchantgrade == item.enchantgrade && + (tableswitch != TABLE_INVENTORY || (items[i].favorite == item.favorite && items[i].equipSwitch == item.equipSwitch)) && + items[i].unique_id == item.unique_id ) { //They are the same item. int k; ARR_FIND( 0, MAX_SLOTS, j, items[i].card[j] != item.card[j] ); ARR_FIND( 0, MAX_ITEM_RDM_OPT, k, items[i].option[k].id != item.option[k].id || items[i].option[k].value != item.option[k].value || items[i].option[k].param != item.option[k].param ); - if( j == MAX_SLOTS && - k == MAX_ITEM_RDM_OPT && - items[i].amount == item.amount && - items[i].equip == item.equip && - items[i].identify == item.identify && - items[i].refine == item.refine && - items[i].attribute == item.attribute && - items[i].expire_time == item.expire_time && - items[i].bound == item.bound && - items[i].enchantgrade == item.enchantgrade && - (tableswitch != TABLE_INVENTORY || (items[i].favorite == item.favorite && items[i].equipSwitch == item.equipSwitch)) ) - ; //Do nothing. - else - { + if( j != MAX_SLOTS && k != MAX_ITEM_RDM_OPT) { // update all fields. StringBuf_Clear(&buf); StringBuf_Printf(&buf, "UPDATE `%s` SET `amount`='%d', `equip`='%u', `identify`='%d', `refine`='%d',`attribute`='%d', `expire_time`='%u', `bound`='%d', `unique_id`='%" PRIu64 "', `enchantgrade`='%d'",