game: clear in-flight NPC/GO query sets on disconnect

pendingCreatureQueries and pendingGameObjectQueries_ were never cleared on
disconnect. If a query was sent but the response lost (e.g. server
disconnect mid-flight), the entry would remain in the pending set after
reconnect, causing queryCreatureInfo/queryGameObjectInfo to silently skip
re-issuing the query — leaving NPC and GO names unpopulated for those
entries.

Clear both sets on disconnect so reconnect sees them as unqueried and
re-sends the queries as needed. creatureInfoCache/gameObjectInfoCache_ are
intentionally preserved across sessions to avoid re-querying entries whose
responses did arrive.
This commit is contained in:
Kelsi 2026-03-10 09:01:34 -07:00
parent 6763cfcda0
commit c622e547c9

View file

@ -486,6 +486,10 @@ void GameHandler::disconnect() {
contacts_.clear();
transportAttachments_.clear();
serverUpdatedTransportGuids_.clear();
// Clear in-flight query sets so reconnect can re-issue queries for any
// entries whose responses were lost during the disconnect.
pendingCreatureQueries.clear();
pendingGameObjectQueries_.clear();
requiresWarden_ = false;
wardenGateSeen_ = false;
wardenGateElapsed_ = 0.0f;