diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-09-06 19:22:29 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-09-06 19:42:03 +0300 |
commit | 0d990d032d98ea26da479b6378087d0d7dd2a91e (patch) | |
tree | bfad702538e6d55357b78fce29e694cc8e3b86e9 /src/net/eathena | |
parent | 813779679c40323d29aaa6cb334210e3944d5c99 (diff) | |
download | manaplus-0d990d032d98ea26da479b6378087d0d7dd2a91e.tar.gz manaplus-0d990d032d98ea26da479b6378087d0d7dd2a91e.tar.bz2 manaplus-0d990d032d98ea26da479b6378087d0d7dd2a91e.tar.xz manaplus-0d990d032d98ea26da479b6378087d0d7dd2a91e.zip |
Move processPlayerStorageEquip from ea namespace into eathena and tmwa.
Diffstat (limited to 'src/net/eathena')
-rw-r--r-- | src/net/eathena/inventoryhandler.cpp | 40 | ||||
-rw-r--r-- | src/net/eathena/inventoryhandler.h | 2 |
2 files changed, 42 insertions, 0 deletions
diff --git a/src/net/eathena/inventoryhandler.cpp b/src/net/eathena/inventoryhandler.cpp index fa6379caa..63cf388c9 100644 --- a/src/net/eathena/inventoryhandler.cpp +++ b/src/net/eathena/inventoryhandler.cpp @@ -457,4 +457,44 @@ void InventoryHandler::processPlayerInventoryRemove2(Net::MessageIn &msg) BLOCK_END("InventoryHandler::processPlayerInventoryRemove2") } +void InventoryHandler::processPlayerStorageEquip(Net::MessageIn &msg) +{ + BLOCK_START("InventoryHandler::processPlayerStorageEquip") + msg.readInt16(); // length + const int number = (msg.getLength() - 4) / 20; + + for (int loop = 0; loop < number; loop++) + { + int cards[4]; + const int index = msg.readInt16() - STORAGE_OFFSET; + const int itemId = msg.readInt16(); + const uint8_t itemType = msg.readUInt8(); + uint8_t identified = msg.readUInt8(); + const int amount = 1; + msg.readInt16(); // Equip Point? + msg.readInt16(); // Another Equip Point? + msg.readUInt8(); // Attribute (broken) + const uint8_t refine = msg.readUInt8(); + for (int i = 0; i < 4; i++) + cards[i] = msg.readInt16(); + + if (mDebugInventory) + { + logger->log("Index: %d, ID: %d, Type: %d, Identified: %u, " + "Qty: %d, Cards: %d, %d, %d, %d, Refine: %u", + index, itemId, itemType, + static_cast<unsigned int>(identified), amount, + cards[0], cards[1], cards[2], cards[3], + static_cast<unsigned int>(refine)); + } + + if (serverVersion < 1 && identified > 1U) + identified = 1U; + + mInventoryItems.push_back(Ea::InventoryItem(index, + itemId, amount, refine, identified, false)); + } + BLOCK_END("InventoryHandler::processPlayerStorageEquip") +} + } // namespace EAthena diff --git a/src/net/eathena/inventoryhandler.h b/src/net/eathena/inventoryhandler.h index 652a864de..399806a2f 100644 --- a/src/net/eathena/inventoryhandler.h +++ b/src/net/eathena/inventoryhandler.h @@ -70,6 +70,8 @@ class InventoryHandler final : public MessageHandler, void processPlayerUnEquip(Net::MessageIn &msg); void processPlayerInventoryRemove2(Net::MessageIn &msg); + + void processPlayerStorageEquip(Net::MessageIn &msg); }; } // namespace EAthena |