src/order_func.h
changeset 9280 9c03416d26b1
parent 9267 71cf88230dc1
child 9323 9bc423363f6a
equal deleted inserted replaced
9279:7d97c93af048 9280:9c03416d26b1
       
     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 */