diff options
author | ariel- <ariel-@users.noreply.github.com> | 2017-03-19 19:33:30 -0300 |
---|---|---|
committer | ariel- <ariel-@users.noreply.github.com> | 2017-03-19 19:33:30 -0300 |
commit | 9cfa7c752e1d61b02acb852d2fd304a80d10b60a (patch) | |
tree | 87acab97392eccccdedd2e0ac79f6b95bbbdca05 /src | |
parent | b53d0530cd9be97d549993a6b6c46e2cb7a4e779 (diff) |
Core/AchievementMgr: fix integer underflow neglecting already completed realm firsts
Closes #19334
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Achievements/AchievementMgr.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index a0c73a1b068..4908c7f6770 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -2255,6 +2255,9 @@ bool AchievementGlobalMgr::IsRealmCompleted(AchievementEntry const* achievement) if (itr->second == std::chrono::system_clock::time_point::min()) return false; + if (itr->second == std::chrono::system_clock::time_point::max()) + return true; + // Allow completing the realm first kill for entire minute after first person did it // it may allow more than one group to achieve it (highly unlikely) // but apparently this is how blizz handles it as well @@ -2549,7 +2552,7 @@ void AchievementGlobalMgr::LoadCompletedAchievements() continue; } else if (achievement->Flags & (ACHIEVEMENT_FLAG_REALM_FIRST_REACH | ACHIEVEMENT_FLAG_REALM_FIRST_KILL)) - _allCompletedAchievements[achievementId] = std::chrono::system_clock::time_point::max();; + _allCompletedAchievements[achievementId] = std::chrono::system_clock::time_point::max(); } while (result->NextRow()); TC_LOG_INFO("server.loading", ">> Loaded %lu realm first completed achievements in %u ms.", (unsigned long)_allCompletedAchievements.size(), GetMSTimeDiffToNow(oldMSTime)); |