diff options
author | truelight <truelight@openttd.org> | 2005-02-04 13:23:29 +0000 |
---|---|---|
committer | truelight <truelight@openttd.org> | 2005-02-04 13:23:29 +0000 |
commit | 42f98c7eec8cd46ea8452911fb4381f209de342f (patch) | |
tree | 512961ac36580ababc52512c67235f48f4bef8c8 /saveload.c | |
parent | 88ebe22d8b6e844b501688673f71db3505ea2b57 (diff) | |
download | openttd-42f98c7eec8cd46ea8452911fb4381f209de342f.tar.xz |
(svn r1783) -Add: Dynamic vehicles (now up to 64k of vehicles)
Diffstat (limited to 'saveload.c')
-rw-r--r-- | saveload.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/saveload.c b/saveload.c index 174d65703..66ac65af7 100644 --- a/saveload.c +++ b/saveload.c @@ -942,7 +942,11 @@ static void *IntToReference(uint r, uint t) switch (t) { case REF_ORDER: return GetOrder(r - 1); - case REF_VEHICLE: return GetVehicle(r - 1); + case REF_VEHICLE: { + if (!AddBlockIfNeeded(&_vehicle_pool, r - 1)) + error("Vehicles: failed loading savegame: too many vehicles"); + return GetVehicle(r - 1); + } case REF_STATION: { if (!AddBlockIfNeeded(&_station_pool, r - 1)) error("Stations: failed loading savegame: too many stations"); @@ -962,6 +966,9 @@ static void *IntToReference(uint r, uint t) and the index was not - 1.. correct for this */ if (r == INVALID_VEHICLE) return NULL; + + if (!AddBlockIfNeeded(&_vehicle_pool, r)) + error("Vehicles: failed loading savegame: too many vehicles"); return GetVehicle(r); } default: |