diff options
author | Andrei Karas <akaras@inbox.ru> | 2012-02-19 15:49:45 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2012-02-19 15:49:45 +0300 |
commit | b30a5d2289a0b68410dee5343e148aba88ea4839 (patch) | |
tree | 9d756785b9166ced76675ad3ebe398c09b494a3c /src/net/ea/itemhandler.cpp | |
parent | 9a3a196dbf633a699c26d0227802a42f025c8bfd (diff) | |
parent | 164e4ed5a153ce06badb52f3a5a4dff16c58d7e6 (diff) | |
download | plus-b30a5d2289a0b68410dee5343e148aba88ea4839.tar.gz plus-b30a5d2289a0b68410dee5343e148aba88ea4839.tar.bz2 plus-b30a5d2289a0b68410dee5343e148aba88ea4839.tar.xz plus-b30a5d2289a0b68410dee5343e148aba88ea4839.zip |
Merge branch 'master' into stripped
Diffstat (limited to 'src/net/ea/itemhandler.cpp')
-rw-r--r-- | src/net/ea/itemhandler.cpp | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/src/net/ea/itemhandler.cpp b/src/net/ea/itemhandler.cpp index e08fe2cd1..7a6ee2743 100644 --- a/src/net/ea/itemhandler.cpp +++ b/src/net/ea/itemhandler.cpp @@ -35,28 +35,39 @@ ItemHandler::ItemHandler() { } -void ItemHandler::processItemVisible(Net::MessageIn &msg, bool isDrop) +void ItemHandler::processItemVisible(Net::MessageIn &msg) { int id = msg.readInt32(); int itemId = msg.readInt16(); unsigned char identify = msg.readInt8(); // identify flag int x = msg.readInt16(); int y = msg.readInt16(); - int amount1 = msg.readInt16(); - int amount2 = msg.readInt16(); + int amount = msg.readInt16(); + int subX = msg.readInt8() + 16 - 8; + int subY = msg.readInt8() + 32 - 8; if (actorSpriteManager) { - if (!isDrop) - { - actorSpriteManager->createItem(id, itemId, - x, y, amount1, identify); - } - else - { - actorSpriteManager->createItem(id, itemId, - x, y, amount2, identify); - } + actorSpriteManager->createItem(id, itemId, + x, y, amount, identify, subX, subY); + } +} + +void ItemHandler::processItemDropped(Net::MessageIn &msg) +{ + int id = msg.readInt32(); + int itemId = msg.readInt16(); + unsigned char identify = msg.readInt8(); // identify flag + int x = msg.readInt16(); + int y = msg.readInt16(); + int subX = msg.readInt8() + 16 - 8; + int subY = msg.readInt8() + 32 - 8; + int amount = msg.readInt16(); + + if (actorSpriteManager) + { + actorSpriteManager->createItem(id, itemId, + x, y, amount, identify, subX, subY); } } |