Stop engine ageing when introduce/expire vehicle limit years both reached

pull/226/head
Jonathan G Rennison 4 years ago
parent a670e369db
commit 10f6562420

@ -713,7 +713,11 @@ void StartupOneEngine(Engine *e, Date aging_date, Date no_introduce_after_date)
void StartupEngines()
{
/* Aging of vehicles stops, so account for that when starting late */
const Date aging_date = std::min(_date, ConvertYMDToDate(_year_engine_aging_stops, 0, 1));
Year aging_stop_year = _year_engine_aging_stops;
if (_settings_game.vehicle.no_introduce_vehicles_after > 0 && _settings_game.vehicle.no_expire_vehicles_after > 0) {
aging_stop_year = std::min<Year>(aging_stop_year, std::max<Year>(_settings_game.vehicle.no_introduce_vehicles_after, _settings_game.vehicle.no_expire_vehicles_after));
}
const Date aging_date = std::min(_date, ConvertYMDToDate(aging_stop_year, 0, 1));
Date no_introduce_after_date = INT_MAX;
if (_settings_game.vehicle.no_introduce_vehicles_after > 0) {
@ -1056,6 +1060,9 @@ void EnginesMonthlyLoop()
if (_cur_year < _year_engine_aging_stops) {
Date no_introduce_after = INT_MAX;
if (_settings_game.vehicle.no_introduce_vehicles_after > 0) {
if (_settings_game.vehicle.no_expire_vehicles_after > 0 && _cur_year >= std::max<Year>(_settings_game.vehicle.no_introduce_vehicles_after, _settings_game.vehicle.no_expire_vehicles_after)) {
return;
}
no_introduce_after = ConvertYMDToDate(_settings_game.vehicle.no_introduce_vehicles_after, 0, 1) - 1;
}

Loading…
Cancel
Save