OpenTTD
Data Structures | Macros | Typedefs | Functions | Variables
order_base.h File Reference

Base class for orders. More...

#include "order_type.h"
#include "core/pool_type.hpp"
#include "core/bitmath_func.hpp"
#include "cargo_type.h"
#include "depot_type.h"
#include "station_type.h"
#include "vehicle_type.h"
#include "date_type.h"

Go to the source code of this file.

Data Structures

struct  Order
 
struct  OrderList
 Shared order list linking together the linked list of orders and the list of vehicles sharing this order list. More...
 

Macros

#define FOR_ALL_ORDERS_FROM(var, start)   FOR_ALL_ITEMS_FROM(Order, order_index, var, start)
 
#define FOR_ALL_ORDERS(var)   FOR_ALL_ORDERS_FROM(var, 0)
 
#define FOR_VEHICLE_ORDERS(v, order)   for (order = (v->orders.list == NULL) ? NULL : v->orders.list->GetFirstOrder(); order != NULL; order = order->next)
 
#define FOR_ALL_ORDER_LISTS_FROM(var, start)   FOR_ALL_ITEMS_FROM(OrderList, orderlist_index, var, start)
 
#define FOR_ALL_ORDER_LISTS(var)   FOR_ALL_ORDER_LISTS_FROM(var, 0)
 

Typedefs

typedef Pool< Order, OrderID, 256, 64000 > OrderPool
 
typedef Pool< OrderList, OrderListID, 128, 64000 > OrderListPool
 

Functions

void InsertOrder (Vehicle *v, Order *new_o, VehicleOrderID sel_ord)
 Insert a new order but skip the validation. More...
 
void DeleteOrder (Vehicle *v, VehicleOrderID sel_ord)
 Delete an order but skip the parameter validation. More...
 

Variables

OrderPool _order_pool
 
OrderListPool _orderlist_pool
 

Detailed Description

Base class for orders.

Definition in file order_base.h.

Function Documentation

◆ DeleteOrder()

void DeleteOrder ( Vehicle v,
VehicleOrderID  sel_ord 
)

Delete an order but skip the parameter validation.

Parameters
vThe vehicle to delete the order from.
sel_ordThe id of the order to be deleted.

Definition at line 1081 of file order_cmd.cpp.

References OrderList::DeleteOrderAt(), DeleteOrderWarnings(), Vehicle::FirstShared(), Vehicle::list, Vehicle::NextShared(), and Vehicle::orders.

Referenced by CmdDeleteOrder().

◆ InsertOrder()

void InsertOrder ( Vehicle v,
Order new_o,
VehicleOrderID  sel_ord 
)

Insert a new order but skip the validation.

Parameters
vThe vehicle to insert the order to.
new_oThe new order.
sel_ordThe position the order should be inserted at.

Definition at line 953 of file order_cmd.cpp.

References DeleteOrderWarnings(), Vehicle::FirstShared(), OrderList::InsertOrderAt(), Vehicle::list, Vehicle::NextShared(), and Vehicle::orders.