tron@2186: /* $Id$ */ tron@2186: rubidium@9280: /** @file order_func.h Functions related to orders. */ celestar@2214: rubidium@9280: #ifndef ORDER_FUNC_H rubidium@9280: #define ORDER_FUNC_H truelight@1024: rubidium@9267: #include "order_type.h" rubidium@8615: #include "vehicle_type.h" rubidium@8634: #include "tile_type.h" rubidium@9266: #include "group_type.h" rubidium@9280: #include "date_type.h" truelight@1024: rubidium@8149: struct BackuppedOrders { rubidium@8818: BackuppedOrders() : order(NULL), name(NULL) { } rubidium@8818: ~BackuppedOrders() { free(order); free(name); } Darkvater@2433: truelight@1024: VehicleID clone; truelight@4391: VehicleOrderID orderindex; glx@9146: GroupID group; rubidium@8149: Order *order; truelight@1024: uint16 service_interval; peter1138@8754: char *name; rubidium@6574: }; truelight@1024: rubidium@8764: extern TileIndex _backup_orders_tile; rubidium@8764: extern BackuppedOrders _backup_orders_data; truelight@1024: rubidium@9280: void BackupVehicleOrders(const Vehicle *v, BackuppedOrders *order = &_backup_orders_data); rubidium@9280: void RestoreVehicleOrders(const Vehicle *v, const BackuppedOrders *order = &_backup_orders_data); truelight@1024: truelight@1024: /* Functions */ truelight@4389: void RemoveOrderFromAllVehicles(OrderType type, DestinationID destination); truelight@1024: void InvalidateVehicleOrder(const Vehicle *v); truelight@1024: bool VehicleHasDepotOrders(const Vehicle *v); tron@3140: void CheckOrders(const Vehicle*); truelight@1024: void DeleteVehicleOrders(Vehicle *v); rubidium@9323: bool ProcessOrders(Vehicle *v); truelight@1024: rubidium@8707: #define MIN_SERVINT_PERCENT 5 rubidium@8707: #define MAX_SERVINT_PERCENT 90 rubidium@8707: #define MIN_SERVINT_DAYS 30 rubidium@8707: #define MAX_SERVINT_DAYS 800 rubidium@8707: rubidium@8707: /** rubidium@8707: * Get the service interval domain. rubidium@8707: * Get the new proposed service interval for the vehicle is indeed, clamped rubidium@8707: * within the given bounds. @see MIN_SERVINT_PERCENT ,etc. rubidium@8707: * @param index proposed service interval rubidium@8707: * @return service interval rubidium@8707: */ rubidium@8707: Date GetServiceIntervalClamped(uint index); rubidium@8707: rubidium@9280: #endif /* ORDER_FUNC_H */