aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp')
-rw-r--r--src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp b/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
index 07b1e1f582a..d9072f58659 100644
--- a/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
+++ b/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
@@ -296,6 +296,14 @@ bool QuestObjectiveCriteriaMgr::CanUpdateCriteriaTree(Criteria const* criteria,
return false;
}
+ uint16 slot = _owner->FindQuestSlot(objective->QuestID);
+ if (slot >= MAX_QUEST_LOG_SIZE || !_owner->IsQuestObjectiveCompletable(slot, quest, *objective))
+ {
+ TC_LOG_TRACE("criteria.quest", "QuestObjectiveCriteriaMgr::CanUpdateCriteriaTree: (Id: %u Type %s Quest Objective %u) Objective not completable",
+ criteria->ID, CriteriaMgr::GetCriteriaTypeString(criteria->Entry->Type), objective->ID);
+ return false;
+ }
+
return CriteriaHandler::CanUpdateCriteriaTree(criteria, tree, referencePlayer);
}