summaryrefslogtreecommitdiff
path: root/src/net/charserverhandler.cpp
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2009-02-09 20:19:39 +0100
committerBjørn Lindeijer <bjorn@lindeijer.nl>2009-02-09 21:10:48 +0100
commit32bfe1ddf26413fc660bed9ea29765fcabb90eb3 (patch)
tree29d0d6274696560b1bb94b762456f4b511f0311b /src/net/charserverhandler.cpp
parent112d71798eca4b13dd5b11805669ae4fad4dea0e (diff)
parentd2876ad85935c5d0b181d050bd4c19a4682123b1 (diff)
downloadmana-client-32bfe1ddf26413fc660bed9ea29765fcabb90eb3.tar.gz
mana-client-32bfe1ddf26413fc660bed9ea29765fcabb90eb3.tar.bz2
mana-client-32bfe1ddf26413fc660bed9ea29765fcabb90eb3.tar.xz
mana-client-32bfe1ddf26413fc660bed9ea29765fcabb90eb3.zip
Merge branch 'master' of git@gitorious.org:tmw/eathena
Conflicts: src/game.cpp src/net/charserverhandler.cpp src/net/loginhandler.cpp src/net/protocol.h
Diffstat (limited to 'src/net/charserverhandler.cpp')
-rw-r--r--src/net/charserverhandler.cpp49
1 files changed, 29 insertions, 20 deletions
diff --git a/src/net/charserverhandler.cpp b/src/net/charserverhandler.cpp
index 909100e5..b04fb94a 100644
--- a/src/net/charserverhandler.cpp
+++ b/src/net/charserverhandler.cpp
@@ -43,6 +43,7 @@ CharServerHandler::CharServerHandler():
mCharCreateDialog(0)
{
static const Uint16 _messages[] = {
+ SMSG_CONNECTION_PROBLEM,
0x006b,
0x006c,
0x006d,
@@ -50,7 +51,6 @@ CharServerHandler::CharServerHandler():
0x006f,
0x0070,
0x0071,
- 0x0081,
0
};
handledMessages = _messages;
@@ -60,12 +60,40 @@ void CharServerHandler::handleMessage(MessageIn *msg)
{
int slot;
int flags;
+ int code;
LocalPlayer *tempPlayer;
logger->log("CharServerHandler: Packet ID: %x, Length: %d",
msg->getId(), msg->getLength());
switch (msg->getId())
{
+ case SMSG_CONNECTION_PROBLEM:
+ code = msg->readInt8();
+ logger->log("Connection problem: %i", code);
+
+ switch (code) {
+ case 0:
+ errorMessage = "Authentication failed";
+ break;
+ case 1:
+ errorMessage = "Map server(s) offline";
+ break;
+ case 2:
+ errorMessage = "This account is already logged in";
+ break;
+ case 3:
+ errorMessage = "Speed hack detected";
+ break;
+ case 8:
+ errorMessage = "Duplicated login";
+ break;
+ default:
+ errorMessage = "Unknown connection error";
+ break;
+ }
+ state = ERROR_STATE;
+ break;
+
case 0x006b:
msg->skip(2); // Length word
flags = msg->readInt32(); // Aethyra extensions flags
@@ -165,25 +193,6 @@ void CharServerHandler::handleMessage(MessageIn *msg)
mCharInfo->select(slot);
state = CONNECTING_STATE;
break;
-
- case 0x0081:
- switch (msg->readInt8()) {
- case 1:
- errorMessage = "Map server offline";
- break;
- case 3:
- errorMessage = "Speed hack detected";
- break;
- case 8:
- errorMessage = "Duplicated login";
- break;
- default:
- errorMessage = "Unknown error with 0x0081";
- break;
- }
- mCharInfo->unlock();
- state = ERROR_STATE;
- break;
}
}