OpenTTD Source 20250206-master-g6089ed8059
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
 

Typedefs

using OldWaypointID = uint16_t
 

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.

Typedef Documentation

◆ OldWaypointID

using OldWaypointID = uint16_t

Definition at line 25 of 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 69 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 163 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 53 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),
}
@ REF_TOWN
Load/save a reference to a town.
Definition saveload.h:605
#define SLE_CONDSSTR(base, variable, type, from, to)
Storage of a std::string in some savegame versions.
Definition saveload.h:934
#define SLE_CONDVAR(base, variable, type, from, to)
Storage of a variable in some savegame versions.
Definition saveload.h:869
@ 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:400
@ 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:890
#define SLE_VAR(base, variable, type)
Storage of a variable in every version of a savegame.
Definition saveload.h:1003
Helper structure to convert from the old waypoint system.

Definition at line 169 of file waypoint_sl.cpp.

◆ _old_waypoints

std::vector<OldWaypoint> _old_waypoints
static

Temporary array with old waypoints.

Definition at line 47 of file waypoint_sl.cpp.

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

◆ CHKP

const CHKPChunkHandler CHKP
static

Definition at line 233 of file waypoint_sl.cpp.

◆ waypoint_chunk_handlers

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

Definition at line 234 of file waypoint_sl.cpp.