Stop engine reliability decay once no vehicles expire after year is reached
Instead of maximum of expire and introduction year settings See: #646
This commit is contained in:
@@ -827,8 +827,8 @@ void StartupEngines()
|
|||||||
{
|
{
|
||||||
/* Aging of vehicles stops, so account for that when starting late */
|
/* Aging of vehicles stops, so account for that when starting late */
|
||||||
CalTime::Year aging_stop_year = _year_engine_aging_stops;
|
CalTime::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) {
|
if (_settings_game.vehicle.no_expire_vehicles_after > 0) {
|
||||||
aging_stop_year = std::min<CalTime::Year>(aging_stop_year, std::max<CalTime::Year>(_settings_game.vehicle.no_introduce_vehicles_after, _settings_game.vehicle.no_expire_vehicles_after));
|
aging_stop_year = std::min<CalTime::Year>(aging_stop_year, _settings_game.vehicle.no_expire_vehicles_after);
|
||||||
}
|
}
|
||||||
const CalTime::Date aging_date = std::min(CalTime::CurDate(), CalTime::ConvertYMDToDate(aging_stop_year, 0, 1));
|
const CalTime::Date aging_date = std::min(CalTime::CurDate(), CalTime::ConvertYMDToDate(aging_stop_year, 0, 1));
|
||||||
const CalTime::YearMonthDay aging_ymd = CalTime::ConvertDateToYMD(aging_date);
|
const CalTime::YearMonthDay aging_ymd = CalTime::ConvertDateToYMD(aging_date);
|
||||||
@@ -1197,8 +1197,10 @@ void EnginesMonthlyLoop()
|
|||||||
{
|
{
|
||||||
if (CalTime::CurYear() < _year_engine_aging_stops) {
|
if (CalTime::CurYear() < _year_engine_aging_stops) {
|
||||||
CalTime::Date no_introduce_after = INT_MAX;
|
CalTime::Date no_introduce_after = INT_MAX;
|
||||||
|
bool no_engine_aging = (_settings_game.vehicle.no_expire_vehicles_after > 0 && CalTime::CurYear() >= _settings_game.vehicle.no_expire_vehicles_after);
|
||||||
if (_settings_game.vehicle.no_introduce_vehicles_after > 0) {
|
if (_settings_game.vehicle.no_introduce_vehicles_after > 0) {
|
||||||
if (_settings_game.vehicle.no_expire_vehicles_after > 0 && CalTime::CurYear() >= std::max<CalTime::Year>(_settings_game.vehicle.no_introduce_vehicles_after, _settings_game.vehicle.no_expire_vehicles_after)) {
|
if (no_engine_aging && CalTime::CurYear() >= _settings_game.vehicle.no_introduce_vehicles_after) {
|
||||||
|
/* No engine expiry or aging, and no introductions, so nothing to do */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
no_introduce_after = CalTime::ConvertYMDToDate(_settings_game.vehicle.no_introduce_vehicles_after, 0, 1) - 1;
|
no_introduce_after = CalTime::ConvertYMDToDate(_settings_game.vehicle.no_introduce_vehicles_after, 0, 1) - 1;
|
||||||
@@ -1207,7 +1209,7 @@ void EnginesMonthlyLoop()
|
|||||||
bool refresh = false;
|
bool refresh = false;
|
||||||
for (Engine *e : Engine::Iterate()) {
|
for (Engine *e : Engine::Iterate()) {
|
||||||
/* Age the vehicle */
|
/* Age the vehicle */
|
||||||
if ((e->flags & ENGINE_AVAILABLE) && e->age != INT32_MAX) {
|
if (!no_engine_aging && (e->flags & ENGINE_AVAILABLE) && e->age != INT32_MAX) {
|
||||||
e->age++;
|
e->age++;
|
||||||
CalcEngineReliability(e, true);
|
CalcEngineReliability(e, true);
|
||||||
refresh = true;
|
refresh = true;
|
||||||
|
@@ -225,7 +225,7 @@ STR_CONFIG_SETTING_WARN_NO_DEPOT_ORDER_HELPTEXT :When enabled an
|
|||||||
STR_CONFIG_SETTING_WARN_NO_DEPOT_ORDER_IF_BREAKDOWNS_ON :If vehicle breakdowns enabled
|
STR_CONFIG_SETTING_WARN_NO_DEPOT_ORDER_IF_BREAKDOWNS_ON :If vehicle breakdowns enabled
|
||||||
|
|
||||||
STR_CONFIG_SETTING_NO_EXPIRE_VEHICLES_AFTER :No vehicles expire after: {STRING2}
|
STR_CONFIG_SETTING_NO_EXPIRE_VEHICLES_AFTER :No vehicles expire after: {STRING2}
|
||||||
STR_CONFIG_SETTING_NO_EXPIRE_VEHICLES_AFTER_HELPTEXT :Vehicles which would otherwise expire after this year remain available forever
|
STR_CONFIG_SETTING_NO_EXPIRE_VEHICLES_AFTER_HELPTEXT :Vehicles which would otherwise expire after this year remain available forever.{}Engine reliability decay is also stopped once this year is reached
|
||||||
STR_CONFIG_SETTING_NO_EXPIRE_VEHICLES_AFTER_VALUE :{NUM}
|
STR_CONFIG_SETTING_NO_EXPIRE_VEHICLES_AFTER_VALUE :{NUM}
|
||||||
STR_CONFIG_SETTING_NO_EXPIRE_VEHICLES_AFTER_ZERO :Off
|
STR_CONFIG_SETTING_NO_EXPIRE_VEHICLES_AFTER_ZERO :Off
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user