Add support for loading trunk savegames versions 293 - 299 (12.0)

Use modified upstream saveload implementation for these versions
Re-arrange headers to support multiple saveload implementations
This commit is contained in:
Jonathan G Rennison
2021-11-01 18:33:39 +00:00
parent c6f0559ad4
commit d1f1a6942a
88 changed files with 11154 additions and 511 deletions

View File

@@ -18,7 +18,7 @@
#include "vehicle_type.h"
#include "company_type.h"
#include "core/multimap.hpp"
#include "saveload/saveload.h"
#include "saveload/saveload_common.h"
#include <deque>
/** Unique identifier for a single cargo packet. */
@@ -36,6 +36,12 @@ template <class Tinst, class Tcont> class CargoList;
class StationCargoList; // forward-declare, so we can use it in VehicleCargoList.
extern SaveLoadTable GetCargoPacketDesc();
namespace upstream_sl {
extern upstream_sl::SaveLoadTable GetCargoPacketDesc();
class SlVehicleCommon;
class SlStationGoods;
}
typedef uint32 TileOrStationID;
void ClearCargoPacketDeferredPayments();
@@ -70,6 +76,7 @@ private:
friend class StationCargoList;
/** We want this to be saved, right? */
friend SaveLoadTable GetCargoPacketDesc();
friend upstream_sl::SaveLoadTable upstream_sl::GetCargoPacketDesc();
friend void Load_CPDP();
public:
/** Maximum number of items in a single cargo packet. */
@@ -340,6 +347,7 @@ protected:
public:
/** The station cargo list needs to control the unloading. */
friend class StationCargoList;
friend upstream_sl::SlVehicleCommon;
/** The super class ought to know what it's doing. */
friend class CargoList<VehicleCargoList, CargoPacketList>;
/** The vehicles have a cargo list (and we want that saved). */
@@ -495,6 +503,7 @@ public:
friend class CargoList<StationCargoList, StationCargoPacketMap>;
/** The stations, via GoodsEntry, have a CargoList. */
friend SaveLoadTable GetGoodsDesc();
friend upstream_sl::SlStationGoods;
friend class CargoLoad;
friend class CargoTransfer;