summaryrefslogtreecommitdiff
path: root/src/net/tmwa
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/tmwa')
-rw-r--r--src/net/tmwa/itemhandler.cpp36
-rw-r--r--src/net/tmwa/itemhandler.h4
2 files changed, 5 insertions, 35 deletions
diff --git a/src/net/tmwa/itemhandler.cpp b/src/net/tmwa/itemhandler.cpp
index d9595c846..ee33cd230 100644
--- a/src/net/tmwa/itemhandler.cpp
+++ b/src/net/tmwa/itemhandler.cpp
@@ -22,8 +22,6 @@
#include "net/tmwa/itemhandler.h"
-#include "actorspritemanager.h"
-
#include "net/messagein.h"
#include "net/tmwa/protocol.h"
@@ -51,41 +49,11 @@ void ItemHandler::handleMessage(Net::MessageIn &msg)
{
case SMSG_ITEM_VISIBLE:
case SMSG_ITEM_DROPPED:
- {
- int id = msg.readInt32();
- int itemId = msg.readInt16();
- unsigned char identify = msg.readInt8(); // identify flag
- int x = msg.readInt16();
- int y = msg.readInt16();
-// msg.skip(4); // amount,subX,subY / subX,subY,amount
- int amount1 = msg.readInt16();
- int amount2 = msg.readInt16();
-
- if (actorSpriteManager)
- {
- if (msg.getId() == SMSG_ITEM_VISIBLE)
- {
- actorSpriteManager->createItem(id, itemId,
- x, y, amount1, identify);
- }
- else
- {
- actorSpriteManager->createItem(id, itemId,
- x, y, amount2, identify);
- }
- }
- }
+ processItemVisible(msg, msg.getId() == SMSG_ITEM_DROPPED);
break;
case SMSG_ITEM_REMOVE:
- if (actorSpriteManager)
- {
- if (FloorItem *item = actorSpriteManager->findItem(
- msg.readInt32()))
- {
- actorSpriteManager->destroy(item);
- }
- }
+ processItemRemove(msg);
break;
default:
diff --git a/src/net/tmwa/itemhandler.h b/src/net/tmwa/itemhandler.h
index bd0de9890..3e948547e 100644
--- a/src/net/tmwa/itemhandler.h
+++ b/src/net/tmwa/itemhandler.h
@@ -25,10 +25,12 @@
#include "net/tmwa/messagehandler.h"
+#include "net/ea/itemhandler.h"
+
namespace TmwAthena
{
-class ItemHandler : public MessageHandler
+class ItemHandler : public MessageHandler, public Ea::ItemHandler
{
public:
ItemHandler();