diff options
-rw-r--r-- | src/script/api/ai/ai_station.hpp.sq | 1 | ||||
-rw-r--r-- | src/script/api/script_station.cpp | 7 | ||||
-rw-r--r-- | src/script/api/script_station.hpp | 8 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/script/api/ai/ai_station.hpp.sq b/src/script/api/ai/ai_station.hpp.sq index de499d466..47072e68e 100644 --- a/src/script/api/ai/ai_station.hpp.sq +++ b/src/script/api/ai/ai_station.hpp.sq @@ -49,6 +49,7 @@ void SQAIStation_Register(Squirrel *engine) 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"); diff --git a/src/script/api/script_station.cpp b/src/script/api/script_station.cpp index f91a1d2e7..4ece3da04 100644 --- 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; diff --git a/src/script/api/script_station.hpp b/src/script/api/script_station.hpp index 1c0dcd975..0f7e1dd0a 100644 --- a/src/script/api/script_station.hpp +++ b/src/script/api/script_station.hpp @@ -96,6 +96,14 @@ public: 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. |