diff options
Diffstat (limited to 'src/order_func.h')
-rw-r--r-- | src/order_func.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/order_func.h b/src/order_func.h new file mode 100644 index 000000000..3351ea23b --- /dev/null +++ b/src/order_func.h @@ -0,0 +1,54 @@ +/* $Id$ */ + +/** @file order_func.h Functions related to orders. */ + +#ifndef ORDER_FUNC_H +#define ORDER_FUNC_H + +#include "order_type.h" +#include "vehicle_type.h" +#include "tile_type.h" +#include "group_type.h" +#include "date_type.h" + +struct BackuppedOrders { + BackuppedOrders() : order(NULL), name(NULL) { } + ~BackuppedOrders() { free(order); free(name); } + + VehicleID clone; + VehicleOrderID orderindex; + GroupID group; + Order *order; + uint16 service_interval; + char *name; +}; + +extern TileIndex _backup_orders_tile; +extern BackuppedOrders _backup_orders_data; + +void BackupVehicleOrders(const Vehicle *v, BackuppedOrders *order = &_backup_orders_data); +void RestoreVehicleOrders(const Vehicle *v, const BackuppedOrders *order = &_backup_orders_data); + +/* Functions */ +void RemoveOrderFromAllVehicles(OrderType type, DestinationID destination); +void InvalidateVehicleOrder(const Vehicle *v); +bool VehicleHasDepotOrders(const Vehicle *v); +void CheckOrders(const Vehicle*); +void DeleteVehicleOrders(Vehicle *v); +bool CheckForValidOrders(const Vehicle* v); + +#define MIN_SERVINT_PERCENT 5 +#define MAX_SERVINT_PERCENT 90 +#define MIN_SERVINT_DAYS 30 +#define MAX_SERVINT_DAYS 800 + +/** + * Get the service interval domain. + * Get the new proposed service interval for the vehicle is indeed, clamped + * within the given bounds. @see MIN_SERVINT_PERCENT ,etc. + * @param index proposed service interval + * @return service interval + */ +Date GetServiceIntervalClamped(uint index); + +#endif /* ORDER_FUNC_H */ |