aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMeji <alvaro.megias@outlook.com>2024-02-03 22:03:55 +0100
committerGitHub <noreply@github.com>2024-02-03 22:03:55 +0100
commit9fda9d0d490cef07291961e03710d09cbd8aea1f (patch)
tree22c54977a5823f3475130f124bf531d51fa9cf50 /src
parent7b88faf672ef664e23d0012cbe81612ff00eda3b (diff)
Core/Achievements: Fixed updating EarnAchievement criteria type for guilds and quest objectives (#29648)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp4
-rw-r--r--src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp5
-rw-r--r--src/server/game/Quests/QuestObjectiveCriteriaMgr.h2
3 files changed, 9 insertions, 2 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index 306d57ebe28..64dd27d18e0 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -495,8 +495,8 @@ void PlayerAchievementMgr::CompletedAchievement(AchievementEntry const* achievem
if (!(achievement->Flags & ACHIEVEMENT_FLAG_TRACKING_FLAG))
_achievementPoints += achievement->Points;
- UpdateCriteria(CriteriaType::EarnAchievement, achievement->ID, 0, 0, nullptr, referencePlayer);
- UpdateCriteria(CriteriaType::EarnAchievementPoints, achievement->Points, 0, 0, nullptr, referencePlayer);
+ referencePlayer->UpdateCriteria(CriteriaType::EarnAchievement, achievement->ID, 0, 0, nullptr);
+ referencePlayer->UpdateCriteria(CriteriaType::EarnAchievementPoints, achievement->Points, 0, 0, nullptr);
sScriptMgr->OnAchievementCompleted(referencePlayer, achievement);
diff --git a/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp b/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
index 798e90e6b26..42040cd0b09 100644
--- a/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
+++ b/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
@@ -310,3 +310,8 @@ CriteriaList const& QuestObjectiveCriteriaMgr::GetCriteriaByType(CriteriaType ty
{
return sCriteriaMgr->GetQuestObjectiveCriteriaByType(type);
}
+
+bool QuestObjectiveCriteriaMgr::RequiredAchievementSatisfied(uint32 achievementId) const
+{
+ return _owner->HasAchieved(achievementId);
+}
diff --git a/src/server/game/Quests/QuestObjectiveCriteriaMgr.h b/src/server/game/Quests/QuestObjectiveCriteriaMgr.h
index a263e153316..f3ba31c2ac1 100644
--- a/src/server/game/Quests/QuestObjectiveCriteriaMgr.h
+++ b/src/server/game/Quests/QuestObjectiveCriteriaMgr.h
@@ -56,6 +56,8 @@ protected:
std::string GetOwnerInfo() const override;
CriteriaList const& GetCriteriaByType(CriteriaType type, uint32 asset) const override;
+ bool RequiredAchievementSatisfied(uint32 achievementId) const override;
+
private:
Player* _owner;
std::unordered_set<uint32> _completedObjectives;