|
1 /* $Id$ */ |
|
2 |
|
3 /** @file order_func.h Functions related to orders. */ |
|
4 |
|
5 #ifndef ORDER_FUNC_H |
|
6 #define ORDER_FUNC_H |
|
7 |
|
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" |
|
13 |
|
14 struct BackuppedOrders { |
|
15 BackuppedOrders() : order(NULL), name(NULL) { } |
|
16 ~BackuppedOrders() { free(order); free(name); } |
|
17 |
|
18 VehicleID clone; |
|
19 VehicleOrderID orderindex; |
|
20 GroupID group; |
|
21 Order *order; |
|
22 uint16 service_interval; |
|
23 char *name; |
|
24 }; |
|
25 |
|
26 extern TileIndex _backup_orders_tile; |
|
27 extern BackuppedOrders _backup_orders_data; |
|
28 |
|
29 void BackupVehicleOrders(const Vehicle *v, BackuppedOrders *order = &_backup_orders_data); |
|
30 void RestoreVehicleOrders(const Vehicle *v, const BackuppedOrders *order = &_backup_orders_data); |
|
31 |
|
32 /* Functions */ |
|
33 void RemoveOrderFromAllVehicles(OrderType type, DestinationID destination); |
|
34 void InvalidateVehicleOrder(const Vehicle *v); |
|
35 bool VehicleHasDepotOrders(const Vehicle *v); |
|
36 void CheckOrders(const Vehicle*); |
|
37 void DeleteVehicleOrders(Vehicle *v); |
|
38 bool CheckForValidOrders(const Vehicle* v); |
|
39 |
|
40 #define MIN_SERVINT_PERCENT 5 |
|
41 #define MAX_SERVINT_PERCENT 90 |
|
42 #define MIN_SERVINT_DAYS 30 |
|
43 #define MAX_SERVINT_DAYS 800 |
|
44 |
|
45 /** |
|
46 * Get the service interval domain. |
|
47 * Get the new proposed service interval for the vehicle is indeed, clamped |
|
48 * within the given bounds. @see MIN_SERVINT_PERCENT ,etc. |
|
49 * @param index proposed service interval |
|
50 * @return service interval |
|
51 */ |
|
52 Date GetServiceIntervalClamped(uint index); |
|
53 |
|
54 #endif /* ORDER_FUNC_H */ |