diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/net/ea/equipmenthandler.cpp | 14 | ||||
-rw-r--r-- | src/net/ea/equipmenthandler.h | 1 | ||||
-rw-r--r-- | src/net/ea/inventoryhandler.cpp | 1 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/net/ea/equipmenthandler.cpp b/src/net/ea/equipmenthandler.cpp index 0b6c5753..3520bca5 100644 --- a/src/net/ea/equipmenthandler.cpp +++ b/src/net/ea/equipmenthandler.cpp @@ -113,6 +113,20 @@ void setEquipment(int eAthenaSlot, int index, bool equiped) } } +void clearEquipment() +{ + for (int i = 0; i < Equipment::EQUIP_VECTOREND; i++) + { + if (equips[i]) + { + equips[i]->setEquipped(false); + player_node->mEquipment->setEquipment(i, -1); + } + + equips[i] = NULL; + } +} + Item *getRealEquipedItem(const Item *equipped) { if (!equipped) diff --git a/src/net/ea/equipmenthandler.h b/src/net/ea/equipmenthandler.h index 5239c486..47c2f803 100644 --- a/src/net/ea/equipmenthandler.h +++ b/src/net/ea/equipmenthandler.h @@ -29,6 +29,7 @@ class Item; namespace EAthena { void setEquipment(int eAthenaSlot, int index, bool equiped); +void clearEquipment(); Item *getRealEquipedItem(const Item *equipped); class EquipmentHandler : public MessageHandler diff --git a/src/net/ea/inventoryhandler.cpp b/src/net/ea/inventoryhandler.cpp index 172e3e95..6ee974fc 100644 --- a/src/net/ea/inventoryhandler.cpp +++ b/src/net/ea/inventoryhandler.cpp @@ -87,6 +87,7 @@ void InventoryHandler::handleMessage(MessageIn &msg) if (msg.getId() == SMSG_PLAYER_INVENTORY) { // Clear inventory - this will be a complete refresh + clearEquipment(); inventory->clear(); } else |