OpenTTD Source 20260206-master-g4d4e37dbf1
OrderBackup Struct Reference

Data for backing up an order of a vehicle so it can be restored after a vehicle is rebuilt in the same depot. More...

#include <order_backup.h>

Inheritance diagram for OrderBackup:
BaseConsist

Static Public Member Functions

static void Backup (const Vehicle *v, uint32_t user)
 Create an order backup for the given vehicle.
static void Restore (Vehicle *v, uint32_t user)
 Restore the data of this order to the given vehicle.
static void ResetOfUser (TileIndex tile, uint32_t user)
 Reset an OrderBackup given a tile and user.
static void ResetUser (uint32_t user)
 Reset an user's OrderBackup if needed.
static void Reset (TileIndex tile=INVALID_TILE, bool from_gui=true)
 Reset the OrderBackups from GUI/game logic.
static void ClearGroup (GroupID group)
 Clear the group of all backups having this group ID.
static void ClearVehicle (const Vehicle *v)
 Clear/update the (clone) vehicle from an order backup.
static void RemoveOrder (OrderType type, DestinationID destination, bool hangar)
 Removes an order from all vehicles.

Private Member Functions

void DoRestore (Vehicle *v)
 Restore the data of this order to the given vehicle.
 OrderBackup (OrderBackupID index)
 Create an order backup for savegame loading.
 OrderBackup (OrderBackupID index, const Vehicle *v, uint32_t user)
 Create an order backup for the given vehicle.

Private Attributes

uint32_t user = 0
 The user that requested the backup.
TileIndex tile = INVALID_TILE
 Tile of the depot where the order was changed.
GroupID group = GroupID::Invalid()
 The group the vehicle was part of.
const Vehicleclone = nullptr
 Vehicle this vehicle was a clone of.
std::vector< Orderorders
 The actual orders if the vehicle was not a clone.
uint32_t old_order_index = 0
friend OrderBackupPoolItem
 Loading of order backups.

Friends

struct BKORChunkHandler
 Creating empty orders upon savegame loading.
template<typename T>
class SlOrders
SaveLoadTable GetOrderBackupDescription ()
 Saving and loading of order backups.

Additional Inherited Members

Public Member Functions inherited from BaseConsist
void CopyConsistPropertiesFrom (const BaseConsist *src)
 Copy properties of other BaseConsist.
void ResetDepotUnbunching ()
 Resets all the data used for depot unbunching.
Data Fields inherited from BaseConsist
std::string name {}
 Name of vehicle.
TimerGameTick::Ticks current_order_time {}
 How many ticks have passed since this order started.
TimerGameTick::Ticks lateness_counter {}
 How many ticks late (or early if negative) this vehicle is.
TimerGameTick::TickCounter timetable_start {}
 At what tick of TimerGameTick::counter the vehicle should start its timetable.
TimerGameTick::TickCounter depot_unbunching_last_departure {}
 When the vehicle last left its unbunching depot.
TimerGameTick::TickCounter depot_unbunching_next_departure {}
 When the vehicle will next try to leave its unbunching depot.
TimerGameTick::Ticks round_trip_time
 How many ticks for a single circumnavigation of the orders.
uint16_t service_interval = 0
 The interval for (automatic) servicing; either in days or %.
VehicleOrderID cur_real_order_index = 0
 The index to the current real (non-implicit) order.
VehicleOrderID cur_implicit_order_index = 0
 The index to the current implicit order.
