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);
 }