OpenTTD Source
12.0-beta2
|
Go to the documentation of this file.
28 if (CleaningPool())
return;
30 Order *o = this->orders;
31 while (o !=
nullptr) {
75 if (this->
clone !=
nullptr) {
105 if (ob->user ==
user)
delete ob;
121 if (v->
tile != ob->tile || ob->user !=
user)
continue;
170 if (ob->user !=
user)
continue;
193 if (ob->user !=
user)
continue;
230 assert(v !=
nullptr);
232 if (ob->clone == v) {
236 if (ob->clone ==
nullptr)
delete ob;
252 for (
Order *order = ob->orders; order !=
nullptr; order = order->
next) {
255 if (ot == OT_GOTO_DEPOT && hangar && !
IsHangarTile(ob->tile))
continue;
256 if (ot == OT_IMPLICIT || (
IsHangarTile(ob->tile) && ot == OT_GOTO_DEPOT && !hangar)) ot = OT_GOTO_STATION;
257 if (ot == type && order->GetDestination() == destination) {
VehicleOrderID cur_implicit_order_index
The index to the current implicit order.
uint32 TileIndex
The index/ID of a Tile.
CommandCost DoCommand(const CommandContainer *container, DoCommandFlag flags)
Shorthand for calling the long DoCommand with a container.
@ CMD_ADD_VEHICLE_GROUP
add a vehicle to a group
bool _network_server
network-server is active
Tindex index
Index of this pool item.
GroupID group_id
Index of group Pool array.
CommandCost CmdClearOrderBackup(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const std::string &text)
Clear an OrderBackup.
static void ResetOfUser(TileIndex tile, uint32 user)
Reset an OrderBackup given a tile and user.
void AssignOrder(const Order &other)
Assign data to an order (from another order) This function makes sure that the index is maintained co...
const Vehicle * clone
Vehicle this vehicle was a clone of.
static void ClearVehicle(const Vehicle *v)
Clear/update the (clone) vehicle from an order backup.
union Vehicle::@49 orders
The orders currently assigned to the vehicle.
OrderBackupPool _order_backup_pool("BackupOrder")
The pool with order backups.
@ CMD_CLEAR_ORDER_BACKUP
clear the order backup of a given user/tile
@ DC_EXEC
execute the given command
DoCommandFlag
List of flags for a command.
CommandCost DoCommandPInternal(TileIndex tile, uint32 p1, uint32 p2, uint32 cmd, CommandCallback *callback, const std::string &text, bool my_cmd, bool estimate_only)
void UpdateRealOrderIndex()
Skip implicit orders until cur_real_order_index is a non-implicit order.
IterateWrapper Orders() const
Returns an iterable ensemble of orders of a vehicle.
Common return value for all commands.
bool DoCommandP(const CommandContainer *container, bool my_cmd)
Shortcut for the long DoCommandP when having a container with the data.
TileIndex tile
Current tile index.
@ ODATFB_NEAREST_DEPOT
Send the vehicle to the nearest depot.
static void Restore(Vehicle *v, uint32 user)
Restore the data of this order to the given vehicle.
static const GroupID DEFAULT_GROUP
Ungrouped vehicles are in this group.
@ CLIENT_ID_SERVER
Servers always have this ID.
bool _networking
are we in networking mode?
bool IsOrderListShared() const
Check if we share our orders with another vehicle.
static void Reset(TileIndex tile=INVALID_TILE, bool from_gui=true)
Reset the OrderBackups from GUI/game logic.
uint32 user
The user that requested the backup.
ClientID _network_own_client_id
Our client identifier.
void DoRestore(Vehicle *v)
Restore the data of this order to the given vehicle.
OrderList * list
Pointer to the order list for this vehicle.
VehicleOrderID cur_real_order_index
The index to the current real (non-implicit) order.
Vehicle * FirstShared() const
Get the first vehicle of this vehicle chain.
static Pool::IterateWrapper< Titem > Iterate(size_t from=0)
Returns an iterable ensemble of all valid Titem.
Base class for all pools.
uint16 GroupID
Type for all group identifiers.
void InvalidateWindowClassesData(WindowClass cls, int data, bool gui_scope)
Mark window data of all windows of a given class as invalid (in need of re-computing) Note that by de...
Shared order list linking together the linked list of orders and the list of vehicles sharing this or...
Vehicle * NextShared() const
Get the next vehicle of the shared vehicle chain.
Order * orders
The actual orders if the vehicle was not a clone.
TileIndex tile
Tile of the depot where the order was changed.
static bool CanAllocateItem(size_t n=1)
Helper functions so we can use PoolItem::Function() instead of _poolitem_pool.Function()
static void ClearGroup(GroupID group)
Clear the group of all backups having this group ID.
static void RemoveOrder(OrderType type, DestinationID destination, bool hangar)
Removes an order from all vehicles.
#define INSTANTIATE_POOL_METHODS(name)
Force instantiation of pool methods so we don't get linker errors.
static void Backup(const Vehicle *v, uint32 user)
Create an order backup for the given vehicle.
static void ResetUser(uint32 user)
Reset an user's OrderBackup if needed.
static const TileIndex INVALID_TILE
The very nice invalid tile marker.
GroupID group
The group the vehicle was part of.
OrderBackup()
Creation for savegame restoration.
Data for backing up an order of a vehicle so it can be restored after a vehicle is rebuilt in the sam...
VehicleOrderID GetNumOrders() const
Get the number of orders this vehicle has.
void CopyConsistPropertiesFrom(const BaseConsist *src)
Copy properties of other BaseConsist.
@ WC_STATION_LIST
Station list; Window numbers:
Order * next
Pointer to next order. If nullptr, end of list.
static bool IsHangarTile(TileIndex t)
Is tile t an hangar tile?
@ CMD_CLONE_ORDER
clone (and share) an order