OpenTTD Source 20241224-master-gf74b0cf984
waypoint_sl.cpp File Reference

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

#include "../stdafx.h"
#include "../waypoint_base.h"
#include "../debug.h"
#include "../newgrf_station.h"
#include "../vehicle_base.h"
#include "../town.h"
#include "../newgrf.h"
#include "../timer/timer_game_calendar.h"
#include "table/strings.h"
#include "saveload_internal.h"
#include "../safeguards.h"

Go to the source code of this file.

Data Structures

struct  OldWaypoint
 Helper structure to convert from the old waypoint system. More...
 
struct  CHKPChunkHandler
 

Functions

static void UpdateWaypointOrder (Order *o)
 Update the waypoint orders to get the new waypoint ID.
 
void MoveWaypointsToBaseStations ()
 Perform all steps to upgrade from the old waypoints to the new version that uses station.
 
void ResetOldWaypoints ()
 
const ChunkHandlerTable _waypoint_chunk_handlers (waypoint_chunk_handlers)
 

Variables

static std::vector< OldWaypoint_old_waypoints
 Temporary array with old waypoints.
 
static const SaveLoad _old_waypoint_desc []
 
static const CHKPChunkHandler CHKP
 
static const ChunkHandlerRef waypoint_chunk_handlers []
 

Detailed Description

Code handling saving and loading of waypoints.

Definition in file waypoint_sl.cpp.

Function Documentation

◆ MoveWaypointsToBaseStations()

void MoveWaypointsToBaseStations ( )

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

This includes some old saveload mechanics.

Definition at line 67 of file waypoint_sl.cpp.

References _old_waypoints, AllocateSpecToStation(), BaseStation::build_date, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_station_pool >::CanAllocateItem(), Debug, BaseStation::delete_ctr, FACIL_TRAIN, BaseStation::facilities, GB(), NewGRFClass< Tspec, Tindex, Tmax >::Get(), GetRailTileType(), GetRailType(), NewGRFClass< Tspec, Tindex, Tmax >::GetSpec(), GetTileOwner(), StationSpec::grf_prop, GRFFilePropsBase< Tcnt >::grfid, HasBit(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, INVALID_TILE, IsSavegameVersionBefore(), IsTileType(), Map::Iterate(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::Iterate(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_orderlist_pool >::Iterate(), GRFFilePropsBase< Tcnt >::local_id, Tile::m2(), Tile::m3(), Tile::m4(), Tile::m5(), MakeRailWaypoint(), MP_RAILWAY, BaseStation::name, Order::next, BaseStation::owner, BaseStation::rect, SetCustomStationSpecIndex(), SetRailStationReservation(), SlError(), SlErrorCorrupt(), SLV_100, SLV_17, NewGRFClass< Tspec, Tindex, Tmax >::Specs(), STAT_CLASS_WAYP, BaseStation::string_id, BaseStation::town, Waypoint::town_cn, UpdateWaypointOrder(), and VEH_TRAIN.

Referenced by AfterLoadGame().

◆ ResetOldWaypoints()

void ResetOldWaypoints ( )

Definition at line 161 of file waypoint_sl.cpp.

◆ UpdateWaypointOrder()

static void UpdateWaypointOrder ( Order o)
static

Update the waypoint orders to get the new waypoint ID.

Parameters
othe order 'list' to check.

Definition at line 51 of file waypoint_sl.cpp.

References _old_waypoints, Order::GetDestination(), Order::IsType(), and Order::SetDestination().

Referenced by MoveWaypointsToBaseStations().

Variable Documentation

◆ _old_waypoint_desc

const SaveLoad _old_waypoint_desc[]
static
Initial value:
= {
SLE_CONDVAR(OldWaypoint, xy, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
SLE_CONDVAR(OldWaypoint, town_index, SLE_UINT16, SLV_12, SLV_122),
SLE_CONDVAR(OldWaypoint, town_cn, SLE_FILE_U8 | SLE_VAR_U16, SLV_12, SLV_89),
SLE_CONDVAR(OldWaypoint, town_cn, SLE_UINT16, SLV_89, SL_MAX_VERSION),
SLE_CONDVAR(OldWaypoint, string_id, SLE_STRINGID, SL_MIN_VERSION, SLV_84),
SLE_VAR(OldWaypoint, delete_ctr, SLE_UINT8),
SLE_CONDVAR(OldWaypoint, build_date, SLE_FILE_U16 | SLE_VAR_I32, SLV_3, SLV_31),
SLE_CONDVAR(OldWaypoint, build_date, SLE_INT32, SLV_31, SL_MAX_VERSION),
SLE_CONDVAR(OldWaypoint, localidx, SLE_UINT8, SLV_3, SL_MAX_VERSION),
}
#define SLE_CONDSSTR(base, variable, type, from, to)
Storage of a std::string in some savegame versions.
Definition saveload.h:933
#define SLE_CONDVAR(base, variable, type, from, to)
Storage of a variable in some savegame versions.
Definition saveload.h:868
@ SLV_89
89 12160
Definition saveload.h:149
@ SLV_84
84 11822
Definition saveload.h:143
@ SLV_17
17.0 3212 17.1 3218
Definition saveload.h:62
@ SLV_6
6.0 1721 6.1 1768
Definition saveload.h:46
@ SLV_122
122 16855
Definition saveload.h:189
@ SLV_12
12.1 2046
Definition saveload.h:55
@ SL_MAX_VERSION
Highest possible saveload version.
Definition saveload.h:399
@ SL_MIN_VERSION
First savegame version.
Definition saveload.h:31
@ SLV_3
3.x lost
Definition saveload.h:36
@ SLV_101
101 14233
Definition saveload.h:164
@ SLV_31
31 5999
Definition saveload.h:80
#define SLE_CONDREF(base, variable, type, from, to)
Storage of a reference in some savegame versions.
Definition saveload.h:889
@ REF_TOWN
Load/save a reference to a town.
Definition saveload.h:604
#define SLE_VAR(base, variable, type)
Storage of a variable in every version of a savegame.
Definition saveload.h:1002
Helper structure to convert from the old waypoint system.

Definition at line 167 of file waypoint_sl.cpp.

◆ _old_waypoints

std::vector<OldWaypoint> _old_waypoints
static

Temporary array with old waypoints.

Definition at line 45 of file waypoint_sl.cpp.

Referenced by CHKPChunkHandler::FixPointers(), CHKPChunkHandler::Load(), MoveWaypointsToBaseStations(), and UpdateWaypointOrder().

◆ CHKP

const CHKPChunkHandler CHKP
static

Definition at line 231 of file waypoint_sl.cpp.

◆ waypoint_chunk_handlers

const ChunkHandlerRef waypoint_chunk_handlers[]
static
Initial value:
= {
CHKP,
}

Definition at line 232 of file waypoint_sl.cpp.