# HG changeset patch # User yexo # Date 2009-09-02 12:48:23 # Node ID f6a9a5783c1269226c2b3b6996ad5bc1272e5880 # Parent 8a6c80b73050c8cacd712b5fe01ff37d7b96ea61 (svn r17378) -Fix [NoAI]: Several AITile::* functions didn't check whether their parameters were valid diff --git a/src/ai/api/ai_tile.cpp b/src/ai/api/ai_tile.cpp --- a/src/ai/api/ai_tile.cpp +++ b/src/ai/api/ai_tile.cpp @@ -95,31 +95,43 @@ /* static */ bool AITile::HasTreeOnTile(TileIndex tile) { + if (!::IsValidTile(tile)) return false; + return ::IsTileType(tile, MP_TREES); } /* static */ bool AITile::IsFarmTile(TileIndex tile) { + if (!::IsValidTile(tile)) return false; + return (::IsTileType(tile, MP_CLEAR) && ::IsClearGround(tile, CLEAR_FIELDS)); } /* static */ bool AITile::IsRockTile(TileIndex tile) { + if (!::IsValidTile(tile)) return false; + return (::IsTileType(tile, MP_CLEAR) && ::IsClearGround(tile, CLEAR_ROCKS)); } /* static */ bool AITile::IsRoughTile(TileIndex tile) { + if (!::IsValidTile(tile)) return false; + return (::IsTileType(tile, MP_CLEAR) && ::IsClearGround(tile, CLEAR_ROUGH)); } /* static */ bool AITile::IsSnowTile(TileIndex tile) { + if (!::IsValidTile(tile)) return false; + return (::IsTileType(tile, MP_CLEAR) && ::IsClearGround(tile, CLEAR_SNOW)); } /* static */ bool AITile::IsDesertTile(TileIndex tile) { + if (!::IsValidTile(tile)) return false; + return (::IsTileType(tile, MP_CLEAR) && ::IsClearGround(tile, CLEAR_DESERT)); }