summaryrefslogtreecommitdiff
path: root/src/net/tmwa/inventoryhandler.h
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2011-07-30 21:36:51 +0300
committerAndrei Karas <akaras@inbox.ru>2011-07-30 22:20:09 +0300
commitcfede1d7d50541cf64b191844d537cb55880ce09 (patch)
treecfdaba05d4951b7b3522d2ea6844bd3e99fb37fc /src/net/tmwa/inventoryhandler.h
parent19738d5a2d5d96aef78e51da99061a22d7cf15bb (diff)
downloadmv-cfede1d7d50541cf64b191844d537cb55880ce09.tar.gz
mv-cfede1d7d50541cf64b191844d537cb55880ce09.tar.bz2
mv-cfede1d7d50541cf64b191844d537cb55880ce09.tar.xz
mv-cfede1d7d50541cf64b191844d537cb55880ce09.zip
Extract shared logic from inventoryhandler netcode to ea namespace.
Diffstat (limited to 'src/net/tmwa/inventoryhandler.h')
-rw-r--r--src/net/tmwa/inventoryhandler.h128
1 files changed, 3 insertions, 125 deletions
diff --git a/src/net/tmwa/inventoryhandler.h b/src/net/tmwa/inventoryhandler.h
index f831f7a78..405bacc43 100644
--- a/src/net/tmwa/inventoryhandler.h
+++ b/src/net/tmwa/inventoryhandler.h
@@ -23,21 +23,13 @@
#ifndef NET_TA_INVENTORYHANDLER_H
#define NET_TA_INVENTORYHANDLER_H
-#include "equipment.h"
-#include "inventory.h"
#include "log.h"
-#include "playerinfo.h"
-#include "gui/inventorywindow.h"
-
-#include "net/inventoryhandler.h"
#include "net/net.h"
-#include "net/tmwa/messagehandler.h"
+#include "net/ea/inventoryhandler.h"
-#include <list>
-#include <vector>
-#include <queue>
+#include "net/tmwa/messagehandler.h"
#ifdef __GNUC__
#define A_UNUSED __attribute__ ((unused))
@@ -48,97 +40,9 @@
namespace TmwAthena
{
-class EquipBackend : public Equipment::Backend
-{
- public:
- EquipBackend()
- {
- memset(mEquipment, -1, sizeof(mEquipment));
- }
-
- Item *getEquipment(int index) const
- {
- int invyIndex = mEquipment[index];
- if (invyIndex == -1)
- return NULL;
-
- return PlayerInfo::getInventory()->getItem(invyIndex);
- }
-
- void clear()
- {
- for (int i = 0; i < EQUIPMENT_SIZE; i++)
- {
- if (mEquipment[i] != -1)
- {
- Item* item = PlayerInfo::getInventory()->getItem(i);
- if (item)
- item->setEquipped(false);
- }
-
- mEquipment[i] = -1;
- }
- }
-
- void setEquipment(int index, int inventoryIndex)
- {
- // Unequip existing item
- Item* item = PlayerInfo::getInventory()
- ->getItem(mEquipment[index]);
-
- if (item)
- item->setEquipped(false);
-
- mEquipment[index] = inventoryIndex;
-
- item = PlayerInfo::getInventory()->getItem(inventoryIndex);
- if (item)
- item->setEquipped(true);
-
- if (inventoryWindow)
- inventoryWindow->updateButtons();
- }
-
- private:
- int mEquipment[EQUIPMENT_SIZE];
-};
-
-/**
- * Used to cache storage data until we get size data for it.
- */
-class InventoryItem
-{
- public:
- int slot;
- int id;
- int quantity;
- unsigned char color;
- int refine;
- bool equip;
-
- InventoryItem(int slot, int id, int quantity, int refine,
- unsigned char color, bool equip)
- {
- this->slot = slot;
- this->id = id;
- this->quantity = quantity;
- this->refine = refine;
- this->color = color;
- this->equip = equip;
- }
-};
-
-typedef std::vector<InventoryItem> InventoryItems;
-
-class InventoryHandler : public MessageHandler, public Net::InventoryHandler
+class InventoryHandler : public MessageHandler, public Ea::InventoryHandler
{
public:
- enum
- {
- GUILD_STORAGE = Inventory::TYPE_END,
- CART
- };
-
InventoryHandler();
~InventoryHandler();
@@ -153,38 +57,12 @@ class InventoryHandler : public MessageHandler, public Net::InventoryHandler
void dropItem(const Item *item, int amount);
- bool canSplit(const Item *item) const;
-
- void splitItem(const Item *item, int amount);
-
- void moveItem(int oldIndex, int newIndex);
-
- void openStorage(int type);
-
void closeStorage(int type);
void moveItem(int source, int slot, int amount,
int destination);
-
- size_t getSize(int type) const;
-
- int convertFromServerSlot(int serverSlot) const;
-
- void pushPickup(int floorId)
- { mSentPickups.push(floorId); }
-
- private:
- EquipBackend mEquips;
- InventoryItems mInventoryItems;
- Inventory *mStorage;
- InventoryWindow *mStorageWindow;
-
- typedef std::queue<int> PickupQueue;
- PickupQueue mSentPickups;
};
} // namespace TmwAthena
-int getSlot(int eAthenaSlot);
-
#endif // NET_TA_INVENTORYHANDLER_H