From abec2e02fe7b6e489e33412568fd45dceecd2c96 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Thu, 1 Oct 2026 18:43:11 -0300 Subject: [PATCH] fix(Core/Time): Measure uptime on the steady clock (#27864) --- src/server/game/Time/GameTime.cpp | 5 +++-- src/server/game/Time/GameTime.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/server/game/Time/GameTime.cpp b/src/server/game/Time/GameTime.cpp index 123b4402aa..bfa9137eee 100644 --- a/src/server/game/Time/GameTime.cpp +++ b/src/server/game/Time/GameTime.cpp @@ -23,12 +23,13 @@ namespace GameTime using namespace std::chrono; Seconds const StartTime = GetEpochTime(); + TimePoint const StartSteadyPoint = steady_clock::now(); Seconds GameTime = GetEpochTime(); Milliseconds GameMSTime = 0ms; SystemTimePoint GameTimeSystemPoint = SystemTimePoint::min(); - TimePoint GameTimeSteadyPoint = TimePoint::min(); + TimePoint GameTimeSteadyPoint = StartSteadyPoint; Seconds GetStartTime() { @@ -57,7 +58,7 @@ namespace GameTime Seconds GetUptime() { - return GameTime - StartTime; + return duration_cast(GameTimeSteadyPoint - StartSteadyPoint); } void UpdateGameTimers() diff --git a/src/server/game/Time/GameTime.h b/src/server/game/Time/GameTime.h index 37ffb7bfb9..f6525b63ee 100644 --- a/src/server/game/Time/GameTime.h +++ b/src/server/game/Time/GameTime.h @@ -38,7 +38,7 @@ namespace GameTime /// Current chrono steady_clock time point AC_GAME_API TimePoint Now(); - /// Uptime + /// Time since server start, unaffected by wall clock changes AC_GAME_API Seconds GetUptime(); /// Uptime since a given time point