diff options
author | Shauren <shauren.trinity@gmail.com> | 2021-05-09 20:21:32 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-05-09 20:21:32 +0200 |
commit | 91b91b502f30f781c8dea77dec4ce2f469b89744 (patch) | |
tree | ec4b30e134e7390c833d5a9612eea036263beec6 /src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp | |
parent | dd8aed421a48225b0e60c677969d1fc133954279 (diff) |
Core/Quests: Quest improvements
* Add quest log slot argument to functions dealing with objective progress
* Implemented QUEST_OBJECTIVE_FLAG_SEQUENCED (prevent progressing hidden objectives)
Diffstat (limited to 'src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp')
-rw-r--r-- | src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp | 8 |
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); } |