(svn r15187) -Fix: assert when an AI called AIRoad::GetNeighbourRoadCount on a tile at the north edge (bug found by SmatZ).

This commit is contained in:
Yexo 2009-01-21 01:37:20 +00:00
parent 9fd38d1022
commit dcdb771c40

View File

@ -422,10 +422,10 @@ static bool NeighbourHasReachableRoad(::RoadTypes rts, TileIndex start_tile, Dia
::RoadTypes rts = ::RoadTypeToRoadTypes((::RoadType)GetCurrentRoadType()); ::RoadTypes rts = ::RoadTypeToRoadTypes((::RoadType)GetCurrentRoadType());
int32 neighbour = 0; int32 neighbour = 0;
if (NeighbourHasReachableRoad(rts, tile, DIAGDIR_NE)) neighbour++; if (TileX(tile) > 0 && NeighbourHasReachableRoad(rts, tile, DIAGDIR_NE)) neighbour++;
if (NeighbourHasReachableRoad(rts, tile, DIAGDIR_SE)) neighbour++; if (NeighbourHasReachableRoad(rts, tile, DIAGDIR_SE)) neighbour++;
if (NeighbourHasReachableRoad(rts, tile, DIAGDIR_SW)) neighbour++; if (NeighbourHasReachableRoad(rts, tile, DIAGDIR_SW)) neighbour++;
if (NeighbourHasReachableRoad(rts, tile, DIAGDIR_NW)) neighbour++; if (TileY(tile) > 0 && NeighbourHasReachableRoad(rts, tile, DIAGDIR_NW)) neighbour++;
return neighbour; return neighbour;
} }