tron@2186: /* $Id$ */ tron@2186: rubidium@9111: /** @file depot_base.h Base for all depots (except hangars) */ belugas@6125: rubidium@8962: #ifndef DEPOT_BASE_H rubidium@8962: #define DEPOT_BASE_H truelight@1313: rubidium@8962: #include "tile_type.h" rubidium@8768: #include "depot_type.h" matthijs@5216: #include "oldpool.h" rubidium@8962: #include "town_type.h" truelight@1313: matthijs@5216: DECLARE_OLD_POOL(Depot, Depot, 3, 8000) truelight@1313: rubidium@7389: struct Depot : PoolItem { rubidium@7389: TileIndex xy; rubidium@7389: TownID town_index; truelight@4346: rubidium@7389: Depot(TileIndex xy = 0) : xy(xy) {} rubidium@7389: ~Depot(); truelight@4352: rubidium@7496: inline bool IsValid() const { return this->xy != 0; } rubidium@7389: }; truelight@4388: rubidium@7389: static inline bool IsValidDepotID(DepotID index) truelight@4388: { rubidium@7389: return index < GetDepotPoolSize() && GetDepot(index)->IsValid(); truelight@4388: } truelight@4388: rubidium@8962: Depot *GetDepotByTile(TileIndex tile); bjarni@4638: rubidium@7389: #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@8962: #endif /* DEPOT_BASE_H */