tron@2186: /* $Id$ */ tron@2186: rubidium@10429: /** @file depot_base.h Base for all depots (except hangars) */ belugas@6451: rubidium@10222: #ifndef DEPOT_BASE_H rubidium@10222: #define DEPOT_BASE_H truelight@1313: rubidium@10222: #include "tile_type.h" rubidium@9264: #include "depot_type.h" matthijs@5216: #include "oldpool.h" rubidium@10222: #include "town_type.h" truelight@1313: matthijs@5216: DECLARE_OLD_POOL(Depot, Depot, 3, 8000) truelight@1313: rubidium@7885: struct Depot : PoolItem { rubidium@7885: TileIndex xy; rubidium@7885: TownID town_index; truelight@4346: rubidium@7885: Depot(TileIndex xy = 0) : xy(xy) {} rubidium@7885: ~Depot(); truelight@4352: rubidium@7992: inline bool IsValid() const { return this->xy != 0; } rubidium@7885: }; truelight@4388: rubidium@7885: static inline bool IsValidDepotID(DepotID index) truelight@4388: { rubidium@7885: return index < GetDepotPoolSize() && GetDepot(index)->IsValid(); truelight@4388: } truelight@4388: rubidium@10222: Depot *GetDepotByTile(TileIndex tile); bjarni@4638: rubidium@7885: #define FOR_ALL_DEPOTS_FROM(d, start) for (d = GetDepot(start); d != NULL; d = (d->index + 1U < GetDepotPoolSize()) ? GetDepot(d->index + 1U) : NULL) if (d->IsValid()) truelight@1313: #define FOR_ALL_DEPOTS(d) FOR_ALL_DEPOTS_FROM(d, 0) truelight@1313: rubidium@10222: #endif /* DEPOT_BASE_H */