From 9b9d56543c9746df7ed6551ffe847d80d308532f Mon Sep 17 00:00:00 2001 From: Kelsi Date: Wed, 11 Mar 2026 18:53:23 -0700 Subject: [PATCH] Re-query player names during rendering to resolve pending queries When a player nameplate is about to render with an empty name (showing "Player (level)" placeholder), actively re-request the name query. Since queryPlayerName() is idempotent (won't duplicate pending queries), this ensures that slow network responses don't cause players to permanently display as "Player (67)" even after the response arrives. Rendering code now triggers name queries to completion before falling back to placeholders. --- src/ui/game_screen.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/ui/game_screen.cpp b/src/ui/game_screen.cpp index f3d01295..b1d8b853 100644 --- a/src/ui/game_screen.cpp +++ b/src/ui/game_screen.cpp @@ -5395,10 +5395,14 @@ void GameScreen::renderNameplates(game::GameHandler& gameHandler) { // Fall back to level as placeholder while the name query is pending. if (!unitName.empty()) snprintf(labelBuf, sizeof(labelBuf), "%s", unitName.c_str()); - else if (level > 0) - snprintf(labelBuf, sizeof(labelBuf), "Player (%u)", level); - else - snprintf(labelBuf, sizeof(labelBuf), "Player"); + else { + // Name query may be pending; request it now to ensure it gets resolved + gameHandler.queryPlayerName(unit->getGuid()); + if (level > 0) + snprintf(labelBuf, sizeof(labelBuf), "Player (%u)", level); + else + snprintf(labelBuf, sizeof(labelBuf), "Player"); + } } else if (level > 0) { uint32_t playerLevel = gameHandler.getPlayerLevel(); // Show skull for units more than 10 levels above the player