From 612c842f32fec68ece4244ac672a1b889cf2eb18 Mon Sep 17 00:00:00 2001 From: Jared Adams Date: Mon, 12 Apr 2010 14:46:06 -0600 Subject: Add support for map-server switching under eAthena Also do some cleanup that's been needed for a while. Reviewed-by: Bertram --- src/client.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/client.cpp') diff --git a/src/client.cpp b/src/client.cpp index eebdaace..2e136e39 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -574,6 +574,10 @@ int Client::exec() if (mState != mOldState) { + Net::GeneralHandler *generalHandler = Net::getGeneralHandler(); + if (generalHandler) + generalHandler->stateChanged(mOldState, mState); + if (mOldState == STATE_GAME) { delete game; @@ -774,13 +778,20 @@ int Client::exec() STATE_SWITCH_CHARACTER); break; + case STATE_CHANGE_MAP: + logger->log("State: CHANGE_MAP"); + + Net::getGameHandler()->connect(); + mCurrentDialog = new ConnectionDialog( + _("Changing game servers"), + STATE_SWITCH_CHARACTER); + break; + case STATE_GAME: logger->log("Memorizing selected character %s", player_node->getName().c_str()); config.setValue("lastCharacter", player_node->getName()); - Net::getGameHandler()->inGame(); - // Fade out logon-music here too to give the desired effect // of "flowing" into the game. sound.fadeOutMusic(1000); -- cgit v1.2.3-60-g2f50