diff --git a/src/network/network.cpp b/src/network/network.cpp index eb2d4b8c30..4554801061 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -1130,6 +1130,7 @@ const char *GetSyncRecordEventName(NetworkSyncRecordEvents event) "TREE", "STATION", "INDUSTRY", + "PRE_DATES", "PRE_COMPANY_STATE", "VEH_PERIODIC", "VEH_LOAD_UNLOAD", diff --git a/src/network/network_sync.h b/src/network/network_sync.h index 76eea4cd42..189bc0a417 100644 --- a/src/network/network_sync.h +++ b/src/network/network_sync.h @@ -31,6 +31,7 @@ enum NetworkSyncRecordEvents : uint32_t { NSRE_TREE, NSRE_STATION, NSRE_INDUSTRY, + NSRE_PRE_DATES, NSRE_PRE_COMPANY_STATE, NSRE_VEH_PERIODIC, NSRE_VEH_LOAD_UNLOAD, diff --git a/src/openttd.cpp b/src/openttd.cpp index 82420705f0..67f5b4ae37 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -2271,6 +2271,17 @@ void StateGameLoop() NewsLoop(); if (_networking) { + RecordSyncEvent(NSRE_PRE_DATES); + UpdateStateChecksum(_tick_counter); + UpdateStateChecksum(_scaled_tick_counter); + UpdateStateChecksum(_state_ticks.base()); + UpdateStateChecksum(CalTime::CurDate().base()); + UpdateStateChecksum(CalTime::CurDateFract()); + UpdateStateChecksum(CalTime::CurSubDateFract()); + UpdateStateChecksum(EconTime::CurDate().base()); + UpdateStateChecksum(EconTime::CurDateFract()); + UpdateStateChecksum(TickSkipCounter()); + RecordSyncEvent(NSRE_PRE_COMPANY_STATE); for (Company *c : Company::Iterate()) { DEBUG_UPDATESTATECHECKSUM("Company: %u, Money: " OTTD_PRINTF64, c->index, (int64_t)c->money); diff --git a/src/settings.cpp b/src/settings.cpp index 6b34e2c46b..927ecbed1d 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1278,6 +1278,7 @@ static void ChangeTimekeepingUnits(int32_t) UpdateEffectiveDayLengthFactor(); SetupTickRate(); + UpdateTimeSettings(0); } /**