From a55eae5cf0f031fcbb5be1f2c25226115d302b79 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 5 Sep 2014 22:40:22 +0300 Subject: eathena: impliment SMSG_CHAR_LOGIN2 0x082d. --- src/net/eathena/charserverhandler.cpp | 16 ++++++++++++++++ src/net/eathena/charserverhandler.h | 2 ++ 2 files changed, 18 insertions(+) (limited to 'src/net') diff --git a/src/net/eathena/charserverhandler.cpp b/src/net/eathena/charserverhandler.cpp index a7f6fea68..28f3f59d4 100644 --- a/src/net/eathena/charserverhandler.cpp +++ b/src/net/eathena/charserverhandler.cpp @@ -71,6 +71,7 @@ CharServerHandler::CharServerHandler() : static const uint16_t _messages[] = { SMSG_CHAR_LOGIN, + SMSG_CHAR_LOGIN2, SMSG_CHAR_LOGIN_ERROR, SMSG_CHAR_CREATE_SUCCEEDED, SMSG_CHAR_CREATE_SUCCEEDED2, @@ -94,6 +95,10 @@ void CharServerHandler::handleMessage(Net::MessageIn &msg) processCharLogin(msg); break; + case SMSG_CHAR_LOGIN2: + processCharLogin2(msg); + break; + case SMSG_CHAR_LOGIN_ERROR: processCharLoginError(msg); break; @@ -322,6 +327,17 @@ void CharServerHandler::processCharLogin(Net::MessageIn &msg) client->setState(STATE_CHAR_SELECT); } +void CharServerHandler::processCharLogin2(Net::MessageIn &msg) +{ + msg.readInt16("len"); + msg.readUInt8("char slots"); + msg.readUInt8("left slots"); + msg.readUInt8("left slots"); + msg.readUInt8("char slots"); + msg.readUInt8("char slots"); + msg.skip(20, "unused"); +} + void CharServerHandler::processCharMapInfo(Net::MessageIn &restrict msg) { Network *const network = mNetwork; diff --git a/src/net/eathena/charserverhandler.h b/src/net/eathena/charserverhandler.h index 1f9cbbcfb..82e13c680 100644 --- a/src/net/eathena/charserverhandler.h +++ b/src/net/eathena/charserverhandler.h @@ -75,6 +75,8 @@ class CharServerHandler final : public MessageHandler, void processPincodeStatus(Net::MessageIn &msg); + static void processCharLogin2(Net::MessageIn &msg); + private: uint32_t mPinSeed; uint32_t mPinAccountId; -- cgit v1.2.3-70-g09d2