summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/actormanager.cpp11
-rw-r--r--src/actormanager.h2
-rw-r--r--src/flooritem.cpp6
-rw-r--r--src/flooritem.h7
-rw-r--r--src/net/ea/itemhandler.cpp7
-rw-r--r--src/net/eathena/itemhandler.cpp7
-rw-r--r--src/net/tmwa/itemhandler.cpp10
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);
}
}