Mercurial > hg > openttd
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.