From ef4d248325114b5cc3fb864f7105b44a7784be50 Mon Sep 17 00:00:00 2001 From: rubidium Date: Sat, 8 Sep 2007 22:53:10 +0000 Subject: [PATCH] (svn r11064) -Fix [FS#553]: when autorenew is enabled and it cannot renew the vehicle anymore (because the player cannot build the engine), the aging warnings as if autorenew is not enabled are shown. --- src/vehicle.cpp | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/vehicle.cpp b/src/vehicle.cpp index 85ddcd3776..4728f10dc6 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -1470,8 +1470,8 @@ static void ShowVehicleGettingOld(Vehicle *v, StringID msg) { if (v->owner != _local_player) return; - /* Do not show getting-old message if autorenew is active */ - if (GetPlayer(v->owner)->engine_renew) return; + /* Do not show getting-old message if autorenew is active (and it can replace the vehicle) */ + if (GetPlayer(v->owner)->engine_renew && GetEngine(v->engine_type)->player_avail != 0) return; SetDParam(0, _vehicle_type_names[v->type]); SetDParam(1, v->unitnumber); @@ -1480,14 +1480,10 @@ static void ShowVehicleGettingOld(Vehicle *v, StringID msg) void AgeVehicle(Vehicle *v) { - int age; + if (v->age < 65535) v->age++; - if (v->age < 65535) - v->age++; - - age = v->age - v->max_age; - if (age == 366*0 || age == 366*1 || age == 366*2 || age == 366*3 || age == 366*4) - v->reliability_spd_dec <<= 1; + int age = v->age - v->max_age; + if (age == 366*0 || age == 366*1 || age == 366*2 || age == 366*3 || age == 366*4) v->reliability_spd_dec <<= 1; InvalidateWindow(WC_VEHICLE_DETAILS, v->index); @@ -1495,7 +1491,7 @@ void AgeVehicle(Vehicle *v) ShowVehicleGettingOld(v, STR_01A0_IS_GETTING_OLD); } else if (age == 0) { ShowVehicleGettingOld(v, STR_01A1_IS_GETTING_VERY_OLD); - } else if (age == 366*1 || age == 366*2 || age == 366*3 || age == 366*4 || age == 366*5) { + } else if ((age % 366) == 0) { ShowVehicleGettingOld(v, STR_01A2_IS_GETTING_VERY_OLD_AND); } }