diff options
Diffstat (limited to 'src/server/game/Handlers/QuestHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/QuestHandler.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index b6636b1e246..cca62c6ac08 100644 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -844,10 +844,21 @@ void WorldSession::HandleUiMapQuestLinesRequest(WorldPackets::Quest::UiMapQuestL if (!questLineQuests) continue; + bool isQuestLineCompleted = true; for (QuestLineXQuestEntry const* questLineQuest : *questLineQuests) + { if (Quest const* quest = sObjectMgr->GetQuestTemplate(questLineQuest->QuestID)) + { if (_player->CanTakeQuest(quest, false)) response.QuestLineXQuestIDs.push_back(questLineQuest->ID); + + if (isQuestLineCompleted && !_player->GetQuestRewardStatus(questLineQuest->QuestID)) + isQuestLineCompleted = false; + } + } + + if (!isQuestLineCompleted) + response.QuestLineIDs.push_back(questLineId); } } |