mirror of https://github.com/OpenTTD/OpenTTD
(svn r23402) -Add: Function to check if a TileArea contains a tile. (michi_cc)
parent
c792125d6a
commit
bf1b6d570b
|
@ -93,6 +93,25 @@ bool TileArea::Intersects(const TileArea &ta) const
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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.
|
* Clamp the tile area to map borders.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -48,6 +48,8 @@ struct TileArea {
|
||||||
|
|
||||||
bool Intersects(const TileArea &ta) const;
|
bool Intersects(const TileArea &ta) const;
|
||||||
|
|
||||||
|
bool Contains(TileIndex tile) const;
|
||||||
|
|
||||||
void ClampToMap();
|
void ClampToMap();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue