diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-11-23 16:45:46 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-11-23 16:45:46 +0300 |
commit | d20744c0ff83572dc209389df900826b7d088546 (patch) | |
tree | b6a91790f6c52d016e57cfdba687251c1f01409f /src/net | |
parent | a22d7bce703101ba3ae15cb5b8545381dfe863c4 (diff) | |
download | plus-d20744c0ff83572dc209389df900826b7d088546.tar.gz plus-d20744c0ff83572dc209389df900826b7d088546.tar.bz2 plus-d20744c0ff83572dc209389df900826b7d088546.tar.xz plus-d20744c0ff83572dc209389df900826b7d088546.zip |
Add support for additional slots in net code.
Now projectile slot depend on server.
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/ea/eaprotocol.h | 7 | ||||
-rw-r--r-- | src/net/ea/inventoryhandler.cpp | 4 | ||||
-rw-r--r-- | src/net/eathena/inventoryhandler.cpp | 2 | ||||
-rw-r--r-- | src/net/eathena/inventoryhandler.h | 3 | ||||
-rw-r--r-- | src/net/inventoryhandler.h | 2 | ||||
-rw-r--r-- | src/net/tmwa/inventoryhandler.h | 3 |
6 files changed, 18 insertions, 3 deletions
diff --git a/src/net/ea/eaprotocol.h b/src/net/ea/eaprotocol.h index 46677f25a..89d8dd791 100644 --- a/src/net/ea/eaprotocol.h +++ b/src/net/ea/eaprotocol.h @@ -92,6 +92,13 @@ enum EA_SPRITE_EVOL3, EA_SPRITE_EVOL4, EA_SPRITE_EVOL5, + EA_SPRITE_EVOL6, + EA_SPRITE_EVOL7, + EA_SPRITE_EVOL8, + EA_SPRITE_EVOL9, + EA_SPRITE_EVOL10, + EA_SPRITE_EVOL11, + EA_SPRITE_EVOL12, EA_SPRITE_VECTOREND }; diff --git a/src/net/ea/inventoryhandler.cpp b/src/net/ea/inventoryhandler.cpp index 074459841..1f6d0e2a2 100644 --- a/src/net/ea/inventoryhandler.cpp +++ b/src/net/ea/inventoryhandler.cpp @@ -147,7 +147,7 @@ int InventoryHandler::getSlot(const int eAthenaSlot) return Equipment::EQUIP_VECTOREND; if (eAthenaSlot & 0x8000) - return Equipment::EQUIP_PROJECTILE_SLOT; + return inventoryHandler->getProjectileSlot(); unsigned int mask = 1; int position = 0; @@ -327,7 +327,7 @@ void InventoryHandler::processPlayerArrowEquip(Net::MessageIn &msg) return; index -= INVENTORY_OFFSET; - mEquips.setEquipment(Equipment::EQUIP_PROJECTILE_SLOT, index); + mEquips.setEquipment(inventoryHandler->getProjectileSlot(), index); ArrowsListener::distributeEvent(); BLOCK_END("InventoryHandler::processPlayerArrowEquip") } diff --git a/src/net/eathena/inventoryhandler.cpp b/src/net/eathena/inventoryhandler.cpp index af08fa1b2..384ca86b2 100644 --- a/src/net/eathena/inventoryhandler.cpp +++ b/src/net/eathena/inventoryhandler.cpp @@ -57,7 +57,7 @@ const Equipment::Slot EQUIP_CONVERT[] = Equipment::EQUIP_FIGHT1_SLOT, // 10 SPRITE_WEAPON Equipment::EQUIP_FIGHT2_SLOT, // 11 SPRITE_SHIELD Equipment::EQUIP_EVOL_RING2_SLOT, // 12 - Equipment::EQUIP_EVOL_RING2_SLOT, // 13 SPRITE_EVOL2 + Equipment::EQUIP_PROJECTILE_SLOT, // 13 SPRITE_EVOL2 Equipment::EQUIP_COSTUME_ROBE_SLOT, // 14 SPRITE_EVOL3 Equipment::EQUIP_MISSING1_SLOT, // 15 SPRITE_EVOL4 }; diff --git a/src/net/eathena/inventoryhandler.h b/src/net/eathena/inventoryhandler.h index 272d3a82b..794f9ca7a 100644 --- a/src/net/eathena/inventoryhandler.h +++ b/src/net/eathena/inventoryhandler.h @@ -71,6 +71,9 @@ class InventoryHandler final : public MessageHandler, int convertFromServerSlot(const int serverSlot) const override final A_WARN_UNUSED; + int getProjectileSlot() const override final + { return 23; } + protected: static void processPlayerEquipment(Net::MessageIn &msg); diff --git a/src/net/inventoryhandler.h b/src/net/inventoryhandler.h index ec822531a..13b2c847f 100644 --- a/src/net/inventoryhandler.h +++ b/src/net/inventoryhandler.h @@ -84,6 +84,8 @@ class InventoryHandler notfinal const bool favorite) const = 0; virtual void selectEgg(const Item *const item) const = 0; + + virtual int getProjectileSlot() const = 0; }; } // namespace Net diff --git a/src/net/tmwa/inventoryhandler.h b/src/net/tmwa/inventoryhandler.h index 84f6dd974..d8caf7a84 100644 --- a/src/net/tmwa/inventoryhandler.h +++ b/src/net/tmwa/inventoryhandler.h @@ -71,6 +71,9 @@ class InventoryHandler final : public MessageHandler, int convertFromServerSlot(const int serverSlot) const override final A_WARN_UNUSED; + int getProjectileSlot() const override final + { return 10; } + protected: static void processPlayerEquipment(Net::MessageIn &msg); |