OpenTTD
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_VEHICLE_ORDERS(v, order)   for (order = (v->orders.list == nullptr) ? nullptr : v->orders.list->GetFirstOrder(); order != nullptr; order = order->next)
 

Typedefs

typedef Pool< Order, OrderID, 256, 0xFF0000 > 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 1043 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 915 of file order_cmd.cpp.

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