fix: quest reward items stuck as 'Item #ID' due to stale pending queries

Two fixes for item name resolution:

1. Clear entry from pendingItemQueries_ even when response parsing fails.
   Previously a malformed response left the entry stuck in pending forever,
   blocking all retries so the UI permanently showed "Item 12345".

2. Add 5-second periodic cleanup of pendingItemQueries_ so lost/dropped
   responses don't permanently block item info resolution.
This commit is contained in:
Kelsi 2026-03-29 17:44:46 -07:00
parent 51da88b120
commit 020e016853
3 changed files with 19 additions and 0 deletions

View file

@ -2455,6 +2455,7 @@ private:
std::unordered_map<uint64_t, OnlineItemInfo> onlineItems_;
std::unordered_map<uint32_t, ItemQueryResponseData> itemInfoCache_;
std::unordered_set<uint32_t> pendingItemQueries_;
float pendingItemQueryTimer_ = 0.0f;
// Deferred SMSG_ITEM_PUSH_RESULT notifications for items whose info wasn't
// cached at arrival time; emitted once the query response arrives.