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"
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. | |
void | MoveBuoysToWaypoints () |
Perform all steps to upgrade from the old station buoys to the new version that uses waypoints. | |
void | AfterLoadStations () |
void | AfterLoadRoadStops () |
(Re)building of road stop caches after loading a savegame. | |
const SaveLoad * | GetLinkStatDesc () |
Wrapper function to get the LinkStat's internal structure while some of the variables are private. | |
const SaveLoad * | GetGoodsDesc () |
Wrapper function to get the GoodsEntry's internal structure while some of the variables itself are private. | |
static void | SwapPackets (GoodsEntry *ge) |
Swap the temporary packets with the packets without specific destination in the given goods entry. | |
static void | Load_STNS () |
static void | Ptrs_STNS () |
const SaveLoad * | GetBaseStationDescription () |
Get the base station description to be used for SL_ST_INCLUDE. | |
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 uint16 | _num_links |
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 [] |
static StationID | _station_id |
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 [] |
Code handling saving and loading of stations.
Definition in file station_sl.cpp.
const SaveLoad* GetBaseStationDescription | ( | ) |
Get the base station description to be used for SL_ST_INCLUDE.
Definition at line 480 of file station_sl.cpp.
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.
Definition at line 284 of file station_sl.cpp.
References REF_CARGO_PACKET, SL_MAX_VERSION, SLE_CONDNULL, SLE_CONDVAR, SLE_END, SLE_VAR, SLEG_CONDLST, and SLEG_CONDVAR.
const SaveLoad* GetLinkStatDesc | ( | ) |
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 40 of file station_sl.cpp.
References _m, BaseStation::build_date, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_station_pool >::CanAllocateItem(), Vehicle::current_order, BaseStation::delete_ctr, BaseStation::facilities, FOR_ALL_VEHICLES, OrderList::GetFirstOrder(), OrderList::GetFirstSharedVehicle(), GetStationIndex(), GetTileOwner(), HVOT_WAYPOINT, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, INVALID_TILE, IsBuoyTile(), IsInsideBS(), IsTileType(), MP_STATION, BaseStation::name, Order::next, BaseStation::owner, BaseStation::rect, SB(), BaseStation::string_id, TileArea::tile, TILE_AREA_LOOP, BaseStation::town, Waypoint::town_cn, BaseStation::train_station, BaseVehicle::type, UpdateWaypointOrder(), VEH_SHIP, VEH_TRAIN, and BaseStation::xy.
Referenced by AfterLoadGame().
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.
ge | Goods entry to swap with. |
Definition at line 328 of file station_sl.cpp.
References GoodsEntry::cargo, and CargoList< Tinst, Tcont >::Packets().
static void UpdateWaypointOrder | ( | Order * | o | ) | [static] |
Update the buoy orders to be waypoint orders.
o | the order 'list' to check. |
Definition at line 26 of file station_sl.cpp.
References SpecializedStation< Station, false >::Get(), Order::GetDestination(), HVOT_WAYPOINT, Order::IsType(), and Order::MakeGoToWaypoint().
Referenced by MoveBuoysToWaypoints().
const SaveLoad _base_station_desc[] [static] |
{ SLE_VAR(BaseStation, xy, SLE_UINT32), SLE_REF(BaseStation, town, REF_TOWN), SLE_VAR(BaseStation, string_id, SLE_STRINGID), SLE_STR(BaseStation, name, SLE_STR | SLF_ALLOW_CONTROL, 0), 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), }
Definition at line 410 of file station_sl.cpp.
const SaveLoad _cargo_list_desc[] [static] |
{ SLE_VAR(StationCargoPair, first, SLE_UINT16), SLE_LST(StationCargoPair, second, REF_CARGO_PACKET), }
Definition at line 317 of file station_sl.cpp.
const SaveLoad _flow_desc[] [static] |
{ SLE_CONDVAR(FlowSaveLoad, source, SLE_UINT16, SL_FLOWMAP, SL_MAX_VERSION), SLE_CONDVAR(FlowSaveLoad, via, SLE_UINT16, SL_FLOWMAP, SL_MAX_VERSION), SLE_CONDVAR(FlowSaveLoad, share, SLE_UINT32, SL_FLOWMAP, SL_MAX_VERSION), }
Definition at line 272 of file station_sl.cpp.
const SaveLoad _roadstop_desc[] [static] |
{ SLE_VAR(RoadStop, xy, SLE_UINT32), SLE_CONDNULL(1, 0, 44), SLE_VAR(RoadStop, status, SLE_UINT8), SLE_CONDNULL(4, 0, 8), SLE_CONDNULL(2, 0, 44), SLE_CONDNULL(1, 0, 25), SLE_REF(RoadStop, next, REF_ROADSTOPS), SLE_CONDNULL(2, 0, 44), SLE_CONDNULL(4, 0, 24), SLE_CONDNULL(1, 25, 25), }
Definition at line 149 of file station_sl.cpp.
const ChunkHandler _station_chunk_handlers[] |
{ { '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}, }
const SaveLoad _station_speclist_desc[] [static] |
{ SLE_CONDVAR(StationSpecList, grfid, SLE_UINT32, 27, SL_MAX_VERSION), SLE_CONDVAR(StationSpecList, localidx, SLE_UINT8, 27, SL_MAX_VERSION), }
Definition at line 234 of file station_sl.cpp.
const SaveLoad _waypoint_desc[] [static] |
{ SLE_WRITEBYTE(Waypoint, facilities, FACIL_WAYPOINT), SLE_ST_INCLUDE(), SLE_VAR(Waypoint, town_cn, SLE_UINT16), SLE_CONDVAR(Waypoint, train_station.tile, SLE_UINT32, 124, SL_MAX_VERSION), SLE_CONDVAR(Waypoint, train_station.w, SLE_FILE_U8 | SLE_VAR_U16, 124, SL_MAX_VERSION), SLE_CONDVAR(Waypoint, train_station.h, SLE_FILE_U8 | SLE_VAR_U16, 124, SL_MAX_VERSION), }
Definition at line 463 of file station_sl.cpp.