Adjust signal speed restriction timeouts when date or day length changed

pull/281/head
Jonathan G Rennison 3 years ago
parent e16c29ef7d
commit 5fb3eb0bb9

@ -1793,7 +1793,12 @@ static bool ImprovedBreakdownsSettingChanged(int32 p1)
static bool DayLengthChanged(int32 p1)
{
const DateTicksScaled old_scaled_date_ticks = _scaled_date_ticks;
SetScaledTickVariables();
extern void AdjustAllSignalSpeedRestrictionTickValues(DateTicksScaled delta);
AdjustAllSignalSpeedRestrictionTickValues(_scaled_date_ticks - old_scaled_date_ticks);
MarkWholeScreenDirty();
return true;
}

@ -122,6 +122,13 @@ void ClearAllSignalSpeedRestrictions()
_signal_speeds.clear();
}
void AdjustAllSignalSpeedRestrictionTickValues(DateTicksScaled delta)
{
for (auto &it : _signal_speeds) {
it.second.time_stamp += delta;
}
}
/** Removes all speed restrictions which have passed their timeout from all signals */
void ClearOutOfDateSignalSpeedRestrictions()
{

@ -4310,4 +4310,7 @@ void ShiftVehicleDates(int interval)
for (Vehicle *v : Vehicle::Iterate()) {
v->date_of_last_service += interval;
}
extern void AdjustAllSignalSpeedRestrictionTickValues(DateTicksScaled delta);
AdjustAllSignalSpeedRestrictionTickValues(interval * DAY_TICKS * _settings_game.economy.day_length_factor);
}

Loading…
Cancel
Save