summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-11-23 16:45:46 +0300
committerAndrei Karas <akaras@inbox.ru>2014-11-23 16:45:46 +0300
commitd20744c0ff83572dc209389df900826b7d088546 (patch)
treeb6a91790f6c52d016e57cfdba687251c1f01409f /src/net
parenta22d7bce703101ba3ae15cb5b8545381dfe863c4 (diff)
downloadmanaplus-d20744c0ff83572dc209389df900826b7d088546.tar.gz
manaplus-d20744c0ff83572dc209389df900826b7d088546.tar.bz2
manaplus-d20744c0ff83572dc209389df900826b7d088546.tar.xz
manaplus-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.h7
-rw-r--r--src/net/ea/inventoryhandler.cpp4
-rw-r--r--src/net/eathena/inventoryhandler.cpp2
-rw-r--r--src/net/eathena/inventoryhandler.h3
-rw-r--r--src/net/inventoryhandler.h2
-rw-r--r--src/net/tmwa/inventoryhandler.h3
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);