diff --git a/src/core/application.cpp b/src/core/application.cpp index 085e0261..41f6a776 100644 --- a/src/core/application.cpp +++ b/src/core/application.cpp @@ -397,8 +397,13 @@ void Application::logoutToLogin() { } singlePlayerMode = false; npcsSpawned = false; + playerCharacterSpawned = false; world.reset(); if (renderer) { + // Remove old player model so it doesn't persist into next session + if (auto* charRenderer = renderer->getCharacterRenderer()) { + charRenderer->removeInstance(1); + } if (auto* music = renderer->getMusicManager()) { music->stopMusic(0.0f); } diff --git a/src/game/game_handler.cpp b/src/game/game_handler.cpp index a2249436..105873c9 100644 --- a/src/game/game_handler.cpp +++ b/src/game/game_handler.cpp @@ -805,6 +805,7 @@ void GameHandler::disconnect() { socket->disconnect(); socket.reset(); } + activeCharacterGuid_ = 0; setState(WorldState::DISCONNECTED); LOG_INFO("Disconnected from world server"); }