truelight@1313: #ifndef DEPOT_H truelight@1313: #define DEPOT_H truelight@1313: truelight@1313: #include "pool.h" truelight@1313: truelight@1313: struct Depot { truelight@1313: TileIndex xy; truelight@1313: uint16 town_index; truelight@1313: uint16 index; truelight@1313: }; truelight@1313: truelight@1313: extern MemoryPool _depot_pool; truelight@1313: truelight@1313: /** truelight@1313: * Get the pointer to the depot with index 'index' truelight@1313: */ truelight@1313: static inline Depot *GetDepot(uint index) truelight@1313: { truelight@1313: return (Depot*)GetItemFromPool(&_depot_pool, index); truelight@1313: } truelight@1313: truelight@1313: /** truelight@1313: * Get the current size of the DepotPool truelight@1313: */ truelight@1313: static inline uint16 GetDepotPoolSize(void) truelight@1313: { truelight@1313: return _depot_pool.total_items; truelight@1313: } truelight@1313: truelight@1313: #define FOR_ALL_DEPOTS_FROM(d, start) for (d = GetDepot(start); d != NULL; d = (d->index + 1 < GetDepotPoolSize()) ? GetDepot(d->index + 1) : NULL) truelight@1313: #define FOR_ALL_DEPOTS(d) FOR_ALL_DEPOTS_FROM(d, 0) truelight@1313: truelight@1313: #define MIN_SERVINT_PERCENT 5 truelight@1313: #define MAX_SERVINT_PERCENT 90 truelight@1313: #define MIN_SERVINT_DAYS 30 truelight@1313: #define MAX_SERVINT_DAYS 800 truelight@1313: truelight@1313: VARDEF TileIndex _last_built_train_depot_tile; truelight@1313: VARDEF TileIndex _last_built_road_depot_tile; truelight@1313: VARDEF TileIndex _last_built_aircraft_depot_tile; truelight@1313: VARDEF TileIndex _last_built_ship_depot_tile; truelight@1313: truelight@1313: bool IsTrainDepotTile(TileIndex tile); truelight@1313: bool IsRoadDepotTile(TileIndex tile); truelight@1313: Depot *GetDepotByTile(uint tile); truelight@1313: void InitializeDepot(void); truelight@1313: Depot *AllocateDepot(void); truelight@1313: bool IsShipDepotTile(TileIndex tile); truelight@1313: void DoDeleteDepot(uint tile); truelight@1313: truelight@1313: #endif /* DEPOT_H */