diff options
Diffstat (limited to 'src/ai/api')
-rw-r--r-- | src/ai/api/ai_town.cpp | 7 | ||||
-rw-r--r-- | src/ai/api/ai_town.hpp | 8 | ||||
-rw-r--r-- | src/ai/api/ai_town.hpp.sq | 1 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/ai/api/ai_town.cpp b/src/ai/api/ai_town.cpp index 05615e485..85bc22a53 100644 --- a/src/ai/api/ai_town.cpp +++ b/src/ai/api/ai_town.cpp @@ -129,6 +129,13 @@ return ::HasBit(::Town::Get(town_id)->statues, _current_company); } +/* static */ bool AITown::IsCity(TownID town_id) +{ + if (!IsValidTown(town_id)) return false; + + return ::Town::Get(town_id)->larger_town; +} + /* static */ int AITown::GetRoadReworkDuration(TownID town_id) { if (!IsValidTown(town_id)) return -1; diff --git a/src/ai/api/ai_town.hpp b/src/ai/api/ai_town.hpp index 83c9b2fa4..fb3abfe0b 100644 --- a/src/ai/api/ai_town.hpp +++ b/src/ai/api/ai_town.hpp @@ -227,6 +227,14 @@ public: static bool HasStatue(TownID town_id); /** + * Find out if the town is a city. + * @param town_id The town to check. + * @pre IsValidTown(town_id). + * @return True if the town is a city. + */ + static bool IsCity(TownID town_id); + + /** * Find out how long the town is undergoing road reconstructions. * @param town_id The town to check. * @pre IsValidTown(town_id). diff --git a/src/ai/api/ai_town.hpp.sq b/src/ai/api/ai_town.hpp.sq index 68fa02ca3..b7a33551f 100644 --- a/src/ai/api/ai_town.hpp.sq +++ b/src/ai/api/ai_town.hpp.sq @@ -71,6 +71,7 @@ void SQAITown_Register(Squirrel *engine) SQAITown.DefSQStaticMethod(engine, &AITown::GetDistanceSquareToTile, "GetDistanceSquareToTile", 3, ".ii"); SQAITown.DefSQStaticMethod(engine, &AITown::IsWithinTownInfluence, "IsWithinTownInfluence", 3, ".ii"); SQAITown.DefSQStaticMethod(engine, &AITown::HasStatue, "HasStatue", 2, ".i"); + SQAITown.DefSQStaticMethod(engine, &AITown::IsCity, "IsCity", 2, ".i"); SQAITown.DefSQStaticMethod(engine, &AITown::GetRoadReworkDuration, "GetRoadReworkDuration", 2, ".i"); SQAITown.DefSQStaticMethod(engine, &AITown::GetExclusiveRightsCompany, "GetExclusiveRightsCompany", 2, ".i"); SQAITown.DefSQStaticMethod(engine, &AITown::GetExclusiveRightsDuration, "GetExclusiveRightsDuration", 2, ".i"); |