Include dates and tick counters in state checksum

pull/661/head
Jonathan G Rennison 4 months ago
parent 24cd52616c
commit 79388e4207

@ -1130,6 +1130,7 @@ const char *GetSyncRecordEventName(NetworkSyncRecordEvents event)
"TREE", "TREE",
"STATION", "STATION",
"INDUSTRY", "INDUSTRY",
"PRE_DATES",
"PRE_COMPANY_STATE", "PRE_COMPANY_STATE",
"VEH_PERIODIC", "VEH_PERIODIC",
"VEH_LOAD_UNLOAD", "VEH_LOAD_UNLOAD",

@ -31,6 +31,7 @@ enum NetworkSyncRecordEvents : uint32_t {
NSRE_TREE, NSRE_TREE,
NSRE_STATION, NSRE_STATION,
NSRE_INDUSTRY, NSRE_INDUSTRY,
NSRE_PRE_DATES,
NSRE_PRE_COMPANY_STATE, NSRE_PRE_COMPANY_STATE,
NSRE_VEH_PERIODIC, NSRE_VEH_PERIODIC,
NSRE_VEH_LOAD_UNLOAD, NSRE_VEH_LOAD_UNLOAD,

@ -2271,6 +2271,17 @@ void StateGameLoop()
NewsLoop(); NewsLoop();
if (_networking) { 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); RecordSyncEvent(NSRE_PRE_COMPANY_STATE);
for (Company *c : Company::Iterate()) { for (Company *c : Company::Iterate()) {
DEBUG_UPDATESTATECHECKSUM("Company: %u, Money: " OTTD_PRINTF64, c->index, (int64_t)c->money); DEBUG_UPDATESTATECHECKSUM("Company: %u, Money: " OTTD_PRINTF64, c->index, (int64_t)c->money);

@ -1278,6 +1278,7 @@ static void ChangeTimekeepingUnits(int32_t)
UpdateEffectiveDayLengthFactor(); UpdateEffectiveDayLengthFactor();
SetupTickRate(); SetupTickRate();
UpdateTimeSettings(0);
} }
/** /**

Loading…
Cancel
Save