Adjust signal speed restriction timeouts when date or day length changed
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user