From a2a7bd9394dfeb084871eb0a49f2b217fcdfb017 Mon Sep 17 00:00:00 2001 From: Shauren Date: Mon, 18 Apr 2022 12:20:14 +0200 Subject: Core/Achievements: Fixed optimization from 9b44ed9cda347bfda1078666b3779d985fc37b2b being ineffective for UpdateAchievementCriteria calls that don't have any related criteria --- src/server/game/Achievements/AchievementMgr.cpp | 4 ++++ src/server/game/Achievements/AchievementMgr.h | 2 ++ 2 files changed, 6 insertions(+) (limited to 'src') 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]; -- cgit v1.2.3