diff options
-rw-r--r-- | src/actormanager.cpp | 11 | ||||
-rw-r--r-- | src/actormanager.h | 2 | ||||
-rw-r--r-- | src/flooritem.cpp | 6 | ||||
-rw-r--r-- | src/flooritem.h | 7 | ||||
-rw-r--r-- | src/net/ea/itemhandler.cpp | 7 | ||||
-rw-r--r-- | src/net/eathena/itemhandler.cpp | 7 | ||||
-rw-r--r-- | src/net/tmwa/itemhandler.cpp | 10 |
7 files changed, 40 insertions, 10 deletions
diff --git a/src/actormanager.cpp b/src/actormanager.cpp index 96d234327..ec0e0ed1b 100644 --- a/src/actormanager.cpp +++ b/src/actormanager.cpp @@ -299,12 +299,19 @@ Being *ActorManager::createBeing(const BeingId id, FloorItem *ActorManager::createItem(const BeingId id, const int itemId, const int x, const int y, + const int itemType, const int amount, const ItemColor color, + const Identified identified, const int subX, const int subY) { - FloorItem *const floorItem = new FloorItem(id, itemId, - x, y, amount, color); + FloorItem *const floorItem = new FloorItem(id, + itemId, + x, y, + itemType, + amount, + color, + identified); floorItem->postInit(mMap, subX, subY); if (!checkForPickup(floorItem)) diff --git a/src/actormanager.h b/src/actormanager.h index af597cbfb..609ecd22a 100644 --- a/src/actormanager.h +++ b/src/actormanager.h @@ -83,8 +83,10 @@ class ActorManager final: public ConfigListener FloorItem *createItem(const BeingId id, const int itemId, const int x, const int y, + const int itemType, const int amount, const ItemColor color, + const Identified identified, const int subX, const int subY); /** diff --git a/src/flooritem.cpp b/src/flooritem.cpp index d846d5f9b..8cb59bd9d 100644 --- a/src/flooritem.cpp +++ b/src/flooritem.cpp @@ -46,8 +46,10 @@ extern volatile int cur_time; FloorItem::FloorItem(const BeingId id, const int itemId, const int x, const int y, + const int itemType, const int amount, - const ItemColor color) : + const ItemColor color, + const Identified identified) : ActorSprite(id), mItemId(itemId), mX(x), @@ -55,9 +57,11 @@ FloorItem::FloorItem(const BeingId id, mDropTime(cur_time), mAmount(amount), mHeightPosDiff(0), + mItemType(itemType), mPickupCount(0), mCursor(Cursor::CURSOR_PICKUP), mColor(color), + mIdentified(identified), mShowMsg(true), mHighlight(config.getBoolValue("floorItemsHighlight")) { diff --git a/src/flooritem.h b/src/flooritem.h index fe0bd26ad..b6310e419 100644 --- a/src/flooritem.h +++ b/src/flooritem.h @@ -23,6 +23,7 @@ #ifndef FLOORITEM_H #define FLOORITEM_H +#include "enums/simpletypes/identified.h" #include "enums/simpletypes/itemcolor.h" #include "being/actorsprite.h" @@ -50,8 +51,10 @@ class FloorItem final : public ActorSprite FloorItem(const BeingId id, const int itemId, const int x, const int y, + const int itemType, const int amount, - const ItemColor color); + const ItemColor color, + const Identified identified); A_DELETE_COPY(FloorItem) @@ -111,9 +114,11 @@ class FloorItem final : public ActorSprite int mDropTime; int mAmount; int mHeightPosDiff; + int mItemType; unsigned int mPickupCount; Cursor::Cursor mCursor; ItemColor mColor; + Identified mIdentified; bool mShowMsg; bool mHighlight; }; diff --git a/src/net/ea/itemhandler.cpp b/src/net/ea/itemhandler.cpp index 478c17990..84998bb0c 100644 --- a/src/net/ea/itemhandler.cpp +++ b/src/net/ea/itemhandler.cpp @@ -43,7 +43,8 @@ void ItemHandler::processItemVisible(Net::MessageIn &msg) { const BeingId id = msg.readBeingId("item object id"); const int itemId = msg.readInt16("item id"); - const ItemColor identify = fromInt(msg.readUInt8("identify"), ItemColor); + 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"); @@ -55,8 +56,10 @@ void ItemHandler::processItemVisible(Net::MessageIn &msg) actorManager->createItem(id, itemId, x, y, + 0, amount, - identify, + ItemColor_one, + identified, subX, subY); } } diff --git a/src/net/eathena/itemhandler.cpp b/src/net/eathena/itemhandler.cpp index 4fa4a7e3e..f906ae9e9 100644 --- a/src/net/eathena/itemhandler.cpp +++ b/src/net/eathena/itemhandler.cpp @@ -81,8 +81,9 @@ void ItemHandler::processItemDropped(Net::MessageIn &msg) { const BeingId id = msg.readBeingId("id"); const int itemId = msg.readInt16("item id"); - msg.readInt16("type"); - msg.readUInt8("identify"); + 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")); @@ -94,8 +95,10 @@ void ItemHandler::processItemDropped(Net::MessageIn &msg) actorManager->createItem(id, itemId, x, y, + itemType, amount, ItemColor_one, + identified, subX, subY); } } diff --git a/src/net/tmwa/itemhandler.cpp b/src/net/tmwa/itemhandler.cpp index 745c79865..dfe2023f4 100644 --- a/src/net/tmwa/itemhandler.cpp +++ b/src/net/tmwa/itemhandler.cpp @@ -81,8 +81,14 @@ void ItemHandler::processItemDropped(Net::MessageIn &msg) if (actorManager) { - actorManager->createItem(id, itemId, - x, y, amount, identify, subX, subY); + actorManager->createItem(id, + itemId, + x, y, + 0, + amount, + identify, + Identified_false, + subX, subY); } } |