OpenTTD Source  20241121-master-g67a0fccfad
station_sl.cpp File Reference

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

#include "../stdafx.h"
#include "saveload.h"
#include "compat/station_sl_compat.h"
#include "../station_base.h"
#include "../waypoint_base.h"
#include "../roadstop_base.h"
#include "../vehicle_base.h"
#include "../newgrf_station.h"
#include "../newgrf_roadstop.h"
#include "../timer/timer_game_calendar.h"
#include "table/strings.h"
#include "../safeguards.h"

Go to the source code of this file.

Data Structures

struct  FlowSaveLoad
 
class  SlStationSpecList< T >
 
class  SlStationCargo
 
class  SlStationFlow
 
class  SlStationGoods
 
struct  STNSChunkHandler
 
class  SlRoadStopTileData
 
class  SlStationBase
 SaveLoad handler for the BaseStation, which all other stations / waypoints make use of. More...
 
class  SlStationNormal
 SaveLoad handler for a normal station (read: not a waypoint). More...
 
class  SlStationWaypoint
 
struct  STNNChunkHandler
 
struct  ROADChunkHandler
 

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.
 
static void SwapPackets (GoodsEntry *ge)
 Swap the temporary packets with the packets without specific destination in the given goods entry. More...
 
const ChunkHandlerTable _station_chunk_handlers (station_chunk_handlers)
 

Variables

static const SaveLoad _roadstop_desc []
 
static uint16_t _waiting_acceptance
 
static uint32_t _old_num_flows
 
static uint16_t _cargo_source
 
static uint32_t _cargo_source_xy
 
static uint8_t _cargo_periods
 
static Money _cargo_feeder_share
 
std::list< CargoPacket * > _packets
 
uint32_t _old_num_dests
 
static OldPersistentStorage _old_st_persistent_storage
 
static const SaveLoad _old_station_desc []
 
static const SaveLoad _station_desc []
 
static const STNSChunkHandler STNS
 
static const STNNChunkHandler STNN
 
static const ROADChunkHandler ROAD
 
static const ChunkHandlerRef station_chunk_handlers []
 

Detailed Description

Code handling saving and loading of stations.

Definition in file station_sl.cpp.

Function Documentation

◆ MoveBuoysToWaypoints()

◆ 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 186 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 31 of file station_sl.cpp.

References Order::IsType().

Referenced by MoveBuoysToWaypoints().

Variable Documentation

◆ _roadstop_desc

const SaveLoad _roadstop_desc[]
static
Initial value:
= {
SLE_VAR(RoadStop, xy, SLE_UINT32),
SLE_VAR(RoadStop, status, SLE_UINT8),
}
#define SLE_REF(base, variable, type)
Storage of a reference in every version of a savegame.
Definition: saveload.h:1004
@ REF_ROADSTOPS
Load/save a reference to a bus/truck stop.
Definition: saveload.h:604
#define SLE_VAR(base, variable, type)
Storage of a variable in every version of a savegame.
Definition: saveload.h:987
A Stop for a Road Vehicle.
Definition: roadstop_base.h:22

Definition at line 153 of file station_sl.cpp.

◆ _station_desc

const SaveLoad _station_desc[]
static
Initial value:
= {
SLE_SAVEBYTE(BaseStation, facilities),
}
SaveLoad handler for a normal station (read: not a waypoint).
Definition: station_sl.cpp:561
#define SLE_SAVEBYTE(base, variable)
Only write byte during saving; never read it during loading.
Definition: saveload.h:1060
#define SLEG_STRUCT(name, handler)
Storage of a structs in every savegame version.
Definition: saveload.h:1194
@ SL_MAX_VERSION
Highest possible saveload version.
Definition: saveload.h:397
@ SLV_NEWGRF_ROAD_STOPS
303 PR#10144 NewGRF road stops.
Definition: saveload.h:343
@ SLV_27
27 4757
Definition: saveload.h:75
@ SLV_ROAD_STOP_TILE_DATA
340 PR#12883 Move storage of road stop tile data, also save for road waypoints.
Definition: saveload.h:388
#define SLEG_CONDSTRUCTLIST(name, handler, from, to)
Storage of a list of structs in some savegame versions.
Definition: saveload.h:1155
Base class for all station-ish types.

Definition at line 655 of file station_sl.cpp.

◆ station_chunk_handlers

const ChunkHandlerRef station_chunk_handlers[]
static
Initial value:
= {
STNS,
STNN,
ROAD,
}

Definition at line 744 of file station_sl.cpp.