From c16820057eb9d381eb222512bb931da12e898a1f Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 18 Mar 2015 19:19:43 +0300 Subject: eathena: add partial support for packet SMSG_ROULETTE_INFO_ACK_TYPE 0x0a1c. --- src/net/eathena/packets.h | 2 +- src/net/eathena/protocol.h | 2 ++ src/net/eathena/roulettehandler.cpp | 20 ++++++++++++++++++++ src/net/eathena/roulettehandler.h | 3 +++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h index 2447f702d..5fdf66caa 100644 --- a/src/net/eathena/packets.h +++ b/src/net/eathena/packets.h @@ -260,7 +260,7 @@ int16_t packet_lengths[] = //0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // #0x0A00 269, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 344, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // #0x0A40 diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h index 5f3c2f69e..3decb369f 100644 --- a/src/net/eathena/protocol.h +++ b/src/net/eathena/protocol.h @@ -451,6 +451,8 @@ #define SMSG_BATTLE_NOTICE_DELETE 0x08db #define SMSG_BATTLE_JOINED 0x08d9 +#define SMSG_ROULETTE_INFO_ACK_TYPE 0x0a1c + /********************************** * Packets from client to server * **********************************/ diff --git a/src/net/eathena/roulettehandler.cpp b/src/net/eathena/roulettehandler.cpp index d11357fbb..372e13f45 100644 --- a/src/net/eathena/roulettehandler.cpp +++ b/src/net/eathena/roulettehandler.cpp @@ -37,6 +37,7 @@ RouletteHandler::RouletteHandler() : { static const uint16_t _messages[] = { + SMSG_ROULETTE_INFO_ACK_TYPE, 0 }; handledMessages = _messages; @@ -47,9 +48,28 @@ void RouletteHandler::handleMessage(Net::MessageIn &msg) { switch (msg.getId()) { + case SMSG_ROULETTE_INFO_ACK_TYPE: + processRouletteInfoAckType(msg); + break; + default: break; } } +void RouletteHandler::processRouletteInfoAckType(Net::MessageIn &msg) +{ + UNIMPLIMENTEDPACKET; + const int count = (msg.readInt16("len") - 8) / 8; + msg.readInt32("serial"); + + for (int f = 0; f < count; f ++) + { + msg.readInt16("row"); + msg.readInt16("position"); + msg.readInt16("item id"); + msg.readInt16("count"); + } +} + } // namespace EAthena diff --git a/src/net/eathena/roulettehandler.h b/src/net/eathena/roulettehandler.h index 8b69c002f..239ba2e70 100644 --- a/src/net/eathena/roulettehandler.h +++ b/src/net/eathena/roulettehandler.h @@ -36,6 +36,9 @@ class RouletteHandler final : public MessageHandler, A_DELETE_COPY(RouletteHandler) void handleMessage(Net::MessageIn &msg) override final; + + protected: + static void processRouletteInfoAckType(Net::MessageIn &msg); }; } // namespace EAthena -- cgit v1.2.3-60-g2f50