From 9e01119b7fad64dbf8aa4017443aa077f1be308d Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 14 Oct 2014 15:50:29 +0300 Subject: eathena: add partial support for packet SMSG_ELEMENTAL_UPDATE_STATUS 0x081e. --- src/net/eathena/elementalhandler.cpp | 13 +++++++++++++ src/net/eathena/elementalhandler.h | 3 +++ src/net/eathena/packets.h | 2 +- src/net/eathena/protocol.h | 2 ++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/net/eathena/elementalhandler.cpp b/src/net/eathena/elementalhandler.cpp index 9e4f77c0c..dc21746cd 100644 --- a/src/net/eathena/elementalhandler.cpp +++ b/src/net/eathena/elementalhandler.cpp @@ -20,6 +20,8 @@ #include "net/eathena/elementalhandler.h" +#include "net/eathena/protocol.h" + #include "debug.h" extern Net::ElementalHandler *elementalHandler; @@ -32,6 +34,7 @@ ElementalHandler::ElementalHandler() : { static const uint16_t _messages[] = { + SMSG_ELEMENTAL_UPDATE_STATUS, 0 }; handledMessages = _messages; @@ -42,9 +45,19 @@ void ElementalHandler::handleMessage(Net::MessageIn &msg) { switch (msg.getId()) { + case SMSG_ELEMENTAL_UPDATE_STATUS: + processElementalUpdateStatus(msg); + break; + default: break; } } +void ElementalHandler::processElementalUpdateStatus(Net::MessageIn &msg) +{ + msg.readInt16("type"); + msg.readInt32("value"); +} + } // namespace EAthena diff --git a/src/net/eathena/elementalhandler.h b/src/net/eathena/elementalhandler.h index 13f4d259b..1bbdd2b15 100644 --- a/src/net/eathena/elementalhandler.h +++ b/src/net/eathena/elementalhandler.h @@ -36,6 +36,9 @@ class ElementalHandler final : public MessageHandler, A_DELETE_COPY(ElementalHandler) void handleMessage(Net::MessageIn &msg) override final; + + protected: + void processElementalUpdateStatus(Net::MessageIn &msg); }; } // namespace EAthena diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h index e7112205c..ef06cf3ca 100644 --- a/src/net/eathena/packets.h +++ b/src/net/eathena/packets.h @@ -216,7 +216,7 @@ int16_t packet_lengths[] = //0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // #0x0800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 20, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 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, 66, 0, 0, 0, 0, 26, 0, // #0x0840 diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h index 7b3da616c..c5c653d8c 100644 --- a/src/net/eathena/protocol.h +++ b/src/net/eathena/protocol.h @@ -298,6 +298,8 @@ #define SMSG_AUCTION_OPEN_WINDOW 0x025f +#define SMSG_ELEMENTAL_UPDATE_STATUS 0x081e + /********************************** * Packets from client to server * **********************************/ -- cgit v1.2.3-70-g09d2