changeset 17955:daeef82dcf7e draft

(svn r22764) -Add: [NoAI] AITile::GetTownAuthority().
author frosch <frosch@openttd.org>
date Fri, 19 Aug 2011 21:19:10 +0000
parents 308f37bdda95
children 52e44d541605
files src/ai/api/ai_changelog.hpp src/ai/api/ai_tile.cpp src/ai/api/ai_tile.hpp src/ai/api/ai_tile.hpp.sq
diffstat 4 files changed, 16 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ai/api/ai_changelog.hpp
+++ b/src/ai/api/ai_changelog.hpp
@@ -26,6 +26,7 @@
  * \li AICompany::GetQuarterlyCargoDelivered
  * \li AICompany::GetQuarterlyPerformanceRating
  * \li AICompany::GetQuarterlyCompanyValue
+ * \li AITown::GetTownAuthority
  *
  * API removals:
  * \li AICompany::GetCompanyValue, use AICompany::GetQuarterlyCompanyValue instead.
--- a/src/ai/api/ai_tile.cpp
+++ b/src/ai/api/ai_tile.cpp
@@ -268,6 +268,13 @@
 	return AITown::IsWithinTownInfluence(town_id, tile);
 }
 
+/* static */ TownID AITile::GetTownAuthority(TileIndex tile)
+{
+	if (!::IsValidTile(tile)) return false;
+
+	return ::ClosestTownFromTile(tile, _settings_game.economy.dist_local_authority)->index;
+}
+
 /* static */ TownID AITile::GetClosestTown(TileIndex tile)
 {
 	if (!::IsValidTile(tile)) return INVALID_TOWN;
--- a/src/ai/api/ai_tile.hpp
+++ b/src/ai/api/ai_tile.hpp
@@ -450,6 +450,13 @@
 	static bool IsWithinTownInfluence(TileIndex tile, TownID town_id);
 
 	/**
+	 * Find the town which has authority for the tile.
+	 *  The rating of your company in this town will be checked and affected when
+	 *  building stations, trees etc.
+	 */
+	static TownID GetTownAuthority(TileIndex tile);
+
+	/**
 	 * Find the town that is closest to a tile. Stations you build at this tile
 	 *  will belong to this town.
 	 * @param tile The tile to check.
--- a/src/ai/api/ai_tile.hpp.sq
+++ b/src/ai/api/ai_tile.hpp.sq
@@ -125,6 +125,7 @@
 	SQAITile.DefSQStaticMethod(engine, &AITile::PlantTree,                  "PlantTree",                  2, ".i");
 	SQAITile.DefSQStaticMethod(engine, &AITile::PlantTreeRectangle,         "PlantTreeRectangle",         4, ".iii");
 	SQAITile.DefSQStaticMethod(engine, &AITile::IsWithinTownInfluence,      "IsWithinTownInfluence",      3, ".ii");
+	SQAITile.DefSQStaticMethod(engine, &AITile::GetTownAuthority,           "GetTownAuthority",           2, ".i");
 	SQAITile.DefSQStaticMethod(engine, &AITile::GetClosestTown,             "GetClosestTown",             2, ".i");
 	SQAITile.DefSQStaticMethod(engine, &AITile::GetBuildCost,               "GetBuildCost",               2, ".i");