summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net/eathena/charserverhandler.cpp16
-rw-r--r--src/net/eathena/charserverhandler.h2
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;