From 4be33942f9bbe34753e251c4ff709afbd171eceb Mon Sep 17 00:00:00 2001 From: ZhengPeiRu21 <98835050+ZhengPeiRu21@users.noreply.github.com> Date: Tue, 12 Jul 2022 05:42:35 -0600 Subject: [PATCH] refactor: Performance optimization in retroactive appearances check (#90) --- src/transmog_scripts.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/transmog_scripts.cpp b/src/transmog_scripts.cpp index 922601c..e53512e 100644 --- a/src/transmog_scripts.cpp +++ b/src/transmog_scripts.cpp @@ -520,15 +520,11 @@ private: void CheckRetroActiveQuestAppearances(Player* player) { - QueryResult result = CharacterDatabase.Query("SELECT `quest` FROM `character_queststatus_rewarded` WHERE `guid` = {}", player->GetGUID().GetCounter()); - if (result) + const RewardedQuestSet& rewQuests = player->getRewardedQuests(); + for (RewardedQuestSet::const_iterator itr = rewQuests.begin(); itr != rewQuests.end(); ++itr) { - do - { - uint32 questId = (*result)[0].Get(); - Quest* questTemplate = const_cast(sObjectMgr->GetQuestTemplate(questId)); - OnPlayerCompleteQuest(player, questTemplate); - } while (result->NextRow()); + Quest const* quest = sObjectMgr->GetQuestTemplate(*itr); + OnPlayerCompleteQuest(player, quest); } player->UpdatePlayerSetting("mod-transmog", SETTING_RETROACTIVE_CHECK, 1); }