diff options
author | Shauren <shauren.trinity@gmail.com> | 2024-12-08 00:23:38 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2024-12-08 00:23:38 +0100 |
commit | 4e89a302fcce7644bcd8cf239edad3b409950438 (patch) | |
tree | 3bffaa439377f092840d757d74f09c40004f4411 /src/server/game/Achievements/CriteriaHandler.h | |
parent | 6da1679cbfdc56cd5f1cab7148f645916bccecc1 (diff) |
Core/Quests: Improved criteria tree quest objective type
* Fixed _completedObjectives not being cleaned when adding quest
* Fixed objective credit being granted if just the criteria tree row containing criteria id was completed (instead of the entire tree linked to objective)
* Retroactively grant progress on quest accept for criteria types that require action that cannot be repeated (such as learning a spell)
Diffstat (limited to 'src/server/game/Achievements/CriteriaHandler.h')
-rw-r--r-- | src/server/game/Achievements/CriteriaHandler.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.h b/src/server/game/Achievements/CriteriaHandler.h index 82c8f2ac7d1..067566d0bde 100644 --- a/src/server/game/Achievements/CriteriaHandler.h +++ b/src/server/game/Achievements/CriteriaHandler.h @@ -22,6 +22,7 @@ #include "DBCEnums.h" #include "Duration.h" #include "ObjectGuid.h" +#include <span> #include <unordered_map> #include <vector> #include <ctime> @@ -284,6 +285,7 @@ public: protected: virtual void SendCriteriaUpdate(Criteria const* criteria, CriteriaProgress const* progress, Seconds timeElapsed, bool timedCompleted) const = 0; + void UpdateCriteria(Criteria const* criteria, uint64 miscValue1 = 0, uint64 miscValue2 = 0, uint64 miscValue3 = 0, WorldObject const* ref = nullptr, Player* referencePlayer = nullptr); CriteriaProgress* GetCriteriaProgress(Criteria const* entry); void SetCriteriaProgress(Criteria const* criteria, uint64 changeValue, Player* referencePlayer, ProgressType progressType = PROGRESS_SET); void RemoveCriteriaProgress(Criteria const* criteria); |