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...


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


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


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...


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.

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.

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.