diff options
Diffstat (limited to 'src/net/eathena')
-rw-r--r-- | src/net/eathena/inventoryhandler.cpp | 14 | ||||
-rw-r--r-- | src/net/eathena/inventoryhandler.h | 2 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/net/eathena/inventoryhandler.cpp b/src/net/eathena/inventoryhandler.cpp index d0458a61b..da404fe05 100644 --- a/src/net/eathena/inventoryhandler.cpp +++ b/src/net/eathena/inventoryhandler.cpp @@ -411,4 +411,18 @@ void InventoryHandler::processPlayerEquip(Net::MessageIn &msg) BLOCK_END("InventoryHandler::processPlayerEquip") } +void InventoryHandler::processPlayerUnEquip(Net::MessageIn &msg) +{ + BLOCK_START("InventoryHandler::processPlayerUnEquip") + msg.readInt16(); // inder val - INVENTORY_OFFSET; + const int equipType = msg.readInt16(); + const uint8_t flag = msg.readUInt8(); + + if (flag) + mEquips.setEquipment(getSlot(equipType), -1); + if (equipType & 0x8000) + ArrowsListener::distributeEvent(); + BLOCK_END("InventoryHandler::processPlayerUnEquip") +} + } // namespace EAthena diff --git a/src/net/eathena/inventoryhandler.h b/src/net/eathena/inventoryhandler.h index 7d1b9ddfc..78f35acbb 100644 --- a/src/net/eathena/inventoryhandler.h +++ b/src/net/eathena/inventoryhandler.h @@ -66,6 +66,8 @@ class InventoryHandler final : public MessageHandler, void processPlayerInventory(Net::MessageIn &msg); void processPlayerEquip(Net::MessageIn &msg); + + void processPlayerUnEquip(Net::MessageIn &msg); }; } // namespace EAthena |