summaryrefslogtreecommitdiff
path: root/src/vehicle.h
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-09-07 22:06:52 +0000
committerrubidium <rubidium@openttd.org>2007-09-07 22:06:52 +0000
commit4eef590b15af2611865a96bb6fee0916304bb452 (patch)
treeeadc6175d828f1bdb705e6081db525c8475a4b1d /src/vehicle.h
parentc25655d4aef70413a9cdb3619338b2b6356307dd (diff)
downloadopenttd-4eef590b15af2611865a96bb6fee0916304bb452.tar.xz
(svn r11057) -Fix [FS#1215]: loading TTD savegames went into an infinite loop due to not yet properly set next and previous pointers.
Diffstat (limited to 'src/vehicle.h')
-rw-r--r--src/vehicle.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/vehicle.h b/src/vehicle.h
index 1526c5c9f..c9a805593 100644
--- a/src/vehicle.h
+++ b/src/vehicle.h
@@ -218,9 +218,12 @@ struct VehicleShip {
struct Vehicle;
DECLARE_OLD_POOL(Vehicle, Vehicle, 9, 125)
+/* Some declarations of functions, so we can make them friendly */
struct SaveLoad;
-const SaveLoad *GetVehicleDescription(VehicleType vt);
-void AfterLoadVehicles();
+extern const SaveLoad *GetVehicleDescription(VehicleType vt);
+extern void AfterLoadVehicles();
+struct LoadgameState;
+extern bool LoadOldVehicle(LoadgameState *ls, int num);
struct Vehicle : PoolItem<Vehicle, VehicleID, &_Vehicle_pool> {
VehicleTypeByte type; ///< Type of vehicle
@@ -232,7 +235,8 @@ private:
Vehicle *first; // NOSAVE: pointer to the first vehicle in the chain
public:
friend const SaveLoad *GetVehicleDescription(VehicleType vt); // So we can use private/protected variables in the saveload code
- friend void AfterLoadVehicles();
+ friend void AfterLoadVehicles(); // So we can set the previous and first pointers while loading
+ friend bool LoadOldVehicle(LoadgameState *ls, int num); // So we can set the proper next pointer while loading
Vehicle *depot_list; // NOSAVE: linked list to tell what vehicles entered a depot during the last tick. Used by autoreplace