aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-09-24 01:12:13 +0200
committerShauren <shauren.trinity@gmail.com>2023-09-24 01:12:13 +0200
commit4362a8c3f6aff1a8403ab9c1dee3fd23a82db339 (patch)
tree09c272ea995a778cf6e7c419b5538628855bfab8 /src
parent68b6d81d4c0fdb35391147725a21e5cfc347dedf (diff)
Core/Quests: Fixed optional quest objectives incorrectly changing quest state when they change completion state
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index d5b1db07180..54d37c7bbb7 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -16718,9 +16718,12 @@ void Player::UpdateQuestObjectiveProgress(QuestObjectiveType objectiveType, int3
updateZoneAuras = true;
}
- if (objectiveIsNowComplete && CanCompleteQuest(questId, objective.ID))
- CompleteQuest(questId);
- else if (objectiveItr.second.QuestStatusItr->second.Status == QUEST_STATUS_COMPLETE)
+ if (objectiveIsNowComplete)
+ {
+ if (CanCompleteQuest(questId, objective.ID))
+ CompleteQuest(questId);
+ }
+ else if (!(objective.Flags & QUEST_OBJECTIVE_FLAG_OPTIONAL) && objectiveItr.second.QuestStatusItr->second.Status == QUEST_STATUS_COMPLETE)
IncompleteQuest(questId);
}
}