diff options
Diffstat (limited to 'src/net/manaserv')
-rw-r--r-- | src/net/manaserv/gamehandler.cpp | 1 | ||||
-rw-r--r-- | src/net/manaserv/gamehandler.h | 6 | ||||
-rw-r--r-- | src/net/manaserv/manaserv_protocol.h | 10 | ||||
-rw-r--r-- | src/net/manaserv/playerhandler.cpp | 5 |
4 files changed, 16 insertions, 6 deletions
diff --git a/src/net/manaserv/gamehandler.cpp b/src/net/manaserv/gamehandler.cpp index 9d0bf0d6..89b80e68 100644 --- a/src/net/manaserv/gamehandler.cpp +++ b/src/net/manaserv/gamehandler.cpp @@ -27,7 +27,6 @@ #include "net/manaserv/chathandler.h" #include "net/manaserv/connection.h" #include "net/manaserv/messageout.h" -#include "net/manaserv/manaserv_protocol.h" extern Net::GameHandler *gameHandler; diff --git a/src/net/manaserv/gamehandler.h b/src/net/manaserv/gamehandler.h index b8dda036..2d33710e 100644 --- a/src/net/manaserv/gamehandler.h +++ b/src/net/manaserv/gamehandler.h @@ -27,6 +27,8 @@ #include "net/manaserv/messagehandler.h" +#include "net/manaserv/manaserv_protocol.h" + namespace ManaServ { class GameHandler : public MessageHandler, public Net::GameHandler @@ -56,6 +58,10 @@ class GameHandler : public MessageHandler, public Net::GameHandler /** The ManaServ protocol doesn't use the MP status bar. */ bool canUseMagicBar() const { return false; } + + int getPickupRange() const { return PICKUP_RANGE; } + + int getNpcTalkRange() const { return NPC_TALK_RANGE; } }; } // namespace ManaServ diff --git a/src/net/manaserv/manaserv_protocol.h b/src/net/manaserv/manaserv_protocol.h index 2c09aaa4..aa1976f1 100644 --- a/src/net/manaserv/manaserv_protocol.h +++ b/src/net/manaserv/manaserv_protocol.h @@ -93,8 +93,8 @@ enum { // Game GPMSG_PLAYER_MAP_CHANGE = 0x0100, // S filename, W x, W y GPMSG_PLAYER_SERVER_CHANGE = 0x0101, // B*32 token, S game address, W game port - PGMSG_PICKUP = 0x0110, // W*2 position - PGMSG_DROP = 0x0111, // B slot, B amount + PGMSG_PICKUP = 0x0110, // W * 2 items position + PGMSG_DROP = 0x0111, // W slot, W amount PGMSG_EQUIP = 0x0112, // W inventory slot PGMSG_UNEQUIP = 0x0113, // W item Instance id PGMSG_MOVE_ITEM = 0x0114, // W slot1, W slot2, W amount @@ -441,6 +441,12 @@ enum BeingGender GENDER_UNSPECIFIED }; +/** The permited range to pick up an item */ +const int PICKUP_RANGE = 32 + 16; + +/** The permited range to to talk to a NPC. */ +const int NPC_TALK_RANGE = 32 * 7; + } // namespace ManaServ #endif // MANASERV_PROTOCOL_H diff --git a/src/net/manaserv/playerhandler.cpp b/src/net/manaserv/playerhandler.cpp index 96a4b49a..adb60fb3 100644 --- a/src/net/manaserv/playerhandler.cpp +++ b/src/net/manaserv/playerhandler.cpp @@ -348,10 +348,9 @@ void PlayerHandler::pickUp(FloorItem *floorItem) { if (floorItem) { - int id = floorItem->getId(); MessageOut msg(PGMSG_PICKUP); - msg.writeInt16(id >> 16); - msg.writeInt16(id & 0xFFFF); + msg.writeInt16(floorItem->getPixelX()); + msg.writeInt16(floorItem->getPixelY()); gameServerConnection->send(msg); } } |