From 05433adb6d09f0514b983e631e3a8b334c6f1957 Mon Sep 17 00:00:00 2001 From: yexo Date: Wed, 2 Sep 2009 12:48:23 +0000 Subject: (svn r17378) -Fix [NoAI]: Several AITile::* functions didn't check whether their parameters were valid --- src/ai/api/ai_tile.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/ai') diff --git a/src/ai/api/ai_tile.cpp b/src/ai/api/ai_tile.cpp index c0d1b59e0..35eed526b 100644 --- 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)); } -- cgit v1.2.3-70-g09d2