diff options
| author | Shauren <shauren.trinity@gmail.com> | 2022-04-18 12:20:14 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-06-10 19:05:31 +0200 |
| commit | 312569970ee14855d7e9153fd36cdea413676df4 (patch) | |
| tree | eb6dcf8352345af811dd9dc46739edb963a24da7 /src | |
| parent | 3bedbf6596c5387f02fb6abe6ebef87e91fb542b (diff) | |
Core/Achievements: Fixed optimization from 9b44ed9cda347bfda1078666b3779d985fc37b2b being ineffective for UpdateAchievementCriteria calls that don't have any related criteria
(cherry picked from commit a2a7bd9394dfeb084871eb0a49f2b217fcdfb017)
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Achievements/CriteriaHandler.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Achievements/CriteriaHandler.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp index cabcf78e27c..6e053761eeb 100644 --- a/src/server/game/Achievements/CriteriaHandler.cpp +++ b/src/server/game/Achievements/CriteriaHandler.cpp @@ -3762,6 +3762,8 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6 return true; } +CriteriaList const CriteriaMgr::EmptyCriteriaList; + char const* CriteriaMgr::GetCriteriaTypeString(uint32 type) { return GetCriteriaTypeString(CriteriaType(type)); @@ -4290,6 +4292,8 @@ CriteriaList const& CriteriaMgr::GetPlayerCriteriaByType(CriteriaType type, uint auto itr = _criteriasByAsset[size_t(type)].find(asset); if (itr != _criteriasByAsset[size_t(type)].end()) return itr->second; + + return EmptyCriteriaList; } return _criteriasByType[size_t(type)]; diff --git a/src/server/game/Achievements/CriteriaHandler.h b/src/server/game/Achievements/CriteriaHandler.h index 3e84bf0de6c..2c7d869c769 100644 --- a/src/server/game/Achievements/CriteriaHandler.h +++ b/src/server/game/Achievements/CriteriaHandler.h @@ -415,6 +415,7 @@ private: std::unordered_map<uint32, CriteriaTreeList> _criteriaTreeByCriteria; // store criterias by type to speed up lookup + static CriteriaList const EmptyCriteriaList; CriteriaList _criteriasByType[size_t(CriteriaType::Count)]; CriteriaListByAsset _criteriasByAsset[size_t(CriteriaType::Count)]; CriteriaList _guildCriteriasByType[size_t(CriteriaType::Count)]; |
