Fix terrain streaming loop and auto-select single realm/character

Use getRemainingTileCount (pending + readyQueue) and processAllReadyTiles
to prevent loading screen from exiting before tiles are finalized. Auto-select
realm and character when only one is available.
This commit is contained in:
Kelsi 2026-02-06 14:56:26 -08:00
parent 81d712121e
commit aa11ffda72
5 changed files with 68 additions and 15 deletions

View file

@ -33,6 +33,20 @@ void CharacterScreen::render(game::GameHandler& gameHandler) {
gameHandler.requestCharacterList();
} else if (characters.empty()) {
ImGui::Text("No characters available.");
} else if (characters.size() == 1 && !characterSelected) {
// Auto-select the only available character
selectedCharacterIndex = 0;
selectedCharacterGuid = characters[0].guid;
characterSelected = true;
std::stringstream ss;
ss << "Entering world with " << characters[0].name << "...";
setStatus(ss.str());
if (!gameHandler.isSinglePlayerMode()) {
gameHandler.selectCharacter(characters[0].guid);
}
if (onCharacterSelected) {
onCharacterSelected(characters[0].guid);
}
} else {
// Character table
if (ImGui::BeginTable("CharactersTable", 6, ImGuiTableFlags_Borders | ImGuiTableFlags_RowBg)) {