From 77795c9ff302ccff719a156bc63085562f73bcd8 Mon Sep 17 00:00:00 2001 From: Shauren Date: Mon, 8 Sep 2025 14:33:21 +0200 Subject: Core/Time: Initialize all GameTime fields at server startup --- src/server/game/Time/GameTime.cpp | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/server/game/Time/GameTime.cpp b/src/server/game/Time/GameTime.cpp index 2a2797b97e0..b6d4e2f9986 100644 --- a/src/server/game/Time/GameTime.cpp +++ b/src/server/game/Time/GameTime.cpp @@ -18,24 +18,32 @@ #include "GameTime.h" #include "Timer.h" #include "Timezone.h" +#include "Types.h" #include "Util.h" #include "WowTime.h" namespace GameTime { - time_t const StartTime = time(nullptr); - - time_t GameTime = time(nullptr); - uint32 GameMSTime = 0; +namespace +{ + time_t GameTime; + uint32 GameMSTime; - SystemTimePoint GameTimeSystemPoint = SystemTimePoint::min(); - TimePoint GameTimeSteadyPoint = TimePoint::min(); + SystemTimePoint GameTimeSystemPoint; + TimePoint GameTimeSteadyPoint; tm DateTime; WowTime UtcWow; WowTime Wow; + time_t const StartTime = [] + { + UpdateGameTimers(); + return time(nullptr); + }(); +} + time_t GetStartTime() { return StartTime; @@ -64,7 +72,8 @@ namespace GameTime template typename Clock::time_point GetTime() { - static_assert(!std::is_same::value, "Missing specialization for GetGameTimePoint"); + static_assert(Trinity::dependant_false_v, "Missing specialization for GetGameTimePoint"); + return { }; } template<> -- cgit v1.2.3