OpenTTD
station_sl.cpp File Reference

Code handling saving and loading of stations. More...

#include "../stdafx.h"
#include "../station_base.h"
#include "../waypoint_base.h"
#include "../roadstop_base.h"
#include "../vehicle_base.h"
#include "../newgrf_station.h"
#include "saveload.h"
#include "table/strings.h"
#include "../safeguards.h"

Go to the source code of this file.

Data Structures

struct  FlowSaveLoad
 

Typedefs

typedef std::pair< const StationID, std::list< CargoPacket * > > StationCargoPair
 

Functions

static void UpdateWaypointOrder (Order *o)
 Update the buoy orders to be waypoint orders. More...
 
void MoveBuoysToWaypoints ()
 Perform all steps to upgrade from the old station buoys to the new version that uses waypoints. More...
 
void AfterLoadStations ()
 
void AfterLoadRoadStops ()
 (Re)building of road stop caches after loading a savegame.
 
const SaveLoadGetGoodsDesc ()
 Wrapper function to get the GoodsEntry's internal structure while some of the variables itself are private. More...
 
static void SwapPackets (GoodsEntry *ge)
 Swap the temporary packets with the packets without specific destination in the given goods entry. More...
 
static void Load_STNS ()
 
static void Ptrs_STNS ()
 
const SaveLoadGetBaseStationDescription ()
 Get the base station description to be used for SL_ST_INCLUDE. More...
 
static void RealSave_STNN (BaseStation *bst)
 
static void Save_STNN ()
 
static void Load_STNN ()
 
static void Ptrs_STNN ()
 
static void Save_ROADSTOP ()
 
static void Load_ROADSTOP ()
 
static void Ptrs_ROADSTOP ()
 

Variables

static const SaveLoad _roadstop_desc []
 
static const SaveLoad _old_station_desc []
 
static uint16 _waiting_acceptance
 
static uint32 _num_flows
 
static uint16 _cargo_source
 
static uint32 _cargo_source_xy
 
static uint8 _cargo_days
 
static Money _cargo_feeder_share
 
static const SaveLoad _station_speclist_desc []
 
std::list< CargoPacket * > _packets
 
uint32 _num_dests
 
static const SaveLoad _flow_desc []
 
static const SaveLoad _cargo_list_desc []
 
static const SaveLoad _base_station_desc []
 
static OldPersistentStorage _old_st_persistent_storage
 
static const SaveLoad _station_desc []
 
static const SaveLoad _waypoint_desc []
 
const ChunkHandler _station_chunk_handlers []
 

Detailed Description

Code handling saving and loading of stations.

Definition in file station_sl.cpp.

Function Documentation

◆ GetBaseStationDescription()

const SaveLoad* GetBaseStationDescription ( )

Get the base station description to be used for SL_ST_INCLUDE.

Returns
the base station description.

Definition at line 467 of file station_sl.cpp.

◆ GetGoodsDesc()

const SaveLoad* GetGoodsDesc ( )

Wrapper function to get the GoodsEntry's internal structure while some of the variables itself are private.

The stations, via GoodsEntry, have a CargoList.

Returns
the saveload description for GoodsEntry.

Definition at line 266 of file station_sl.cpp.

References SLEG_CONDVAR.

◆ MoveBuoysToWaypoints()

void MoveBuoysToWaypoints ( )

Perform all steps to upgrade from the old station buoys to the new version that uses waypoints.

This includes some old saveload mechanics.

Definition at line 42 of file station_sl.cpp.

◆ SwapPackets()

static void SwapPackets ( GoodsEntry ge)
static

Swap the temporary packets with the packets without specific destination in the given goods entry.

Assert that at least one of those is empty.

Parameters
geGoods entry to swap with.

Definition at line 309 of file station_sl.cpp.

References GoodsEntry::cargo, and CargoList< Tinst, Tcont >::Packets().

◆ UpdateWaypointOrder()

static void UpdateWaypointOrder ( Order o)
static

Update the buoy orders to be waypoint orders.

Parameters
othe order 'list' to check.

Definition at line 28 of file station_sl.cpp.

References Order::IsType().

Variable Documentation

◆ _base_station_desc

const SaveLoad _base_station_desc[]
static
Initial value:
= {
SLE_VAR(BaseStation, xy, SLE_UINT32),
SLE_VAR(BaseStation, string_id, SLE_STRINGID),
SLE_VAR(BaseStation, delete_ctr, SLE_UINT8),
SLE_VAR(BaseStation, owner, SLE_UINT8),
SLE_VAR(BaseStation, facilities, SLE_UINT8),
SLE_VAR(BaseStation, build_date, SLE_INT32),
SLE_VAR(BaseStation, random_bits, SLE_UINT16),
SLE_VAR(BaseStation, waiting_triggers, SLE_UINT8),
SLE_VAR(BaseStation, num_specs, SLE_UINT8),
}
#define SLE_REF(base, variable, type)
Storage of a reference in every version of a savegame.
Definition: saveload.h:592
Load/save a reference to a town.
Definition: saveload.h:364
allow control codes in the strings
Definition: saveload.h:461
Owner owner
The owner of the content shown in this window. Company colour is acquired from this variable...
Definition: window_gui.h:326
#define SLE_VAR(base, variable, type)
Storage of a variable in every version of a savegame.
Definition: saveload.h:584
#define SLE_STR(base, variable, type, length)
Storage of a string in every savegame version.
Definition: saveload.h:610
Base class for all station-ish types.

