saveload.c
changeset 1279 4f83fbde72de
parent 1272 d3e09adb7736
child 1282 e7a73ee62d2f
--- a/saveload.c	Fri Feb 04 07:52:12 2005 +0000
+++ b/saveload.c	Fri Feb 04 13:23:29 2005 +0000
@@ -942,7 +942,11 @@
 
 	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 @@
 			    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: