Core/Achievements: Fixed optimization from 9b44ed9cda being ineffective for UpdateAchievementCriteria calls that don't have any related criteria

This commit is contained in:
Shauren
2022-04-18 12:20:14 +02:00
parent aee4f0350e
commit a2a7bd9394
2 changed files with 6 additions and 0 deletions

View File

@@ -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];

View File

@@ -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];