summaryrefslogtreecommitdiff
path: root/src/net/manaserv/charhandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/manaserv/charhandler.cpp')
-rw-r--r--src/net/manaserv/charhandler.cpp20
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