(svn r22816) -Feature(ette): [NewGRF] Also age wagons and articulated parts.

This commit is contained in:
frosch 2011-08-22 21:33:58 +00:00
parent 3957f428b1
commit 28117b3eb0
3 changed files with 6 additions and 5 deletions

View File

@ -1591,12 +1591,13 @@ static void CheckIfRoadVehNeedsService(RoadVehicle *v)
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);

View File

@ -3778,11 +3778,12 @@ static void CheckIfTrainNeedsService(Train *v)
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);
}
}

View File

@ -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) {