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)
|
static bool DayLengthChanged(int32 p1)
|
||||||
{
|
{
|
||||||
|
const DateTicksScaled old_scaled_date_ticks = _scaled_date_ticks;
|
||||||
SetScaledTickVariables();
|
SetScaledTickVariables();
|
||||||
|
|
||||||
|
extern void AdjustAllSignalSpeedRestrictionTickValues(DateTicksScaled delta);
|
||||||
|
AdjustAllSignalSpeedRestrictionTickValues(_scaled_date_ticks - old_scaled_date_ticks);
|
||||||
|
|
||||||
MarkWholeScreenDirty();
|
MarkWholeScreenDirty();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -122,6 +122,13 @@ void ClearAllSignalSpeedRestrictions()
|
|||||||
_signal_speeds.clear();
|
_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 */
|
/** Removes all speed restrictions which have passed their timeout from all signals */
|
||||||
void ClearOutOfDateSignalSpeedRestrictions()
|
void ClearOutOfDateSignalSpeedRestrictions()
|
||||||
{
|
{
|
||||||
|
@@ -4310,4 +4310,7 @@ void ShiftVehicleDates(int interval)
|
|||||||
for (Vehicle *v : Vehicle::Iterate()) {
|
for (Vehicle *v : Vehicle::Iterate()) {
|
||||||
v->date_of_last_service += interval;
|
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