Fix stale player model persisting across logins by clearing character state on logout

This commit is contained in:
Kelsi 2026-02-06 20:49:17 -08:00
parent 34bda702e0
commit d54aba3950
2 changed files with 6 additions and 0 deletions

View file

@ -397,8 +397,13 @@ void Application::logoutToLogin() {
} }
singlePlayerMode = false; singlePlayerMode = false;
npcsSpawned = false; npcsSpawned = false;
playerCharacterSpawned = false;
world.reset(); world.reset();
if (renderer) { 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()) { if (auto* music = renderer->getMusicManager()) {
music->stopMusic(0.0f); music->stopMusic(0.0f);
} }

View file

@ -805,6 +805,7 @@ void GameHandler::disconnect() {
socket->disconnect(); socket->disconnect();
socket.reset(); socket.reset();
} }
activeCharacterGuid_ = 0;
setState(WorldState::DISCONNECTED); setState(WorldState::DISCONNECTED);
LOG_INFO("Disconnected from world server"); LOG_INFO("Disconnected from world server");
} }