summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIra Rice <irarice@gmail.com>2009-02-05 13:26:02 -0700
committerIra Rice <irarice@gmail.com>2009-02-05 13:26:02 -0700
commit69d6f5fce3ee7ac1888c537e8e222431f8fc45da (patch)
tree6c8fa84fef5a6eed78def058e285b88b04c403b8 /src
parent5569b5ff92c022c901f27a2e9c563e2ace66557d (diff)
downloadmana-69d6f5fce3ee7ac1888c537e8e222431f8fc45da.tar.gz
mana-69d6f5fce3ee7ac1888c537e8e222431f8fc45da.tar.bz2
mana-69d6f5fce3ee7ac1888c537e8e222431f8fc45da.tar.xz
mana-69d6f5fce3ee7ac1888c537e8e222431f8fc45da.zip
Put back the 0x06b packet, which apparently our server uses. Will
investigate why we use it and what this packet is meant to do. Signed-off-by: Ira Rice <irarice@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/net/charserverhandler.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/net/charserverhandler.cpp b/src/net/charserverhandler.cpp
index 345b8960..932cf705 100644
--- a/src/net/charserverhandler.cpp
+++ b/src/net/charserverhandler.cpp
@@ -88,6 +88,27 @@ void CharServerHandler::handleMessage(MessageIn *msg)
state = ERROR_STATE;
break;
+ case 0x006b:
+ msg->skip(2); // Length word
+ flags = msg->readInt32(); // Aethyra extensions flags
+ logger->log("Server flags are: %x", flags);
+ msg->skip(16); // Unused
+
+ // Derive number of characters from message length
+ n_character = (msg->getLength() - 24) / 106;
+
+ for (int i = 0; i < n_character; i++)
+ {
+ tempPlayer = readPlayerData(*msg, slot);
+ mCharInfo->select(slot);
+ mCharInfo->setEntry(tempPlayer);
+ logger->log("CharServer: Player: %s (%d)",
+ tempPlayer->getName().c_str(), slot);
+ }
+
+ state = CHAR_SELECT_STATE;
+ break;
+
case 0x006c:
switch (msg->readInt8()) {
case 0: