Use DateTicksScaled for Vehicle::last_loading_tick

This commit is contained in:
Jonathan G Rennison
2024-01-27 16:38:27 +00:00
parent 74686b9c63
commit 1ce8930583
7 changed files with 19 additions and 14 deletions

View File

@@ -3907,11 +3907,15 @@ bool AfterLoadGame()
/* Use current order time to approximate last loading time */
if (IsSavegameVersionBefore(SLV_LAST_LOADING_TICK) && SlXvIsFeatureMissing(XSLFI_LAST_LOADING_TICK)) {
for (Vehicle *v : Vehicle::Iterate()) {
v->last_loading_tick = std::max(_scaled_tick_counter, static_cast<uint64_t>(v->current_order_time)) - v->current_order_time;
v->last_loading_tick = _scaled_date_ticks - v->current_order_time;
}
} else if (SlXvIsFeaturePresent(XSLFI_LAST_LOADING_TICK, 1, 1)) {
} else if (SlXvIsFeatureMissing(XSLFI_LAST_LOADING_TICK, 3)) {
const DateTicksScaledDelta delta = _scaled_date_ticks.base() - (int64_t)_scaled_tick_counter;
for (Vehicle *v : Vehicle::Iterate()) {
v->last_loading_tick *= _settings_game.economy.day_length_factor;
if (v->last_loading_tick != 0) {
if (SlXvIsFeaturePresent(XSLFI_LAST_LOADING_TICK, 1, 1)) v->last_loading_tick = v->last_loading_tick.base() * _settings_game.economy.day_length_factor;
v->last_loading_tick += delta;
}
}
}

View File

@@ -178,7 +178,7 @@ public:
SLE_CONDVAR(Vehicle, current_order_time, SLE_UINT32, SLV_67, SLV_TIMETABLE_TICKS_TYPE),
SLE_CONDVAR(Vehicle, current_order_time, SLE_FILE_I32 | SLE_VAR_U32, SLV_TIMETABLE_TICKS_TYPE, SL_MAX_VERSION),
SLE_CONDVAR(Vehicle, last_loading_tick, SLE_UINT64, SLV_LAST_LOADING_TICK, SL_MAX_VERSION),
SLE_CONDVAR(Vehicle, last_loading_tick, SLE_FILE_U64 | SLE_VAR_I64, SLV_LAST_LOADING_TICK, SL_MAX_VERSION),
SLE_CONDVAR(Vehicle, lateness_counter, SLE_INT32, SLV_67, SL_MAX_VERSION),
};
#if defined(_MSC_VER) && (_MSC_VER == 1915 || _MSC_VER == 1916)