truelight@9592: #include "ai_tilelist_valuator.hpp" truelight@9617: #include "ai_tile.hpp" truelight@9617: #include "ai_road.hpp" truelight@9655: #include "ai_map.hpp" truelight@9603: #include "../../road_map.h" truelight@9592: truelight@9592: int32 AITileListBuildable::Valuate(int32 tile) const truelight@9592: { truelight@9617: return AITile::IsBuildable(tile); truelight@9592: } truelight@9603: truelight@9698: int32 AITileListWater::Valuate(int32 tile) const truelight@9698: { truelight@9698: return AITile::IsWater(tile); truelight@9698: } truelight@9698: truelight@9657: int32 AITileListBuildableRectangle::Valuate(int32 tile) const truelight@9657: { truelight@9657: uint tx, ty; truelight@9657: truelight@9657: tx = AIMap::GetTileX(tile); truelight@9657: ty = AIMap::GetTileY(tile); truelight@9657: truelight@9657: for (uint x = tx; x < this->width + tx; x++) { truelight@9657: for (uint y = ty; y < this->height + ty; y++) { truelight@9657: if (!AITile::IsBuildable(AIMap::GetTileIndex(x, y))) return false; truelight@9657: } truelight@9657: } truelight@9657: truelight@9657: return true; truelight@9657: } truelight@9657: truelight@9611: int32 AITileListSlope::Valuate(int32 tile) const truelight@9611: { truelight@9617: return AITile::GetSlope(tile); truelight@9611: } truelight@9611: truelight@9700: int32 AITileListHeight::Valuate(int32 tile) const truelight@9700: { truelight@9700: return AITile::GetHeight(tile); truelight@9700: } truelight@9700: truelight@9617: int32 AITileListNeighbourRoadCount::Valuate(int32 tile) const truelight@9603: { truelight@9617: return AIRoad::GetNeighbourRoadCount(tile); truelight@9603: } truelight@9603: truelight@9603: int32 AITileListRoadTile::Valuate(int32 tile) const truelight@9603: { rubidium@9694: return ::IsTileType(tile, MP_ROAD) && ::GetRoadTileType(tile) != ROAD_TILE_DEPOT; truelight@9603: } truelight@9609: truelight@9609: int32 AITileListCargoAcceptance::Valuate(int32 tile) const truelight@9609: { truelight@9658: return AITile::GetCargoAcceptance(tile, this->cargo_type, this->width, this->height, this->radius); truelight@9609: } truelight@9655: truelight@9655: int32 AITileListDistanceManhattanToTile::Valuate(int32 tile) const truelight@9655: { truelight@9655: return AIMap::DistanceManhattan(this->tile, tile); truelight@9655: } truelight@9655: truelight@9655: int32 AITileListDistanceSquareToTile::Valuate(int32 tile) const truelight@9655: { truelight@9655: return AIMap::DistanceSquare(this->tile, tile); truelight@9655: }