diff options
Diffstat (limited to 'src/net/manaserv/charhandler.cpp')
-rw-r--r-- | src/net/manaserv/charhandler.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/net/manaserv/charhandler.cpp b/src/net/manaserv/charhandler.cpp index 4b574821..c070ab23 100644 --- a/src/net/manaserv/charhandler.cpp +++ b/src/net/manaserv/charhandler.cpp @@ -68,6 +68,11 @@ CharHandler::CharHandler() charHandler = this; } +CharHandler::~CharHandler() +{ + clear(); +} + void CharHandler::handleMessage(Net::MessageIn &msg) { switch (msg.getId()) @@ -225,16 +230,10 @@ void CharHandler::handleCharacterSelectResponse(Net::MessageIn &msg) logger->log("Chat server: %s:%d", chatServer.hostname.c_str(), chatServer.port); - gameServerConnection->connect(gameServer.hostname, gameServer.port); - chatServerConnection->connect(chatServer.hostname, chatServer.port); - // Prevent the selected local player from being deleted player_node = mSelectedCharacter->dummy; mSelectedCharacter->dummy = 0; - mCachedCharacterInfos.clear(); - updateCharacters(); - Client::setState(STATE_CONNECT_GAME); } else if (errMsg == ERRMSG_FAILURE) @@ -381,4 +380,13 @@ void CharHandler::updateCharacters() updateCharSelectDialog(); } +void CharHandler::clear() +{ + setCharCreateDialog(0); + setCharSelectDialog(0); + + mCachedCharacterInfos.clear(); + updateCharacters(); +} + } // namespace ManaServ |