diff --git a/changelog.txt b/changelog.txt index 89fe34460..464669fd5 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,9 +1,10 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50) ------------------------------------------------------- -== 07/21/2014 == +== 07/31/2014 == Uleat: More inventory slot constant conversions. This should be the bulk of everything..but, due to the size of the server code, there may be some hidden ones. (client_packet.cpp and the client translators still need a thorough review.) Note: Please report any abnormal behaviour with inventory-related content..each diff file was reviewed 3 times..but, things CAN be missed. +Uleat: Test fix for client crashes in Bazaar, while actively selling, with a charm in the Trader's Satchel. == 07/27/2014 == Uleat: More updates to the dictionary. Added a 'constants' file for each client translator..these will tie-in to the dictionary. Started diff --git a/zone/bonuses.cpp b/zone/bonuses.cpp index a0b8d819c..8ccc8d64e 100644 --- a/zone/bonuses.cpp +++ b/zone/bonuses.cpp @@ -3087,10 +3087,20 @@ bool Client::CalcItemScale(uint32 slot_x, uint32 slot_y) { for (i = slot_x; i <= slot_y; i++) { if (i == MainAmmo) // moved here from calling procedure to facilitate future range changes where MainAmmo may not be the last slot continue; + ItemInst* inst = m_inv.GetItem(i); + if(inst == nullptr) continue; + // TEST CODE: test for bazaar trader crashing with charm items + if (Trader) + if (i >= EmuConstants::GENERAL_BAGS_BEGIN && i <= EmuConstants::GENERAL_BAGS_END) { + ItemInst* parent_item = m_inv.GetItem(Inventory::CalcSlotId(i)); + if (parent_item && parent_item->GetItem()->ID == 17899) // trader satchel + continue; + } + bool update_slot = false; if(inst->IsScaling()) { @@ -3170,10 +3180,20 @@ bool Client::DoItemEnterZone(uint32 slot_x, uint32 slot_y) { for(int i = slot_x; i <= slot_y; i++) { if (i == MainAmmo) // moved here from calling procedure to facilitate future range changes where MainAmmo may not be the last slot continue; + ItemInst* inst = m_inv.GetItem(i); + if(!inst) continue; + // TEST CODE: test for bazaar trader crashing with charm items + if (Trader) + if (i >= EmuConstants::GENERAL_BAGS_BEGIN && i <= EmuConstants::GENERAL_BAGS_END) { + ItemInst* parent_item = m_inv.GetItem(Inventory::CalcSlotId(i)); + if (parent_item && parent_item->GetItem()->ID == 17899) // trader satchel + continue; + } + bool update_slot = false; if(inst->IsScaling()) {