diff options
author | rubidium <rubidium@openttd.org> | 2009-06-06 11:47:21 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-06-06 11:47:21 +0000 |
commit | ec3ef70adb40d9ff371082a7360652d58e425284 (patch) | |
tree | 232721f0f75e9a1b9075d8d3721d7e775b0307fc /src/ai/api/ai_tile.cpp | |
parent | 0b8ceb3007c018954203519b3768c45b3fa21920 (diff) | |
download | openttd-ec3ef70adb40d9ff371082a7360652d58e425284.tar.xz |
(svn r16524) -Fix [FS#2963]: missing guards in the NoAI API making it possible to hit an assert in OpenTTD.
Diffstat (limited to 'src/ai/api/ai_tile.cpp')
-rw-r--r-- | src/ai/api/ai_tile.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/ai/api/ai_tile.cpp b/src/ai/api/ai_tile.cpp index 70bb1fb83..df44cac66 100644 --- a/src/ai/api/ai_tile.cpp +++ b/src/ai/api/ai_tile.cpp @@ -175,21 +175,21 @@ return ::TrackStatusToTrackdirBits(::GetTileTrackStatus(tile, (::TransportType)transport_type, UINT32_MAX)) != TRACKDIR_BIT_NONE; } -/* static */ int32 AITile::GetCargoAcceptance(TileIndex tile, CargoID cargo_type, uint width, uint height, uint radius) +/* static */ int32 AITile::GetCargoAcceptance(TileIndex tile, CargoID cargo_type, int width, int height, int radius) { - if (!::IsValidTile(tile)) return false; + if (!::IsValidTile(tile) || width <= 0 || height <= 0 || radius <= 0) return -1; AcceptedCargo accepts; - ::GetAcceptanceAroundTiles(accepts, tile, width, height, _settings_game.station.modified_catchment ? radius : (uint)CA_UNMODIFIED); + ::GetAcceptanceAroundTiles(accepts, tile, width, height, _settings_game.station.modified_catchment ? radius : (int)CA_UNMODIFIED); return accepts[cargo_type]; } -/* static */ int32 AITile::GetCargoProduction(TileIndex tile, CargoID cargo_type, uint width, uint height, uint radius) +/* static */ int32 AITile::GetCargoProduction(TileIndex tile, CargoID cargo_type, int width, int height, int radius) { - if (!::IsValidTile(tile)) return false; + if (!::IsValidTile(tile) || width <= 0 || height <= 0 || radius <= 0) return -1; AcceptedCargo produced; - ::GetProductionAroundTiles(produced, tile, width, height, _settings_game.station.modified_catchment ? radius : (uint)CA_UNMODIFIED); + ::GetProductionAroundTiles(produced, tile, width, height, _settings_game.station.modified_catchment ? radius : (int)CA_UNMODIFIED); return produced[cargo_type]; } |