aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/MiscHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Handlers/MiscHandler.cpp')
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index e43a7e2af0c..a51b61050ee 100644
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -485,22 +485,25 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPackets::Misc::AreaTrigger& pack
if (player->IsAlive())
{
- if (uint32 questId = sObjectMgr->GetQuestForAreaTrigger(packet.AreaTriggerID))
+ if (std::unordered_set<uint32> const* quests = sObjectMgr->GetQuestsForAreaTrigger(packet.AreaTriggerID))
{
- Quest const* qInfo = sObjectMgr->GetQuestTemplate(questId);
- if (qInfo && player->GetQuestStatus(questId) == QUEST_STATUS_INCOMPLETE)
+ for (uint32 questId : *quests)
{
- for (uint8 j = 0; j < qInfo->Objectives.size(); ++j)
+ Quest const* qInfo = sObjectMgr->GetQuestTemplate(questId);
+ if (qInfo && player->GetQuestStatus(questId) == QUEST_STATUS_INCOMPLETE)
{
- if (qInfo->Objectives[j].Type == QUEST_OBJECTIVE_AREATRIGGER)
+ for (uint8 j = 0; j < qInfo->Objectives.size(); ++j)
{
- player->SetQuestObjectiveData(qInfo, j, int32(true));
- break;
+ if (qInfo->Objectives[j].Type == QUEST_OBJECTIVE_AREATRIGGER)
+ {
+ player->SetQuestObjectiveData(qInfo, j, int32(true));
+ break;
+ }
}
- }
- if (player->CanCompleteQuest(questId))
- player->CompleteQuest(questId);
+ if (player->CanCompleteQuest(questId))
+ player->CompleteQuest(questId);
+ }
}
}
}