From d20744c0ff83572dc209389df900826b7d088546 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 23 Nov 2014 16:45:46 +0300 Subject: Add support for additional slots in net code. Now projectile slot depend on server. --- src/net/ea/eaprotocol.h | 7 +++++++ src/net/ea/inventoryhandler.cpp | 4 ++-- src/net/eathena/inventoryhandler.cpp | 2 +- src/net/eathena/inventoryhandler.h | 3 +++ src/net/inventoryhandler.h | 2 ++ src/net/tmwa/inventoryhandler.h | 3 +++ 6 files changed, 18 insertions(+), 3 deletions(-) (limited to 'src/net') 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); -- cgit v1.2.3-60-g2f50