aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Quests
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-09-25 00:53:56 +0200
committerShauren <shauren.trinity@gmail.com>2023-09-25 00:53:56 +0200
commit41a20b1e4008d450d075847ef1fe367f0e3a240f (patch)
tree4e202edb0d037a4a406926e6cacd686c7afcbca1 /src/server/game/Quests
parente1f345756ba34ccf4d4dd07b90c254097a240b51 (diff)
Core/Achievements: Fixed achievement criteria StartEvent and FailEvent
* Criteria using StartEvent cannot be updated without that event triggering first (not only for timed achievements) * Implemented most StartEvent and FailEvent types * Fixed saving criteria removed by RemoveCriteriaProgress
Diffstat (limited to 'src/server/game/Quests')
-rw-r--r--src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp32
-rw-r--r--src/server/game/Quests/QuestObjectiveCriteriaMgr.h1
2 files changed, 0 insertions, 33 deletions
diff --git a/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp b/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
index fe0efd9e1ef..a72c213a042 100644
--- a/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
+++ b/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
@@ -164,38 +164,6 @@ void QuestObjectiveCriteriaMgr::SaveToDB(CharacterDatabaseTransaction trans)
}
}
-void QuestObjectiveCriteriaMgr::ResetCriteria(CriteriaFailEvent failEvent, int32 failAsset, bool evenIfCriteriaComplete)
-{
- TC_LOG_DEBUG("criteria.quest", "QuestObjectiveCriteriaMgr::ResetCriteria({}, {}, {})", uint32(failEvent), failAsset, evenIfCriteriaComplete ? "true" : "false");
-
- // disable for gamemasters with GM-mode enabled
- if (_owner->IsGameMaster())
- return;
-
- if (CriteriaList const* playerCriteriaList = sCriteriaMgr->GetCriteriaByFailEvent(failEvent, failAsset))
- {
- for (Criteria const* playerCriteria : *playerCriteriaList)
- {
- std::vector<CriteriaTree const*> const* trees = sCriteriaMgr->GetCriteriaTreesByCriteria(playerCriteria->ID);
- bool allComplete = true;
- for (CriteriaTree const* tree : *trees)
- {
- // don't update already completed criteria if not forced
- if (!(IsCompletedCriteriaTree(tree) && !evenIfCriteriaComplete))
- {
- allComplete = false;
- break;
- }
- }
-
- if (allComplete)
- continue;
-
- RemoveCriteriaProgress(playerCriteria);
- }
- }
-}
-
void QuestObjectiveCriteriaMgr::ResetCriteriaTree(uint32 criteriaTreeId)
{
CriteriaTree const* tree = sCriteriaMgr->GetCriteriaTree(criteriaTreeId);
diff --git a/src/server/game/Quests/QuestObjectiveCriteriaMgr.h b/src/server/game/Quests/QuestObjectiveCriteriaMgr.h
index ca1eac58a15..a263e153316 100644
--- a/src/server/game/Quests/QuestObjectiveCriteriaMgr.h
+++ b/src/server/game/Quests/QuestObjectiveCriteriaMgr.h
@@ -35,7 +35,6 @@ public:
void LoadFromDB(PreparedQueryResult objectiveResult, PreparedQueryResult criteriaResult);
void SaveToDB(CharacterDatabaseTransaction trans);
- void ResetCriteria(CriteriaFailEvent failEvent, int32 failAsset, bool evenIfCriteriaComplete = false);
void ResetCriteriaTree(uint32 criteriaTreeId);
void SendAllData(Player const* receiver) const override;