diff options
-rw-r--r-- | src/net/eathena/charserverhandler.cpp | 16 | ||||
-rw-r--r-- | src/net/eathena/charserverhandler.h | 2 |
2 files changed, 18 insertions, 0 deletions
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; |