From 399a9641fe161fd631a26b7faa0ce63fc136219b Mon Sep 17 00:00:00 2001 From: yexo Date: Wed, 29 Dec 2010 12:19:33 +0000 Subject: (svn r21654) -Add: [NoAI] AITown::IsCity() so AIs can find out which towns grow faster than others (Lord Aro) --- src/ai/api/ai_town.cpp | 7 +++++++ src/ai/api/ai_town.hpp | 8 ++++++++ src/ai/api/ai_town.hpp.sq | 1 + 3 files changed, 16 insertions(+) (limited to 'src/ai/api') 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 @@ -226,6 +226,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. 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"); -- cgit v1.2.3-70-g09d2