diff options
-rw-r--r-- | src/newgrf.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/newgrf.cpp b/src/newgrf.cpp index f56b99899..848903324 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -1618,9 +1618,15 @@ static ChangeInfoResult AircraftVehicleChangeInfo(uint engine, int numinfo, int avi->max_speed = (buf->ReadByte() * 128) / 10; break; - case 0x0D: // Acceleration - avi->acceleration = (buf->ReadByte() * 128) / 10; + case 0x0D: { // Acceleration + uint acceleration = (buf->ReadByte() * 128) / 10; + if (acceleration > UINT8_MAX) { + grfmsg(1, "Acceleration property of aircraft %d is too big.", engine + i); + acceleration = UINT8_MAX; + } + avi->acceleration = acceleration; break; + } case PROP_AIRCRAFT_RUNNING_COST_FACTOR: // 0x0E Running cost factor avi->running_cost = buf->ReadByte(); |