Mercurial > hg > openttd
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()