OpenTTD Source: OrderBackup Struct Reference

OpenTTD Source 13.1

Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends
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:

## Public Member Functions
| ~OrderBackup ()
| Free everything that is allocated.
Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_order_backup_pool >
void * | operator new (size_t size)
| Allocates space for new Titem. More...
void * | operator new (size_t size, size_t index)
| Allocates space for new Titem with given index. More...
void * | operator new (size_t size, void *ptr)
| Allocates space for new Titem at given memory address. More...
void | operator delete (void *p)
| Marks Titem as free. More...
Public Member Functions inherited from BaseConsist
void | CopyConsistPropertiesFrom (const BaseConsist *src)
| Copy properties of other BaseConsist. More...

## Static Public Member Functions
static void | Backup (const Vehicle *v, uint32 user)
| Create an order backup for the given vehicle. More...
static void | Restore (Vehicle *v, uint32 user)
| Restore the data of this order to the given vehicle. More...
static void | ResetOfUser (TileIndex tile, uint32 user)
| Reset an OrderBackup given a tile and user. More...
static void | ResetUser (uint32 user)
| Reset an user's OrderBackup if needed. More...
static void | Reset (TileIndex tile=INVALID_TILE, bool from_gui=true)
| Reset the OrderBackups from GUI/game logic. More...
static void | ClearGroup (GroupID group)
| Clear the group of all backups having this group ID. More...
static void | ClearVehicle (const Vehicle *v)
| Clear/update the (clone) vehicle from an order backup. More...
static void | RemoveOrder (OrderType type, DestinationID destination, bool hangar)
| Removes an order from all vehicles. More...
Static Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_order_backup_pool >
static bool | CanAllocateItem (size_t n=1)
| Helper functions so we can use PoolItem::Function() instead of _poolitem_pool.Function() More...
static bool | CleaningPool ()
| Returns current state of pool cleaning - yes or no. More...
static bool | IsValidID (size_t index)
| Tests whether given index can be used to get valid (non-nullptr) Titem. More...
static Titem * | Get (size_t index)
| Returns Titem with given index. More...
static Titem * | GetIfValid (size_t index)
| Returns Titem with given index. More...
static size_t | GetPoolSize ()
| Returns first unused index. More...
static size_t | GetNumItems ()
| Returns number of valid items in the pool. More...
static void | PostDestructor (size_t index)
| Dummy function called after destructor of each member. More...
static Pool::IterateWrapper< Titem > | Iterate (size_t from=0)
| Returns an iterable ensemble of all valid Titem. More...

## Private Member Functions
| OrderBackup ()
| Creation for savegame restoration.
| OrderBackup (const Vehicle *v, uint32 user)
| Create an order backup for the given vehicle. More...
void | DoRestore (Vehicle *v)
| Restore the data of this order to the given vehicle. More...

## Private Attributes
uint32 | user
| The user that requested the backup.
TileIndex | tile
| Tile of the depot where the order was changed.
GroupID | group
| The group the vehicle was part of.
const Vehicle * | clone
| Vehicle this vehicle was a clone of.
Order * | orders
| The actual orders if the vehicle was not a clone.

## Friends
struct | BKORChunkHandler
| Creating empty orders upon savegame loading.
SaveLoadTable | GetOrderBackupDescription ()
| Saving and loading of order backups.

