author | richk |
Tue, 15 Apr 2008 00:47:19 +0000 | |
branch | NewGRF_ports |
changeset 10184 | fcf5fb2548eb |
child 10210 | a2131f7a315d |
permissions | -rw-r--r-- |
10184
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
1 |
/* $Id$ */ |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
2 |
|
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
3 |
/** @file order_func.h Functions related to orders. */ |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
4 |
|
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
5 |
#ifndef ORDER_FUNC_H |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
6 |
#define ORDER_FUNC_H |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
7 |
|
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
8 |
#include "order_type.h" |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
9 |
#include "vehicle_type.h" |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
10 |
#include "tile_type.h" |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
11 |
#include "group_type.h" |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
12 |
#include "date_type.h" |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
13 |
|
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
14 |
struct BackuppedOrders { |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
15 |
BackuppedOrders() : order(NULL), name(NULL) { } |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
16 |
~BackuppedOrders() { free(order); free(name); } |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
17 |
|
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
18 |
VehicleID clone; |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
19 |
VehicleOrderID orderindex; |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
20 |
GroupID group; |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
21 |
Order *order; |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
22 |
uint16 service_interval; |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
23 |
char *name; |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
24 |
}; |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
25 |
|
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
26 |
extern TileIndex _backup_orders_tile; |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
27 |
extern BackuppedOrders _backup_orders_data; |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
28 |
|
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
29 |
void BackupVehicleOrders(const Vehicle *v, BackuppedOrders *order = &_backup_orders_data); |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
30 |
void RestoreVehicleOrders(const Vehicle *v, const BackuppedOrders *order = &_backup_orders_data); |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
31 |
|
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
32 |
/* Functions */ |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
33 |
void RemoveOrderFromAllVehicles(OrderType type, DestinationID destination); |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
34 |
void InvalidateVehicleOrder(const Vehicle *v); |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
35 |
bool VehicleHasDepotOrders(const Vehicle *v); |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
36 |
void CheckOrders(const Vehicle*); |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
37 |
void DeleteVehicleOrders(Vehicle *v); |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
38 |
bool ProcessOrders(Vehicle *v); |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
39 |
|
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
40 |
#define MIN_SERVINT_PERCENT 5 |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
41 |
#define MAX_SERVINT_PERCENT 90 |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
42 |
#define MIN_SERVINT_DAYS 30 |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
43 |
#define MAX_SERVINT_DAYS 800 |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
44 |
|
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
45 |
/** |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
46 |
* Get the service interval domain. |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
47 |
* Get the new proposed service interval for the vehicle is indeed, clamped |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
48 |
* within the given bounds. @see MIN_SERVINT_PERCENT ,etc. |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
49 |
* @param index proposed service interval |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
50 |
* @return service interval |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
51 |
*/ |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
52 |
Date GetServiceIntervalClamped(uint index); |
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
53 |
|
fcf5fb2548eb
(svn r12715) [NewGRF_ports] -Sync: with trunk r12351:12644.
richk
parents:
diff
changeset
|
54 |
#endif /* ORDER_FUNC_H */ |