diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-04-18 12:20:14 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-04-18 12:20:14 +0200 |
commit | a2a7bd9394dfeb084871eb0a49f2b217fcdfb017 (patch) | |
tree | 490f76063efb9c055e706ac149a6d8f5d41b920a | |
parent | aee4f0350ea5610b663cb07fb097f2fad256809e (diff) |
Core/Achievements: Fixed optimization from 9b44ed9cda347bfda1078666b3779d985fc37b2b being ineffective for UpdateAchievementCriteria calls that don't have any related criteria
-rw-r--r-- | src/server/game/Achievements/AchievementMgr.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Achievements/AchievementMgr.h | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index 7a705e10720..33cf600a8e5 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -2209,6 +2209,8 @@ char const* AchievementGlobalMgr::GetCriteriaTypeString(AchievementCriteriaTypes return "MISSING_TYPE"; } +AchievementCriteriaEntryList const AchievementGlobalMgr::EmptyCriteriaList; + AchievementGlobalMgr* AchievementGlobalMgr::instance() { static AchievementGlobalMgr instance; @@ -2264,6 +2266,8 @@ AchievementCriteriaEntryList const& AchievementGlobalMgr::GetAchievementCriteria auto itr = m_AchievementCriteriasByMiscValue[type].find(miscValue); if (itr != m_AchievementCriteriasByMiscValue[type].end()) return itr->second; + + return EmptyCriteriaList; } return m_AchievementCriteriasByType[type]; diff --git a/src/server/game/Achievements/AchievementMgr.h b/src/server/game/Achievements/AchievementMgr.h index 38d3a110012..1daaf0b3703 100644 --- a/src/server/game/Achievements/AchievementMgr.h +++ b/src/server/game/Achievements/AchievementMgr.h @@ -385,6 +385,8 @@ class TC_GAME_API AchievementGlobalMgr // store achievement criterias by type to speed up lookup AchievementCriteriaEntryList m_AchievementCriteriasByType[ACHIEVEMENT_CRITERIA_TYPE_TOTAL]; + static AchievementCriteriaEntryList const EmptyCriteriaList; + // store achievement criterias split by misc values AchievementCriteriaListByMiscValue m_AchievementCriteriasByMiscValue[ACHIEVEMENT_CRITERIA_TYPE_TOTAL]; |