## Additional Inherited Members
Public Types inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_order_backup_pool >
typedef struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > | Pool
| Type of the pool this item is going to be part of.
Data Fields inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_order_backup_pool >
Tindex | index
| Index of this pool item.
Data Fields inherited from BaseConsist
std::string | name
| Name of vehicle.
uint32 | current_order_time
| How many ticks have passed since this order started.
int32 | lateness_counter
| How many ticks late (or early if negative) this vehicle is.
Date | timetable_start
| When the vehicle is supposed to start the timetable.
uint16 | service_interval
| The interval for (automatic) servicing; either in days or %.
VehicleOrderID | cur_real_order_index
| The index to the current real (non-implicit) order.
VehicleOrderID | cur_implicit_order_index
| The index to the current implicit order.
uint16 | vehicle_flags
| Used for gradual loading and other miscellaneous things (. More...

## 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 36 of file order_backup.h.

## Constructor & Destructor Documentation

## ◆ OrderBackup()

OrderBackup::OrderBackup | ( | const Vehicle * | v,
|  | uint32 | user
| ) |  |
| private

Create an order backup for the given vehicle.

Parameters

  v | The vehicle to make a backup of.
  user | The user that is requesting the backup.

Definition at line 45 of file order_backup.cpp.

References Order::AssignOrder(), clone, BaseConsist::CopyConsistPropertiesFrom(), Vehicle::FirstShared(), group, Vehicle::group_id, Vehicle::IsOrderListShared(), Order::next, Vehicle::NextShared(), orders, Vehicle::Orders(), tile, Vehicle::tile, and user.

## Member Function Documentation

## ◆ Backup()

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

Create an order backup for the given vehicle.

Parameters

  v | The vehicle to make a backup of.
  user | The user that is requesting the backup.

Note
  Will automatically remove any previous backups of this user.

Definition at line 102 of file order_backup.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_order_backup_pool >::CanAllocateItem(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_order_backup_pool >::Iterate(), 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

  group | The group to clear.

Definition at line 214 of file order_backup.cpp.

References DEFAULT_GROUP, group, and Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_order_backup_pool >::Iterate().

Referenced by CmdDeleteGroup().

## ◆ ClearVehicle()

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

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

Parameters

  v | The 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 228 of file order_backup.cpp.

References Vehicle::FirstShared(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_order_backup_pool >::Iterate(), and Vehicle::NextShared().

## ◆ DoRestore()

void OrderBackup::DoRestore | ( | Vehicle * | v | ) |
| private

Restore the data of this order to the given vehicle.

Parameters

  v | The vehicle to restore to.

Definition at line 74 of file order_backup.cpp.

References clone, and DC_EXEC.

## ◆ 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

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

Definition at line 249 of file order_backup.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_order_backup_pool >::Iterate(), and Order::next.

## ◆ Reset()

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

Reset the OrderBackups from GUI/game logic.

Parameters

  t | The tile of the order backup.
  from_gui | Whether the call came from the GUI, i.e. whether it must be synced over the network.

Definition at line 183 of file order_backup.cpp.

References _network_own_client_id, _network_server, _networking, CLIENT_ID_SERVER, INVALID_TILE, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_order_backup_pool >::Iterate(), and user.

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

## ◆ ResetOfUser()

void OrderBackup::ResetOfUser | ( | TileIndex | tile,
|  | uint32 | user
| ) |  |
| static

Reset an OrderBackup given a tile and user.

Parameters

  tile | The tile associated with the OrderBackup.
  user | The user associated with the OrderBackup.

Note
  Must not be used from the GUI!

Definition at line 136 of file order_backup.cpp.

References INVALID_TILE, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_order_backup_pool >::Iterate(), tile, and user.

Referenced by CmdClearOrderBackup().

## ◆ ResetUser()

void OrderBackup::ResetUser | ( | uint32 | user | ) |
| static

Reset an user's OrderBackup if needed.

Parameters

  user | The user associated with the OrderBackup.

Precondition
  _network_server.

Note
  Must not be used from a command.

Definition at line 164 of file order_backup.cpp.

References _network_server, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_order_backup_pool >::Iterate(), and user.

Referenced by ServerNetworkGameSocketHandler::~ServerNetworkGameSocketHandler().

## ◆ Restore()

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

Restore the data of this order to the given vehicle.

Parameters

  v | The vehicle to restore to.
  user | The user that built the vehicle, thus wants to restore.

Note
  After restoration the backup will automatically be removed.

Definition at line 120 of file order_backup.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_order_backup_pool >::Iterate(), Vehicle::tile, and user.

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

- src/order_backup.h
- src/order_backup.cpp