summaryrefslogtreecommitdiff
path: root/src/net/charserverhandler.cpp
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2007-03-24 01:57:39 +0000
committerBjørn Lindeijer <bjorn@lindeijer.nl>2007-03-24 01:57:39 +0000
commitd5e8513e085b6fc8da2ea4bb7151ac8e98be74c8 (patch)
tree0990fc8565e99c321344283139eb419829769d7a /src/net/charserverhandler.cpp
parenta34741f590ed24c2a6e0c0ebbde832572c606b94 (diff)
downloadmana-client-d5e8513e085b6fc8da2ea4bb7151ac8e98be74c8.tar.gz
mana-client-d5e8513e085b6fc8da2ea4bb7151ac8e98be74c8.tar.bz2
mana-client-d5e8513e085b6fc8da2ea4bb7151ac8e98be74c8.tar.xz
mana-client-d5e8513e085b6fc8da2ea4bb7151ac8e98be74c8.zip
Go back to login or register state on error, depending on what the user was
doing, and fixed the error message when registering an account that already exists. Also another crash fix following from previous commit.
Diffstat (limited to 'src/net/charserverhandler.cpp')
-rw-r--r--src/net/charserverhandler.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/net/charserverhandler.cpp b/src/net/charserverhandler.cpp
index 01a8756b..a54a17de 100644
--- a/src/net/charserverhandler.cpp
+++ b/src/net/charserverhandler.cpp
@@ -134,6 +134,7 @@ void CharServerHandler::handleMessage(MessageIn *msg)
case 0x0071:
player_node = mCharInfo->getEntry();
+ slot = mCharInfo->getPos();
msg->skip(4); // CharID, must be the same as player_node->charID
map_path = msg->readString(16);
mLoginData->hostname = iptostring(msg->readInt32());
@@ -145,10 +146,14 @@ void CharServerHandler::handleMessage(MessageIn *msg)
{
LocalPlayer *tmp = mCharInfo->getEntry();
if (tmp != player_node)
+ {
delete tmp;
+ mCharInfo->setEntry(0);
+ }
mCharInfo->next();
} while (mCharInfo->getPos());
+ mCharInfo->select(slot);
state = CONNECTING_STATE;
break;