equal
deleted
inserted
replaced
|
1 #ifndef DEPOT_H |
|
2 #define DEPOT_H |
|
3 |
|
4 #include "pool.h" |
|
5 |
|
6 struct Depot { |
|
7 TileIndex xy; |
|
8 uint16 town_index; |
|
9 uint16 index; |
|
10 }; |
|
11 |
|
12 extern MemoryPool _depot_pool; |
|
13 |
|
14 /** |
|
15 * Get the pointer to the depot with index 'index' |
|
16 */ |
|
17 static inline Depot *GetDepot(uint index) |
|
18 { |
|
19 return (Depot*)GetItemFromPool(&_depot_pool, index); |
|
20 } |
|
21 |
|
22 /** |
|
23 * Get the current size of the DepotPool |
|
24 */ |
|
25 static inline uint16 GetDepotPoolSize(void) |
|
26 { |
|
27 return _depot_pool.total_items; |
|
28 } |
|
29 |
|
30 #define FOR_ALL_DEPOTS_FROM(d, start) for (d = GetDepot(start); d != NULL; d = (d->index + 1 < GetDepotPoolSize()) ? GetDepot(d->index + 1) : NULL) |
|
31 #define FOR_ALL_DEPOTS(d) FOR_ALL_DEPOTS_FROM(d, 0) |
|
32 |
|
33 #define MIN_SERVINT_PERCENT 5 |
|
34 #define MAX_SERVINT_PERCENT 90 |
|
35 #define MIN_SERVINT_DAYS 30 |
|
36 #define MAX_SERVINT_DAYS 800 |
|
37 |
|
38 VARDEF TileIndex _last_built_train_depot_tile; |
|
39 VARDEF TileIndex _last_built_road_depot_tile; |
|
40 VARDEF TileIndex _last_built_aircraft_depot_tile; |
|
41 VARDEF TileIndex _last_built_ship_depot_tile; |
|
42 |
|
43 bool IsTrainDepotTile(TileIndex tile); |
|
44 bool IsRoadDepotTile(TileIndex tile); |
|
45 Depot *GetDepotByTile(uint tile); |
|
46 void InitializeDepot(void); |
|
47 Depot *AllocateDepot(void); |
|
48 bool IsShipDepotTile(TileIndex tile); |
|
49 void DoDeleteDepot(uint tile); |
|
50 |
|
51 #endif /* DEPOT_H */ |