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

@@ -17,7 +17,7 @@
#include "../station_base.h"
#include "../cargotype.h"
#include "../date_func.h"
#include "../saveload/saveload.h"
#include "../saveload/saveload_common.h"
#include "linkgraph_type.h"
#include <utility>
@@ -31,6 +31,13 @@ typedef Pool<LinkGraph, LinkGraphID, 32, 0xFFFF> LinkGraphPool;
/** The actual pool with link graphs. */
extern LinkGraphPool _link_graph_pool;
namespace upstream_sl {
SaveLoadTable GetLinkGraphDesc();
SaveLoadTable GetLinkGraphJobDesc();
class SlLinkgraphNode;
class SlLinkgraphEdge;
}
/**
* A connected component of a link graph. Contains a complete set of stations
* connected by links as nodes and edges. Each component also holds a copy of
@@ -536,6 +543,11 @@ protected:
friend void Save_LinkGraph(LinkGraph &lg);
friend void Load_LinkGraph(LinkGraph &lg);
friend upstream_sl::SaveLoadTable upstream_sl::GetLinkGraphDesc();
friend upstream_sl::SaveLoadTable upstream_sl::GetLinkGraphJobDesc();
friend upstream_sl::SlLinkgraphNode;
friend upstream_sl::SlLinkgraphEdge;
CargoID cargo; ///< Cargo of this component's link graph.
Date last_compression; ///< Last time the capacities and supplies were compressed.
NodeVector nodes; ///< Nodes in the component.