aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/MiscHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-01-19 20:12:09 +0100
committerShauren <shauren.trinity@gmail.com>2016-01-19 20:12:09 +0100
commit3cd3184394068a2737556a03cdc0be8722397347 (patch)
tree5a593ddc04adfb95a5681fdf1718a97ab2b686a8 /src/server/game/Handlers/MiscHandler.cpp
parenta50b1d09240fee0650b0a22b0456d41c4a45abe4 (diff)
Core/Quests: Implemented new quest objective types
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);
+ }
}
}
}