changeset 18606:61e476428939 draft

(svn r23453) -Add: [NoAI] AIStation.GetStationCoverageRadius(StationID)
author yexo <yexo@openttd.org>
date Thu, 08 Dec 2011 23:28:43 +0000
parents 2e1ac7ba24b3
children b8fc708229a7
files src/script/api/ai/ai_station.hpp.sq src/script/api/script_station.cpp src/script/api/script_station.hpp
diffstat 3 files changed, 16 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/script/api/ai/ai_station.hpp.sq
+++ b/src/script/api/ai/ai_station.hpp.sq
@@ -49,6 +49,7 @@
 	SQAIStation.DefSQStaticMethod(engine, &ScriptStation::GetCargoWaiting,            "GetCargoWaiting",            3, ".ii");
 	SQAIStation.DefSQStaticMethod(engine, &ScriptStation::GetCargoRating,             "GetCargoRating",             3, ".ii");
 	SQAIStation.DefSQStaticMethod(engine, &ScriptStation::GetCoverageRadius,          "GetCoverageRadius",          2, ".i");
+	SQAIStation.DefSQStaticMethod(engine, &ScriptStation::GetStationCoverageRadius,   "GetStationCoverageRadius",   2, ".i");
 	SQAIStation.DefSQStaticMethod(engine, &ScriptStation::GetDistanceManhattanToTile, "GetDistanceManhattanToTile", 3, ".ii");
 	SQAIStation.DefSQStaticMethod(engine, &ScriptStation::GetDistanceSquareToTile,    "GetDistanceSquareToTile",    3, ".ii");
 	SQAIStation.DefSQStaticMethod(engine, &ScriptStation::IsWithinTownInfluence,      "IsWithinTownInfluence",      3, ".ii");
--- a/src/script/api/script_station.cpp
+++ b/src/script/api/script_station.cpp
@@ -64,6 +64,13 @@
 	}
 }
 
+/* static */ int32 ScriptStation::GetStationCoverageRadius(StationID station_id)
+{
+	if (!IsValidStation(station_id)) return -1;
+
+	return Station::Get(station_id)->GetCatchmentRadius();
+}
+
 /* static */ int32 ScriptStation::GetDistanceManhattanToTile(StationID station_id, TileIndex tile)
 {
 	if (!IsValidStation(station_id)) return -1;
--- a/src/script/api/script_station.hpp
+++ b/src/script/api/script_station.hpp
@@ -96,6 +96,14 @@
 	static int32 GetCoverageRadius(ScriptStation::StationType station_type);
 
 	/**
+	 * Get the coverage radius of this station.
+	 * @param station_id The station to get the coverage radius of.
+	 * @pre IsValidStation(station_id).
+	 * @return The radius in tiles.
+	 */
+	static int32 GetStationCoverageRadius(StationID station_id);
+
+	/**
 	 * Get the manhattan distance from the tile to the ScriptStation::GetLocation()
 	 *  of the station.
 	 * @param station_id The station to get the distance to.