diff options
Diffstat (limited to 'src/net/tmwa')
-rw-r--r-- | src/net/tmwa/gamehandler.cpp | 11 | ||||
-rw-r--r-- | src/net/tmwa/gamehandler.h | 2 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/net/tmwa/gamehandler.cpp b/src/net/tmwa/gamehandler.cpp index 4d6d1998f..65ff13fb8 100644 --- a/src/net/tmwa/gamehandler.cpp +++ b/src/net/tmwa/gamehandler.cpp @@ -168,7 +168,7 @@ void GameHandler::disconnect2() const createOutPacket(CMSG_CLIENT_DISCONNECT); } -void GameHandler::processMapLogin(Net::MessageIn &msg) const +void GameHandler::processMapLogin(Net::MessageIn &msg) { unsigned char direction; uint16_t x, y; @@ -180,8 +180,13 @@ void GameHandler::processMapLogin(Net::MessageIn &msg) const mLastHost &= 0xffffff; - if (mNetwork) - mNetwork->pauseDispatch(); + GameHandler *const g = dynamic_cast<GameHandler*>(gameHandler); + if (g) + { + Network *const network = g->mNetwork; + if (network) + network->pauseDispatch(); + } // Switch now or we'll have problems client->setState(STATE_GAME); diff --git a/src/net/tmwa/gamehandler.h b/src/net/tmwa/gamehandler.h index b3736289e..7629425a3 100644 --- a/src/net/tmwa/gamehandler.h +++ b/src/net/tmwa/gamehandler.h @@ -57,7 +57,7 @@ class GameHandler final : public MessageHandler, public Ea::GameHandler { return false; } protected: - void processMapLogin(Net::MessageIn &msg) const; + static void processMapLogin(Net::MessageIn &msg); }; } // namespace TmwAthena |