mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/AchievementMgr: fix integer underflow neglecting already completed realm firsts
Closes #19334
This commit is contained in:
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user