Reset realm and character lists when switching servers

Add reset() to RealmScreen and CharacterScreen to clear stale selection
state. Clear auth handler realm list on reconnect. Reset both screens
when going back to login or back to realm selection, so switching
servers shows fresh data instead of stale lists from the previous
connection.
This commit is contained in:
Kelsi 2026-02-14 19:24:31 -08:00
parent 388db59463
commit 7f9439d774
4 changed files with 44 additions and 0 deletions

View file

@ -537,6 +537,11 @@ void Application::logoutToLogin() {
music->stopMusic(0.0f);
}
}
// Clear stale realm/character selection so switching servers starts fresh
if (uiManager) {
uiManager->getRealmScreen().reset();
uiManager->getCharacterScreen().reset();
}
setState(AppState::AUTHENTICATION);
}
@ -1733,6 +1738,12 @@ void Application::setupUICallbacks() {
// "Back" button on character screen
uiManager->getCharacterScreen().setOnBack([this]() {
// Disconnect from world server and reset UI state for fresh realm selection
if (gameHandler) {
gameHandler->disconnect();
}
uiManager->getRealmScreen().reset();
uiManager->getCharacterScreen().reset();
setState(AppState::REALM_SELECTION);
});