diff --git a/src/oldloader.cpp b/src/oldloader.cpp index b43011cf49..e6227d9a4f 100644 --- a/src/oldloader.cpp +++ b/src/oldloader.cpp @@ -1175,7 +1175,7 @@ static const OldChunks vehicle_chunk[] = { OCL_END() }; -static bool LoadOldVehicle(LoadgameState *ls, int num) +bool LoadOldVehicle(LoadgameState *ls, int num) { uint i; @@ -1206,7 +1206,7 @@ static bool LoadOldVehicle(LoadgameState *ls, int num) default: v->spritenum >>= 1; break; } - if (_old_next_ptr != 0xFFFF) v->SetNext(GetVehicle(_old_next_ptr)); + if (_old_next_ptr != 0xFFFF) v->next = GetVehicle(_old_next_ptr); v->string_id = RemapOldStringID(_old_string_id); diff --git a/src/vehicle.h b/src/vehicle.h index 1526c5c9f2..c9a805593f 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 { 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