changeset 18558:8e86f44a1130 draft

(svn r23402) -Add: Function to check if a TileArea contains a tile. (michi_cc)
author terkhen <terkhen@openttd.org>
date Sat, 03 Dec 2011 20:19:33 +0000
parents 436f5b4137d4
children 820b3ec0b86d
files src/tilearea.cpp src/tilearea_type.h
diffstat 2 files changed, 21 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/tilearea.cpp
+++ b/src/tilearea.cpp
@@ -94,6 +94,25 @@
 }
 
 /**
+ * Does this tile area contain a tile?
+ * @param tile Tile to test for.
+ * @return True if the tile is inside the area.
+ */
+bool TileArea::Contains(TileIndex tile) const
+{
+	if (this->w == 0) return false;
+
+	assert(this->w != 0 && this->h != 0);
+
+	uint left   = TileX(this->tile);
+	uint top    = TileY(this->tile);
+	uint tile_x = TileX(tile);
+	uint tile_y = TileY(tile);
+
+	return IsInsideBS(tile_x, left, this->w) && IsInsideBS(tile_y, top, this->h);
+}
+
+/**
  * Clamp the tile area to map borders.
  */
 void TileArea::ClampToMap()
--- a/src/tilearea_type.h
+++ b/src/tilearea_type.h
@@ -48,6 +48,8 @@
 
 	bool Intersects(const TileArea &ta) const;
 
+	bool Contains(TileIndex tile) const;
+
 	void ClampToMap();
 
 	/**