World: Remember the age persistently. (#3556)
This commit is contained in:
parent
dfa8f278ea
commit
97980d1103
@ -471,6 +471,8 @@ void cWorld::Start(cDeadlockDetect & a_DeadlockDetect)
|
||||
int GameMode = IniFile.GetValueSetI("General", "Gamemode", static_cast<int>(m_GameMode));
|
||||
int Weather = IniFile.GetValueSetI("General", "Weather", static_cast<int>(m_Weather));
|
||||
|
||||
m_WorldAge = std::chrono::milliseconds(IniFile.GetValueSetI("General", "WorldAgeMS", 0LL));
|
||||
|
||||
// Load the weather frequency data:
|
||||
if (m_Dimension == dimOverworld)
|
||||
{
|
||||
@ -937,6 +939,7 @@ void cWorld::Stop(cDeadlockDetect & a_DeadlockDetect)
|
||||
IniFile.SetValueB("General", "IsDaylightCycleEnabled", m_IsDaylightCycleEnabled);
|
||||
IniFile.SetValueI("General", "Weather", static_cast<int>(m_Weather));
|
||||
IniFile.SetValueI("General", "TimeInTicks", GetTimeOfDay());
|
||||
IniFile.SetValueI("General", "WorldAgeMS", static_cast<Int64>(m_WorldAge.count()));
|
||||
IniFile.WriteFile(m_IniFileName);
|
||||
|
||||
m_TickThread.Stop();
|
||||
|
@ -897,8 +897,11 @@ private:
|
||||
bool m_BroadcastAchievementMessages;
|
||||
|
||||
bool m_IsDaylightCycleEnabled;
|
||||
// std::chrono::milliseconds is guaranteed to be good for 292 years by the standard.
|
||||
|
||||
/** The age of the world.
|
||||
Monotonic, always increasing each game tick, persistent across server restart. */
|
||||
std::chrono::milliseconds m_WorldAge;
|
||||
|
||||
std::chrono::milliseconds m_TimeOfDay;
|
||||
cTickTimeLong m_LastTimeUpdate; // The tick in which the last time update has been sent.
|
||||
cTickTimeLong m_LastChunkCheck; // The last WorldAge (in ticks) in which unloading and possibly saving was triggered
|
||||
|
Loading…
Reference in New Issue
Block a user