summaryrefslogtreecommitdiff
path: root/src/ai/api/ai_tile.cpp
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2009-04-26 16:26:41 +0000
committerfrosch <frosch@openttd.org>2009-04-26 16:26:41 +0000
commite04ddbe0ac4ed41853852c35666c551407c226b4 (patch)
tree431a7fb7017dfb4f34b6e6d0e4d89cc6de4ae756 /src/ai/api/ai_tile.cpp
parent9101de49d8fbc0b1f5e067ca2cd8c5906f30e84a (diff)
downloadopenttd-e04ddbe0ac4ed41853852c35666c551407c226b4.tar.xz
(svn r16166) -Add [NoAI]: AITile::Get(Min|Max|Corner)Height
Diffstat (limited to 'src/ai/api/ai_tile.cpp')
-rw-r--r--src/ai/api/ai_tile.cpp26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/ai/api/ai_tile.cpp b/src/ai/api/ai_tile.cpp
index 8a04c1772..f5bf96f1a 100644
--- a/src/ai/api/ai_tile.cpp
+++ b/src/ai/api/ai_tile.cpp
@@ -11,6 +11,7 @@
#include "../../water_map.h"
#include "../../clear_map.h"
#include "../../town.h"
+#include "../../landscape.h"
/* static */ bool AITile::IsBuildable(TileIndex tile)
{
@@ -132,11 +133,34 @@
/* static */ int32 AITile::GetHeight(TileIndex tile)
{
- if (!::IsValidTile(tile)) return false;
+ if (!::IsValidTile(tile)) return -1;
return ::TileHeight(tile);
}
+/* static */ int32 AITile::GetMinHeight(TileIndex tile)
+{
+ if (!::IsValidTile(tile)) return -1;
+
+ return ::GetTileZ(tile) / ::TILE_HEIGHT;
+}
+
+/* static */ int32 AITile::GetMaxHeight(TileIndex tile)
+{
+ if (!::IsValidTile(tile)) return -1;
+
+ return ::GetTileMaxZ(tile) / ::TILE_HEIGHT;
+}
+
+/* static */ int32 AITile::GetCornerHeight(TileIndex tile, Corner corner)
+{
+ if (!::IsValidTile(tile) || !::IsValidCorner((::Corner)corner)) return -1;
+
+ uint z;
+ ::Slope slope = ::GetTileSlope(tile, &z);
+ return (z + ::GetSlopeZInCorner(slope, (::Corner)corner)) / ::TILE_HEIGHT;
+}
+
/* static */ AICompany::CompanyID AITile::GetOwner(TileIndex tile)
{
if (!::IsValidTile(tile)) return AICompany::COMPANY_INVALID;