From 315367ce060371d8e2fec2d9f4894165dc238088 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 2 Sep 2014 02:10:03 +0300 Subject: eathena: add partial support for packet SMSG_MAP_TYPE_PROPERTY2 0x099b. --- src/net/eathena/beinghandler.cpp | 12 ++++++++++++ src/net/eathena/beinghandler.h | 2 ++ src/net/eathena/packets.h | 2 +- src/net/eathena/protocol.h | 1 + 4 files changed, 16 insertions(+), 1 deletion(-) (limited to 'src/net') diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp index efcaa634c..96cb87ab7 100644 --- a/src/net/eathena/beinghandler.cpp +++ b/src/net/eathena/beinghandler.cpp @@ -91,6 +91,7 @@ BeingHandler::BeingHandler(const bool enableSync) : SMSG_BEING_IP_RESPONSE, SMSG_PVP_MAP_MODE, SMSG_PVP_SET, + SMSG_MAP_TYPE_PROPERTY2, 0 }; handledMessages = _messages; @@ -214,6 +215,10 @@ void BeingHandler::handleMessage(Net::MessageIn &msg) processPvpSet(msg); break; + case SMSG_MAP_TYPE_PROPERTY2: + processMapTypeProperty(msg); + break; + default: break; } @@ -815,4 +820,11 @@ void BeingHandler::processBeingVisibleOrMove(Net::MessageIn &msg) statusEffects & 0xffffU)); } +void BeingHandler::processMapTypeProperty(Net::MessageIn &msg) const +{ + msg.readInt16("type"); + // need get pvp and other flags from here + msg.readInt32("flags"); +} + } // namespace EAthena diff --git a/src/net/eathena/beinghandler.h b/src/net/eathena/beinghandler.h index 7f694cf3c..45bf1fc33 100644 --- a/src/net/eathena/beinghandler.h +++ b/src/net/eathena/beinghandler.h @@ -51,6 +51,8 @@ class BeingHandler final : public MessageHandler, public Ea::BeingHandler static void processNameResponse2(Net::MessageIn &msg); void processPlayerMoveUpdate(Net::MessageIn &msg) const; + + void processMapTypeProperty(Net::MessageIn &msg) const; }; } // namespace EAthena diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h index f554c9233..fd595e7e2 100644 --- a/src/net/eathena/packets.h +++ b/src/net/eathena/packets.h @@ -248,7 +248,7 @@ int16_t packet_lengths[] = 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // #0x0980 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // #0x09C0 diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h index 41bc22ba2..a1e8de2b8 100644 --- a/src/net/eathena/protocol.h +++ b/src/net/eathena/protocol.h @@ -298,6 +298,7 @@ #define SMSG_BEING_IP_RESPONSE 0x020c #define SMSG_PVP_MAP_MODE 0x0199 #define SMSG_PVP_SET 0x019a +#define SMSG_MAP_TYPE_PROPERTY2 0x099b #define CMSG_IGNORE_ALL 0x00d0 #define SMSG_IGNORE_ALL_RESPONSE 0x00d2 #define CMSG_ONLINE_LIST 0x0210 -- cgit v1.2.3-70-g09d2