summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryexo <yexo@openttd.org>2010-09-13 14:20:30 +0000
committeryexo <yexo@openttd.org>2010-09-13 14:20:30 +0000
commitaaf370dce2e4cecab58c81c8cbf31145186e19be (patch)
tree190cf8eda597cd0a36a069f5282f1d0ca503037e
parentce649b0a73983505b7d6e00b155006db0d244289 (diff)
downloadopenttd-aaf370dce2e4cecab58c81c8cbf31145186e19be.tar.xz
(svn r20800) -Fix: [NewGRF] clamp some more vehicle variables
-rw-r--r--src/newgrf_engine.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp
index 1866af6c4..f2a70be4d 100644
--- a/src/newgrf_engine.cpp
+++ b/src/newgrf_engine.cpp
@@ -707,8 +707,8 @@ static uint32 VehicleGetVariable(const ResolverObject *object, byte variable, by
}
return (variable - 0x80) == 0x10 ? ticks : GB(ticks, 8, 8);
}
- case 0x12: return max(v->date_of_last_service - DAYS_TILL_ORIGINAL_BASE_YEAR, 0);
- case 0x13: return GB(max(v->date_of_last_service - DAYS_TILL_ORIGINAL_BASE_YEAR, 0), 8, 8);
+ case 0x12: return Clamp(v->date_of_last_service - DAYS_TILL_ORIGINAL_BASE_YEAR, 0, 0xFFFF);
+ case 0x13: return GB(Clamp(v->date_of_last_service - DAYS_TILL_ORIGINAL_BASE_YEAR, 0, 0xFFFF), 8, 8);
case 0x14: return v->service_interval;
case 0x15: return GB(v->service_interval, 8, 8);
case 0x16: return v->last_station_visited;
@@ -736,10 +736,10 @@ static uint32 VehicleGetVariable(const ResolverObject *object, byte variable, by
case 0x39: return v->cargo_type;
case 0x3A: return v->cargo_cap;
case 0x3B: return GB(v->cargo_cap, 8, 8);
- case 0x3C: return v->cargo.Count();
- case 0x3D: return GB(v->cargo.Count(), 8, 8);
+ case 0x3C: return ClampToU16(v->cargo.Count());
+ case 0x3D: return GB(ClampToU16(v->cargo.Count()), 8, 8);
case 0x3E: return v->cargo.Source();
- case 0x3F: return v->cargo.DaysInTransit();
+ case 0x3F: return ClampU(v->cargo.DaysInTransit(), 0, 0xFF);
case 0x40: return ClampToU16(v->age);
case 0x41: return GB(ClampToU16(v->age), 8, 8);
case 0x42: return ClampToU16(v->max_age);