diff options
author | Yexo <yexo@openttd.org> | 2009-02-05 01:15:54 +0000 |
---|---|---|
committer | Yexo <yexo@openttd.org> | 2009-02-05 01:15:54 +0000 |
commit | f2907d816f800fe4c6cbdcf586d8e15a07fc19ff (patch) | |
tree | 85c9d8cf146efb0bffe7348bcf6ccd390e05a9f3 | |
parent | 62a11eb5a93a12994bdf84475930d0d4b7fb4315 (diff) | |
download | openttd-f2907d816f800fe4c6cbdcf586d8e15a07fc19ff.tar.xz |
(svn r15346) -Add [NoAI]: Add AIAirport::GetNearestTown() so AIs can known in which town the noise level will increase.
-rw-r--r-- | src/ai/api/ai_airport.cpp | 10 | ||||
-rw-r--r-- | src/ai/api/ai_airport.hpp | 13 | ||||
-rw-r--r-- | src/ai/api/ai_airport.hpp.sq | 1 |
3 files changed, 22 insertions, 2 deletions
diff --git a/src/ai/api/ai_airport.cpp b/src/ai/api/ai_airport.cpp index ec3d40029..cfe4df084 100644 --- a/src/ai/api/ai_airport.cpp +++ b/src/ai/api/ai_airport.cpp @@ -125,3 +125,13 @@ return 1; } + +/* static */ TownID AIAirport::GetNearestTown(TileIndex tile, AirportType type) +{ + extern Town *AirportGetNearestTown(const AirportFTAClass *afc, TileIndex airport_tile); + + if (!::IsValidTile(tile)) return INVALID_TOWN; + if (!IsValidAirportType(type)) return INVALID_TOWN; + + return AirportGetNearestTown(GetAirport(type), tile)->index; +} diff --git a/src/ai/api/ai_airport.hpp b/src/ai/api/ai_airport.hpp index d1d18714b..7693774e6 100644 --- a/src/ai/api/ai_airport.hpp +++ b/src/ai/api/ai_airport.hpp @@ -155,10 +155,19 @@ public: * built at this tile. * @param tile The tile to check. * @param type The AirportType to check. - * @return The TownID of the town closest to the tile. - * @note The noise will be added to the town with TownID AITile.GetClosestTown(tile). + * @return The amount of noise added to the nearest town. + * @note The noise will be added to the town with TownID GetNearestTown(itle, type). */ static int GetNoiseLevelIncrease(TileIndex tile, AirportType type); + + /** + * Get the TownID of the town whose local authority will influence + * an airport at some tile. + * @param tile The tile to check. + * @param type The AirportType to check. + * @return The TownID of the town closest to the tile. + */ + static TownID GetNearestTown(TileIndex tile, AirportType type); }; #endif /* AI_AIRPORT_HPP */ diff --git a/src/ai/api/ai_airport.hpp.sq b/src/ai/api/ai_airport.hpp.sq index 355a2ab12..fdfed7836 100644 --- a/src/ai/api/ai_airport.hpp.sq +++ b/src/ai/api/ai_airport.hpp.sq @@ -52,6 +52,7 @@ void SQAIAirport_Register(Squirrel *engine) { SQAIAirport.DefSQStaticMethod(engine, &AIAirport::RemoveAirport, "RemoveAirport", 2, "xi"); SQAIAirport.DefSQStaticMethod(engine, &AIAirport::GetAirportType, "GetAirportType", 2, "xi"); SQAIAirport.DefSQStaticMethod(engine, &AIAirport::GetNoiseLevelIncrease, "GetNoiseLevelIncrease", 3, "xii"); + SQAIAirport.DefSQStaticMethod(engine, &AIAirport::GetNearestTown, "GetNearestTown", 3, "xii"); SQAIAirport.PostRegister(engine); } |