depot.h
changeset 1313 f1013ec3d318
child 1330 5d76a0522a11
equal deleted inserted replaced
1312:594340ca5b87 1313:f1013ec3d318
       
     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 */