(svn r18696) -Fix [FS#3404]: AITile::IsCoastTile returned false for coast tiles with trees on them.

This commit is contained in:
yexo 2010-01-03 12:42:50 +00:00
parent c73df2016a
commit 6e97511bcb
2 changed files with 5 additions and 2 deletions

View File

@ -17,6 +17,7 @@
#include "../../road_map.h" #include "../../road_map.h"
#include "../../water_map.h" #include "../../water_map.h"
#include "../../clear_map.h" #include "../../clear_map.h"
#include "../../tree_map.h"
#include "../../town.h" #include "../../town.h"
#include "../../landscape.h" #include "../../landscape.h"
@ -68,7 +69,8 @@
{ {
if (!::IsValidTile(tile)) return false; if (!::IsValidTile(tile)) return false;
return ::IsTileType(tile, MP_WATER) && ::IsCoast(tile); return (::IsTileType(tile, MP_WATER) && ::IsCoast(tile)) ||
(::IsTileType(tile, MP_TREES) && ::GetTreeGround(tile) == TREE_GROUND_SHORE);
} }
/* static */ bool AITile::IsStationTile(TileIndex tile) /* static */ bool AITile::IsStationTile(TileIndex tile)

View File

@ -140,7 +140,8 @@ public:
* @param tile The tile to check. * @param tile The tile to check.
* @pre AIMap::IsValidTile(tile). * @pre AIMap::IsValidTile(tile).
* @return True if and only if the tile is a coast tile. * @return True if and only if the tile is a coast tile.
* @note Building on coast tiles in general is more expensive. * @note Building on coast tiles in general is more expensive. This is not
* true if there are also trees on the tile, see #HasTreeOnTile.
*/ */
static bool IsCoastTile(TileIndex tile); static bool IsCoastTile(TileIndex tile);