From b5291d18835e30bd31f0069d7094dd388732c6ab Mon Sep 17 00:00:00 2001 From: Kelsi Date: Wed, 11 Mar 2026 19:11:02 -0700 Subject: [PATCH] Revert quest reward window delay that caused dialog to hang The delayed-opening logic conflicted with quest details' use of the same questDetailsOpenTime variable, causing the reward dialog to never appear. Reverted to immediately opening the window. Item info queries are still triggered, but will populate asynchronously with placeholders shown initially. --- include/game/game_handler.hpp | 11 +---------- src/game/game_handler.cpp | 6 ++---- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/include/game/game_handler.hpp b/include/game/game_handler.hpp index 1e0fcef6..ba729be9 100644 --- a/include/game/game_handler.hpp +++ b/include/game/game_handler.hpp @@ -1099,16 +1099,7 @@ public: void completeQuest(); // Send CMSG_QUESTGIVER_COMPLETE_QUEST void closeQuestRequestItems(); - bool isQuestOfferRewardOpen() { - if (questOfferRewardOpen_) return true; - if (questDetailsOpenTime != std::chrono::steady_clock::time_point{}) { - if (std::chrono::steady_clock::now() >= questDetailsOpenTime) { - questOfferRewardOpen_ = true; - questDetailsOpenTime = std::chrono::steady_clock::time_point{}; - } - } - return questOfferRewardOpen_; - } + bool isQuestOfferRewardOpen() const { return questOfferRewardOpen_; } const QuestOfferRewardData& getQuestOfferReward() const { return currentQuestOfferReward_; } void chooseQuestReward(uint32_t rewardIndex); // Send CMSG_QUESTGIVER_CHOOSE_REWARD void closeQuestOfferReward(); diff --git a/src/game/game_handler.cpp b/src/game/game_handler.cpp index 0bf990eb..14abdb94 100644 --- a/src/game/game_handler.cpp +++ b/src/game/game_handler.cpp @@ -15770,19 +15770,17 @@ void GameHandler::handleQuestOfferReward(network::Packet& packet) { pendingTurnInRewardRequest_ = false; } currentQuestOfferReward_ = data; + questOfferRewardOpen_ = true; questRequestItemsOpen_ = false; gossipWindowOpen = false; questDetailsOpen = false; + questDetailsOpenTime = std::chrono::steady_clock::time_point{}; // Query item names for reward items for (const auto& item : data.choiceRewards) queryItemInfo(item.itemId, 0); for (const auto& item : data.fixedRewards) queryItemInfo(item.itemId, 0); - - // Delay opening window by 100ms to allow item queries to complete (avoids "Item X" placeholders) - questOfferRewardOpen_ = false; - questDetailsOpenTime = std::chrono::steady_clock::now() + std::chrono::milliseconds(100); } void GameHandler::completeQuest() {