diff options
author | Ira Rice <irarice@gmail.com> | 2009-02-05 13:26:02 -0700 |
---|---|---|
committer | Ira Rice <irarice@gmail.com> | 2009-02-05 13:26:02 -0700 |
commit | 69d6f5fce3ee7ac1888c537e8e222431f8fc45da (patch) | |
tree | 6c8fa84fef5a6eed78def058e285b88b04c403b8 /src/net | |
parent | 5569b5ff92c022c901f27a2e9c563e2ace66557d (diff) | |
download | mana-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/net')
-rw-r--r-- | src/net/charserverhandler.cpp | 21 |
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: |