Core/Calendar: Implement different timezone support for ingame calendar

Closes #8390
Closes #29427
This commit is contained in:
Shauren
2023-11-21 12:25:22 +01:00
parent 8c072b93af
commit b888b1b09f
47 changed files with 1182 additions and 456 deletions

View File

@@ -17,7 +17,9 @@
#include "GameTime.h"
#include "Timer.h"
#include "Timezone.h"
#include "Util.h"
#include "WowTime.h"
namespace GameTime
{
@@ -31,6 +33,9 @@ namespace GameTime
tm DateTime;
WowTime UtcWow;
WowTime Wow;
time_t GetStartTime()
{
return StartTime;
@@ -84,6 +89,16 @@ namespace GameTime
return &DateTime;
}
WowTime const* GetUtcWowTime()
{
return &UtcWow;
}
WowTime const* GetWowTime()
{
return &Wow;
}
void UpdateGameTimers()
{
GameTime = time(nullptr);
@@ -91,5 +106,7 @@ namespace GameTime
GameTimeSystemPoint = std::chrono::system_clock::now();
GameTimeSteadyPoint = std::chrono::steady_clock::now();
localtime_r(&GameTime, &DateTime);
UtcWow.SetUtcTimeFromUnixTime(GameTime);
Wow = UtcWow + Trinity::Timezone::GetSystemZoneOffsetAt(GameTimeSystemPoint);
}
}