1
/* $Id: order_func.h 14803 2009-01-03 13:52:06Z rubidium $ */
3
/** @file order_func.h Functions related to orders. */
8
#include "order_type.h"
9
#include "vehicle_type.h"
10
#include "tile_type.h"
11
#include "group_type.h"
12
#include "date_type.h"
14
struct BackuppedOrders {
15
BackuppedOrders() : order(NULL), name(NULL) { }
16
~BackuppedOrders() { free(order); free(name); }
19
VehicleOrderID orderindex;
22
uint16 service_interval;
26
extern TileIndex _backup_orders_tile;
27
extern BackuppedOrders _backup_orders_data;
29
void BackupVehicleOrders(const Vehicle *v, BackuppedOrders *order = &_backup_orders_data);
30
void RestoreVehicleOrders(const Vehicle *v, const BackuppedOrders *order = &_backup_orders_data);
33
void RemoveOrderFromAllVehicles(OrderType type, DestinationID destination);
34
void InvalidateVehicleOrder(const Vehicle *v, int data);
35
bool VehicleHasDepotOrders(const Vehicle *v);
36
void CheckOrders(const Vehicle*);
37
void DeleteVehicleOrders(Vehicle *v, bool keep_orderlist = false);
38
bool ProcessOrders(Vehicle *v);
39
bool UpdateOrderDest(Vehicle *v, const Order *order, int conditional_depth = 0);
40
VehicleOrderID ProcessConditionalOrder(const Order *order, const Vehicle *v);
42
void DrawOrderString(const Vehicle *v, const Order *order, int order_index, int y, bool selected, bool timetable, int width);
44
#define MIN_SERVINT_PERCENT 5
45
#define MAX_SERVINT_PERCENT 90
46
#define MIN_SERVINT_DAYS 30
47
#define MAX_SERVINT_DAYS 800
50
* Get the service interval domain.
51
* Get the new proposed service interval for the vehicle is indeed, clamped
52
* within the given bounds. @see MIN_SERVINT_PERCENT ,etc.
53
* @param index proposed service interval
54
* @return service interval
56
Date GetServiceIntervalClamped(uint index);
58
#endif /* ORDER_FUNC_H */