diff options
author | Andrei Karas <akaras@inbox.ru> | 2011-07-30 21:36:51 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2011-07-30 22:20:09 +0300 |
commit | cfede1d7d50541cf64b191844d537cb55880ce09 (patch) | |
tree | cfdaba05d4951b7b3522d2ea6844bd3e99fb37fc /src/net/tmwa/inventoryhandler.h | |
parent | 19738d5a2d5d96aef78e51da99061a22d7cf15bb (diff) | |
download | manaplus-cfede1d7d50541cf64b191844d537cb55880ce09.tar.gz manaplus-cfede1d7d50541cf64b191844d537cb55880ce09.tar.bz2 manaplus-cfede1d7d50541cf64b191844d537cb55880ce09.tar.xz manaplus-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.h | 128 |
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 |