diff options
author | truebrain <truebrain@openttd.org> | 2009-01-13 23:50:12 +0000 |
---|---|---|
committer | truebrain <truebrain@openttd.org> | 2009-01-13 23:50:12 +0000 |
commit | 9724a986c8bfd0d08f9ff852da8bcbbf27c6b95c (patch) | |
tree | f92593f0f2201b7be3466211b9ba0dba1a7ab3ca /src/ai/api/ai_map.cpp | |
parent | ca45774160670c787ba81b3c09ff418c1e1bc772 (diff) | |
download | openttd-9724a986c8bfd0d08f9ff852da8bcbbf27c6b95c.tar.xz |
(svn r15078) -Fix [NoAI]: AIMap didn't filter its input (Yexo)
Diffstat (limited to 'src/ai/api/ai_map.cpp')
-rw-r--r-- | src/ai/api/ai_map.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/ai/api/ai_map.cpp b/src/ai/api/ai_map.cpp index 2c8547f95..b3a7f753c 100644 --- a/src/ai/api/ai_map.cpp +++ b/src/ai/api/ai_map.cpp @@ -26,37 +26,44 @@ return ::MapSizeY(); } -/* static */ uint32 AIMap::GetTileX(TileIndex t) +/* static */ int32 AIMap::GetTileX(TileIndex t) { + if (!::IsValidTile(t)) return -1; return ::TileX(t); } -/* static */ uint32 AIMap::GetTileY(TileIndex t) +/* static */ int32 AIMap::GetTileY(TileIndex t) { + if (!::IsValidTile(t)) return -1; return ::TileY(t); } /* static */ TileIndex AIMap::GetTileIndex(uint32 x, uint32 y) { + if (x >= ::MapSizeX() || y >= MapSizeY()) return INVALID_TILE; return ::TileXY(x, y); } -/* static */ uint32 AIMap::DistanceManhattan(TileIndex t1, TileIndex t2) +/* static */ int32 AIMap::DistanceManhattan(TileIndex t1, TileIndex t2) { + if (!::IsValidTile(t1) || !::IsValidTile(t2)) return -1; return ::DistanceManhattan(t1, t2); } -/* static */ uint32 AIMap::DistanceMax(TileIndex t1, TileIndex t2) +/* static */ int32 AIMap::DistanceMax(TileIndex t1, TileIndex t2) { + if (!::IsValidTile(t1) || !::IsValidTile(t2)) return -1; return ::DistanceMax(t1, t2); } -/* static */ uint32 AIMap::DistanceSquare(TileIndex t1, TileIndex t2) +/* static */ int32 AIMap::DistanceSquare(TileIndex t1, TileIndex t2) { + if (!::IsValidTile(t1) || !::IsValidTile(t2)) return -1; return ::DistanceSquare(t1, t2); } -/* static */ uint32 AIMap::DistanceFromEdge(TileIndex t) +/* static */ int32 AIMap::DistanceFromEdge(TileIndex t) { + if (!::IsValidTile(t)) return -1; return ::DistanceFromEdge(t); } |