diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-08-27 16:39:11 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-08-27 16:39:11 +0300 |
commit | 750a31150ed7fc4b3e7b295552207783f7e4a0d3 (patch) | |
tree | 983f2b4b8c1a8856dd731f7b9f4b78714e64ac0d /src/net/eathena/itemhandler.cpp | |
parent | f964252564162f70df2cda6b06b45245d0a383ad (diff) | |
download | plus-750a31150ed7fc4b3e7b295552207783f7e4a0d3.tar.gz plus-750a31150ed7fc4b3e7b295552207783f7e4a0d3.tar.bz2 plus-750a31150ed7fc4b3e7b295552207783f7e4a0d3.tar.xz plus-750a31150ed7fc4b3e7b295552207783f7e4a0d3.zip |
Move receive code from itemhandler into separate file.
Diffstat (limited to 'src/net/eathena/itemhandler.cpp')
-rw-r--r-- | src/net/eathena/itemhandler.cpp | 167 |
1 files changed, 10 insertions, 157 deletions
diff --git a/src/net/eathena/itemhandler.cpp b/src/net/eathena/itemhandler.cpp index f25addbe0..2240cf392 100644 --- a/src/net/eathena/itemhandler.cpp +++ b/src/net/eathena/itemhandler.cpp @@ -28,6 +28,9 @@ #include "enums/simpletypes/damaged.h" +#include "net/ea/itemrecv.h" + +#include "net/eathena/itemrecv.h" #include "net/eathena/protocol.h" #include "debug.h" @@ -58,31 +61,31 @@ void ItemHandler::handleMessage(Net::MessageIn &msg) switch (msg.getId()) { case SMSG_ITEM_VISIBLE: - processItemVisible(msg); + ItemRecv::processItemVisible(msg); break; case SMSG_ITEM_DROPPED: - processItemDropped(msg); + ItemRecv::processItemDropped(msg); break; case SMSG_ITEM_REMOVE: - processItemRemove(msg); + Ea::ItemRecv::processItemRemove(msg); break; case SMSG_GRAFFITI_VISIBLE: - processGraffiti(msg); + ItemRecv::processGraffiti(msg); break; case SMSG_ITEM_MVP_DROPPED: - processItemMvpDropped(msg); + ItemRecv::processItemMvpDropped(msg); break; case SMSG_ITEM_VISIBLE2: - processItemVisible2(msg); + ItemRecv::processItemVisible2(msg); break; case SMSG_ITEM_DROPPED2: - processItemDropped2(msg); + ItemRecv::processItemDropped2(msg); break; default: @@ -90,154 +93,4 @@ void ItemHandler::handleMessage(Net::MessageIn &msg) } } -void ItemHandler::processItemDropped(Net::MessageIn &msg) -{ - const BeingId id = msg.readBeingId("id"); - const int itemId = msg.readInt16("item id"); - const int itemType = msg.readInt16("type"); - const Identified identified = fromInt( - msg.readUInt8("identify"), Identified); - const int x = msg.readInt16("x"); - const int y = msg.readInt16("y"); - const int subX = static_cast<int>(msg.readInt8("subx")); - const int subY = static_cast<int>(msg.readInt8("suby")); - const int amount = msg.readInt16("count"); - - if (actorManager) - { - actorManager->createItem(id, - itemId, - x, y, - itemType, - amount, - 0, - ItemColor_one, - identified, - Damaged_false, - subX, subY, - nullptr); - } -} - -void ItemHandler::processItemDropped2(Net::MessageIn &msg) -{ - const BeingId id = msg.readBeingId("id"); - const int itemId = msg.readInt16("item id"); - const int itemType = msg.readUInt8("type"); - const Identified identified = fromInt( - msg.readUInt8("identify"), Identified); - const Damaged damaged = fromBool(msg.readUInt8("attribute"), Damaged); - const uint8_t refine = msg.readUInt8("refine"); - int cards[4]; - for (int f = 0; f < 4; f++) - cards[f] = msg.readInt16("card"); - const int x = msg.readInt16("x"); - const int y = msg.readInt16("y"); - const int amount = msg.readInt16("amount"); - const int subX = static_cast<int>(msg.readInt8("subx")); - const int subY = static_cast<int>(msg.readInt8("suby")); - - if (actorManager) - { - actorManager->createItem(id, - itemId, - x, y, - itemType, - amount, - refine, - ItemColorManager::getColorFromCards(&cards[0]), - identified, - damaged, - subX, subY, - &cards[0]); - } -} - -void ItemHandler::processGraffiti(Net::MessageIn &msg) -{ - UNIMPLIMENTEDPACKET; - msg.readInt32("graffiti id"); - msg.readInt32("creator id"); - msg.readInt16("x"); - msg.readInt16("y"); - msg.readUInt8("job"); - msg.readUInt8("visible"); - msg.readUInt8("is content"); - msg.readString(80, "text"); -} - -void ItemHandler::processItemMvpDropped(Net::MessageIn &msg) -{ - UNIMPLIMENTEDPACKET; - msg.readInt16("len"); - msg.readUInt8("type"); - msg.readInt16("item id"); - msg.readUInt8("len"); - msg.readString(24, "name"); - msg.readUInt8("monster name len"); - msg.readString(24, "monster name"); -} - -void ItemHandler::processItemVisible(Net::MessageIn &msg) -{ - const BeingId id = msg.readBeingId("item object id"); - const int itemId = msg.readInt16("item id"); - const Identified identified = fromInt( - msg.readUInt8("identify"), Identified); - const int x = msg.readInt16("x"); - const int y = msg.readInt16("y"); - const int amount = msg.readInt16("amount"); - const int subX = static_cast<int>(msg.readInt8("sub x")); - const int subY = static_cast<int>(msg.readInt8("sub y")); - - if (actorManager) - { - actorManager->createItem(id, - itemId, - x, y, - 0, - amount, - 0, - ItemColor_one, - identified, - Damaged_false, - subX, subY, - nullptr); - } -} - -void ItemHandler::processItemVisible2(Net::MessageIn &msg) -{ - const BeingId id = msg.readBeingId("item object id"); - const int itemId = msg.readInt16("item id"); - const int itemType = msg.readUInt8("type"); - const Identified identified = fromInt( - msg.readUInt8("identify"), Identified); - const Damaged damaged = fromBool(msg.readUInt8("attribute"), Damaged); - const uint8_t refine = msg.readUInt8("refine"); - int cards[4]; - for (int f = 0; f < 4; f++) - cards[f] = msg.readInt16("card"); - const int x = msg.readInt16("x"); - const int y = msg.readInt16("y"); - const int amount = msg.readInt16("amount"); - const int subX = static_cast<int>(msg.readInt8("sub x")); - const int subY = static_cast<int>(msg.readInt8("sub y")); - - if (actorManager) - { - actorManager->createItem(id, - itemId, - x, y, - itemType, - amount, - refine, - ItemColorManager::getColorFromCards(&cards[0]), - identified, - damaged, - subX, subY, - &cards[0]); - } -} - } // namespace EAthena |