(svn r20106) -Fix (r5999): Engine and vehicle age were clamped at 0xFFFF, though there are 32bit available.

This commit is contained in:
frosch 2010-07-10 08:54:57 +00:00
parent d4da257ff9
commit 1055c2b0fd
3 changed files with 4 additions and 4 deletions

View File

@ -734,7 +734,7 @@ void EnginesMonthlyLoop()
Engine *e;
FOR_ALL_ENGINES(e) {
/* Age the vehicle */
if ((e->flags & ENGINE_AVAILABLE) && e->age != 0xFFFF) {
if ((e->flags & ENGINE_AVAILABLE) && e->age != MAX_DAY) {
e->age++;
CalcEngineReliability(e);
}

View File

@ -732,8 +732,8 @@ static uint32 VehicleGetVariable(const ResolverObject *object, byte variable, by
case 0x3D: return GB(v->cargo.Count(), 8, 8);
case 0x3E: return v->cargo.Source();
case 0x3F: return v->cargo.DaysInTransit();
case 0x40: return v->age;
case 0x41: return GB(v->age, 8, 8);
case 0x40: return ClampToU16(v->age);
case 0x41: return GB(ClampToU16(v->age), 8, 8);
case 0x42: return v->max_age;
case 0x43: return GB(v->max_age, 8, 8);
case 0x44: return Clamp(v->build_year, ORIGINAL_BASE_YEAR, ORIGINAL_MAX_YEAR) - ORIGINAL_BASE_YEAR;

View File

@ -971,7 +971,7 @@ void CheckVehicleBreakdown(Vehicle *v)
void AgeVehicle(Vehicle *v)
{
if (v->age < 65535) v->age++;
if (v->age < MAX_DAY) v->age++;
int age = v->age - v->max_age;
if (age == DAYS_IN_LEAP_YEAR * 0 || age == DAYS_IN_LEAP_YEAR * 1 ||