VehicleFlags vehicle_flags {}
 Used for gradual loading and other miscellaneous things (.

Detailed Description

Data for backing up an order of a vehicle so it can be restored after a vehicle is rebuilt in the same depot.

Definition at line 35 of file order_backup.h.

Constructor & Destructor Documentation

◆ OrderBackup() [1/2]

OrderBackup::OrderBackup ( OrderBackupID index)
private

Create an order backup for savegame loading.

Parameters
indexThe index of the order backup pool.

Definition at line 36 of file order_backup.cpp.

References _order_backup_pool.

Referenced by Backup(), ClearGroup(), ClearVehicle(), GetOrderBackupDescription, RemoveOrder(), Reset(), ResetOfUser(), ResetUser(), and Restore().

◆ OrderBackup() [2/2]

OrderBackup::OrderBackup ( OrderBackupID index,
const Vehicle * v,
uint32_t user )
private

Create an order backup for the given vehicle.

Parameters
indexThe index of the order backup pool.
vThe vehicle to make a backup of.
userThe user that is requesting the backup.

Definition at line 47 of file order_backup.cpp.

References _order_backup_pool, clone, BaseConsist::CopyConsistPropertiesFrom(), Vehicle::FirstShared(), group, Vehicle::IsOrderListShared(), Vehicle::NextShared(), orders, tile, and user.

Member Function Documentation

◆ Backup()

void OrderBackup::Backup ( const Vehicle * v,
uint32_t user )
static

Create an order backup for the given vehicle.

Parameters
vThe vehicle to make a backup of.
userThe user that is requesting the backup.
Note
Will automatically remove any previous backups of this user.

Definition at line 95 of file order_backup.cpp.

References OrderBackup(), and user.

Referenced by CmdSellRailWagon(), and CmdSellVehicle().

◆ ClearGroup()

void OrderBackup::ClearGroup ( GroupID group)
static

Clear the group of all backups having this group ID.

Parameters
groupThe group to clear.

Definition at line 207 of file order_backup.cpp.

References DEFAULT_GROUP, group, and OrderBackup().

Referenced by CmdDeleteGroup().

◆ ClearVehicle()

void OrderBackup::ClearVehicle ( const Vehicle * v)
static

Clear/update the (clone) vehicle from an order backup.

Parameters
vThe vehicle to clear.
Precondition
v != nullptr
Note
If it is not possible to set another vehicle as clone "example", then this backed up order will be removed.

Definition at line 221 of file order_backup.cpp.

References Vehicle::FirstShared(), Vehicle::NextShared(), and OrderBackup().

Referenced by Vehicle::PreDestructor().

◆ DoRestore()

void OrderBackup::DoRestore ( Vehicle * v)
private

◆ RemoveOrder()

void OrderBackup::RemoveOrder ( OrderType type,
DestinationID destination,
bool hangar )
static

Removes an order from all vehicles.

Triggers when, say, a station is removed.

Parameters
typeThe type of the order (OT_GOTO_[STATION|DEPOT|WAYPOINT]).
destinationThe destination. Can be a StationID, DepotID or WaypointID.
hangarOnly used for airports in the destination. When false, remove airport and hangar orders. When true, remove either airport or hangar order.

Definition at line 242 of file order_backup.cpp.

References Order::GetDepotActionType(), Order::GetDestination(), Order::GetType(), IsHangarTile(), NearestDepot, OrderBackup(), and BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test().

Referenced by RemoveOrderFromAllVehicles().

◆ Reset()

void OrderBackup::Reset ( TileIndex t = INVALID_TILE,
bool from_gui = true )
static

Reset the OrderBackups from GUI/game logic.

Parameters
tThe tile of the order backup.
from_guiWhether the call came from the GUI, i.e. whether it must be synced over the network.

Definition at line 176 of file order_backup.cpp.

References _network_own_client_id, _network_server, _networking, CLIENT_ID_SERVER, INVALID_TILE, OrderBackup(), and user.

Referenced by DepotWindow::Close(), RemoveAirport(), and Depot::~Depot().

◆ ResetOfUser()

void OrderBackup::ResetOfUser ( TileIndex tile,
uint32_t user )
static

Reset an OrderBackup given a tile and user.

Parameters
tileThe tile associated with the OrderBackup.
userThe user associated with the OrderBackup.
Note
Must not be used from the GUI!

Definition at line 129 of file order_backup.cpp.

References INVALID_TILE, OrderBackup(), tile, and user.

Referenced by CmdClearOrderBackup().

◆ ResetUser()

void OrderBackup::ResetUser ( uint32_t user)
static

Reset an user's OrderBackup if needed.

Parameters
userThe user associated with the OrderBackup.
Precondition
_network_server.
Note
Must not be used from a command.

Definition at line 157 of file order_backup.cpp.

References _network_server, OrderBackup(), and user.

Referenced by ServerNetworkGameSocketHandler::~ServerNetworkGameSocketHandler().

◆ Restore()

void OrderBackup::Restore ( Vehicle * v,
uint32_t user )
static

Restore the data of this order to the given vehicle.

Parameters
vThe vehicle to restore to.
userThe user that built the vehicle, thus wants to restore.
Note
After restoration the backup will automatically be removed.

Definition at line 113 of file order_backup.cpp.

References OrderBackup(), Vehicle::tile, and user.

Referenced by CmdBuildVehicle().

◆ BKORChunkHandler

friend struct BKORChunkHandler
friend

Creating empty orders upon savegame loading.

Definition at line 38 of file order_backup.h.

References BKORChunkHandler.

Referenced by BKORChunkHandler.

◆ GetOrderBackupDescription

◆ SlOrders

template<typename T>
friend class SlOrders
friend

Definition at line 40 of file order_backup.h.

Field Documentation

◆ clone

const Vehicle* OrderBackup::clone = nullptr
private

Vehicle this vehicle was a clone of.

Definition at line 46 of file order_backup.h.

Referenced by DoRestore(), GetOrderBackupDescription, and OrderBackup().

◆ group

GroupID OrderBackup::group = GroupID::Invalid()
private

The group the vehicle was part of.

Definition at line 44 of file order_backup.h.

Referenced by ClearGroup(), DoRestore(), GetOrderBackupDescription, and OrderBackup().

◆ old_order_index

uint32_t OrderBackup::old_order_index = 0
private

Definition at line 48 of file order_backup.h.

◆ OrderBackupPoolItem

friend OrderBackup::OrderBackupPoolItem
private

Loading of order backups.

Definition at line 52 of file order_backup.h.

◆ orders

std::vector<Order> OrderBackup::orders
private

The actual orders if the vehicle was not a clone.

Definition at line 47 of file order_backup.h.

Referenced by DoRestore(), and OrderBackup().

◆ tile

TileIndex OrderBackup::tile = INVALID_TILE
private

Tile of the depot where the order was changed.

Definition at line 43 of file order_backup.h.

Referenced by GetOrderBackupDescription, OrderBackup(), and ResetOfUser().

◆ user

uint32_t OrderBackup::user = 0
private

The user that requested the backup.

Definition at line 42 of file order_backup.h.

Referenced by Backup(), GetOrderBackupDescription, OrderBackup(), Reset(), ResetOfUser(), ResetUser(), and Restore().


The documentation for this struct was generated from the following files: