# HG changeset patch # User frosch # Date 2011-08-22 21:33:58 # Node ID 5866700f3901d65680c649b3a11e5c57fb9cc93e # Parent fa61aee8111520adce57e458b2b81d27f8e12ce1 (svn r22816) -Feature(ette): [NewGRF] Also age wagons and articulated parts. diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -1591,12 +1591,13 @@ static void CheckIfRoadVehNeedsService(R void RoadVehicle::OnNewDay() { + AgeVehicle(this); + if (!this->IsFrontEngine()) return; if ((++this->day_counter & 7) == 0) DecreaseVehicleValue(this); if (this->blocked_ctr == 0) CheckVehicleBreakdown(this); - AgeVehicle(this); CheckIfRoadVehNeedsService(this); CheckOrders(this); diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -3778,11 +3778,12 @@ static void CheckIfTrainNeedsService(Tra void Train::OnNewDay() { + AgeVehicle(this); + if ((++this->day_counter & 7) == 0) DecreaseVehicleValue(this); if (this->IsFrontEngine()) { CheckVehicleBreakdown(this); - AgeVehicle(this); CheckIfTrainNeedsService(this); @@ -3806,9 +3807,6 @@ void Train::OnNewDay() SetWindowDirty(WC_VEHICLE_DETAILS, this->index); SetWindowClassesDirty(WC_TRAINS_LIST); } - } else if (this->IsEngine()) { - /* Also age engines that aren't front engines */ - AgeVehicle(this); } } diff --git a/src/vehicle.cpp b/src/vehicle.cpp --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -1138,6 +1138,8 @@ void AgeVehicle(Vehicle *v) { if (v->age < MAX_DAY) v->age++; + if (!v->IsPrimaryVehicle() && (v->type != VEH_TRAIN || !Train::From(v)->IsEngine())) return; + int age = v->age - v->max_age; if (age == DAYS_IN_LEAP_YEAR * 0 || age == DAYS_IN_LEAP_YEAR * 1 || age == DAYS_IN_LEAP_YEAR * 2 || age == DAYS_IN_LEAP_YEAR * 3 || age == DAYS_IN_LEAP_YEAR * 4) {