Definition at line 396 of file station_sl.cpp.

◆ _cargo_list_desc

const SaveLoad _cargo_list_desc[]
static
Initial value:
= {
SLE_VAR(StationCargoPair, first, SLE_UINT16),
SLE_LST(StationCargoPair, second, REF_CARGO_PACKET),
}
#define SLE_LST(base, variable, type)
Storage of a list in every savegame version.
Definition: saveload.h:618
Load/save a reference to a cargo packet.
Definition: saveload.h:368
#define SLE_VAR(base, variable, type)
Storage of a variable in every version of a savegame.
Definition: saveload.h:584

Definition at line 298 of file station_sl.cpp.

◆ _flow_desc

const SaveLoad _flow_desc[]
static
Initial value:
= {
SLE_VAR(FlowSaveLoad, source, SLE_UINT16),
SLE_VAR(FlowSaveLoad, via, SLE_UINT16),
SLE_VAR(FlowSaveLoad, share, SLE_UINT32),
SLE_CONDVAR(FlowSaveLoad, restricted, SLE_BOOL, SLV_187, SL_MAX_VERSION),
}
#define SLE_CONDVAR(base, variable, type, from, to)
Storage of a variable in some savegame versions.
Definition: saveload.h:524
Highest possible saveload version.
Definition: saveload.h:295
#define SLE_VAR(base, variable, type)
Storage of a variable in every version of a savegame.
Definition: saveload.h:584
187 25899 Linkgraph - restricted flows
Definition: saveload.h:268

Definition at line 253 of file station_sl.cpp.

◆ _roadstop_desc

const SaveLoad _roadstop_desc[]
static
Initial value:
= {
SLE_VAR(RoadStop, xy, SLE_UINT32),
SLE_VAR(RoadStop, status, SLE_UINT8),
}
#define SLE_CONDNULL(length, from, to)
Empty space in some savegame versions.
Definition: saveload.h:632
26 4466
Definition: saveload.h:75
#define SLE_REF(base, variable, type)
Storage of a reference in every version of a savegame.
Definition: saveload.h:592
25 4259
Definition: saveload.h:74
Load/save a reference to a bus/truck stop.
Definition: saveload.h:366
First savegame version.
Definition: saveload.h:32
9.0 1909
Definition: saveload.h:51
A Stop for a Road Vehicle.
Definition: roadstop_base.h:24
#define SLE_VAR(base, variable, type)
Storage of a variable in every version of a savegame.
Definition: saveload.h:584
45 8501
Definition: saveload.h:98

Definition at line 151 of file station_sl.cpp.

◆ _station_chunk_handlers

const ChunkHandler _station_chunk_handlers[]
Initial value:
= {
{ 'STNS', NULL, Load_STNS, Ptrs_STNS, NULL, CH_ARRAY },
{ 'STNN', Save_STNN, Load_STNN, Ptrs_STNN, NULL, CH_ARRAY },
{ 'ROAD', Save_ROADSTOP, Load_ROADSTOP, Ptrs_ROADSTOP, NULL, CH_ARRAY | CH_LAST},
}
Last chunk in this array.
Definition: saveload.h:381

◆ _station_speclist_desc

const SaveLoad _station_speclist_desc[]
static
Initial value:
= {
}
#define SLE_CONDVAR(base, variable, type, from, to)
Storage of a variable in some savegame versions.
Definition: saveload.h:524
Highest possible saveload version.
Definition: saveload.h:295
27 4757
Definition: saveload.h:76

Definition at line 235 of file station_sl.cpp.

◆ _waypoint_desc

const SaveLoad _waypoint_desc[]
static
Initial value:
= {
SLE_WRITEBYTE(Waypoint, facilities),
SLE_ST_INCLUDE(),
SLE_VAR(Waypoint, town_cn, SLE_UINT16),
SLE_CONDVAR(Waypoint, train_station.tile, SLE_UINT32, SLV_124, SL_MAX_VERSION),
SLE_CONDVAR(Waypoint, train_station.w, SLE_FILE_U8 | SLE_VAR_U16, SLV_124, SL_MAX_VERSION),
SLE_CONDVAR(Waypoint, train_station.h, SLE_FILE_U8 | SLE_VAR_U16, SLV_124, SL_MAX_VERSION),
}
Representation of a waypoint.
Definition: waypoint_base.h:18
#define SLE_CONDVAR(base, variable, type, from, to)
Storage of a variable in some savegame versions.
Definition: saveload.h:524
Highest possible saveload version.
Definition: saveload.h:295
#define SLE_WRITEBYTE(base, variable)
Translate values ingame to different values in the savegame and vv.
Definition: saveload.h:635
124 16993
Definition: saveload.h:192
#define SLE_VAR(base, variable, type)
Storage of a variable in every version of a savegame.
Definition: saveload.h:584

Definition at line 450 of file station_sl.cpp.