(svn r9747) [NoAI] -Add: added AITileListRoadTile and AITileListNeighbourRoad as Valuators for AITileList
#include "ai_tilelist_valuator.hpp"
#include "../../tile.h"
#include "../../road_map.h"
int32 AITileListBuildable::Valuate(int32 tile) const
{
switch (::GetTileType(tile)) {
default: return 1;
case MP_VOID:
case MP_HOUSE:
case MP_STATION:
case MP_INDUSTRY:
case MP_UNMOVABLE: return 0;
}
}
int32 AITileListNeighbourRoad::Valuate(int32 tile) const
{
int32 neighbour = 0;
if (::IsTileType(tile + ::TileXY(-1, 0), MP_STREET) && ::GetRoadTileType(tile + ::TileXY(-1, 0)) != ROAD_TILE_DEPOT)
neighbour++;
if (::IsTileType(tile + ::TileXY( 1, 0), MP_STREET) && ::GetRoadTileType(tile + ::TileXY( 1, 0)) != ROAD_TILE_DEPOT)
neighbour++;
if (::IsTileType(tile + ::TileXY( 0,-1), MP_STREET) && ::GetRoadTileType(tile + ::TileXY( 0,-1)) != ROAD_TILE_DEPOT)
neighbour++;
if (::IsTileType(tile + ::TileXY( 0, 1), MP_STREET) && ::GetRoadTileType(tile + ::TileXY( 0, 1)) != ROAD_TILE_DEPOT)
neighbour++;
return neighbour;
}
int32 AITileListRoadTile::Valuate(int32 tile) const
{
return ::IsTileType(tile, MP_STREET) && ::GetRoadTileType(tile) != ROAD_TILE_DEPOT;
}