Mercurial > hg > openttd
changeset 11006:57ca96988687 draft
(svn r15346) -Add [NoAI]: Add AIAirport::GetNearestTown() so AIs can known in which town the noise level will increase.
author | Yexo <Yexo@openttd.org> |
---|---|
date | Thu, 05 Feb 2009 01:15:54 +0000 |
parents | 3da26d1d540d |
children | e9e6a0bba3e9 |
files | src/ai/api/ai_airport.cpp src/ai/api/ai_airport.hpp src/ai/api/ai_airport.hpp.sq |
diffstat | 3 files changed, 22 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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; +}
--- a/src/ai/api/ai_airport.hpp +++ b/src/ai/api/ai_airport.hpp @@ -155,10 +155,19 @@ * 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 */
--- a/src/ai/api/ai_airport.hpp.sq +++ b/src/ai/api/ai_airport.hpp.sq @@ -52,6 +52,7 @@ 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); }