OpenTTD Source 20260911-master-gee2b2ac12a
OrthogonalTileArea Struct Reference

Represents the covered area of e.g. More...

#include <tilearea_type.h>

Inheritance diagram for OrthogonalTileArea:
Airport BitmapTileArea StationFinder

Public Member Functions

 OrthogonalTileArea (TileIndex tile=INVALID_TILE, uint16_t w=0, uint16_t h=0)
 Construct this tile area with some set values.
 OrthogonalTileArea (TileIndex start, TileIndex end)
 Construct this tile area based on two points.
bool IsEmpty () const
 Test if this tile area is empty.
void Add (TileIndex to_add)
 Add a single tile to a tile area; enlarge if needed.
void Add (const OrthogonalTileArea &area)
 Add another tile area to this tile area.
void Clear ()
 Clears the 'tile area', i.e.
bool Intersects (const OrthogonalTileArea &ta) const
 Does this tile area intersect with another?
bool Contains (TileIndex tile) const
 Does this tile area contain a tile?
OrthogonalTileAreaExpand (int rad)
 Expand a tile area by rad tiles in each direction, keeping within map bounds.
void ClampToMap ()
 Clamp the tile area to map borders.
TileIndex GetCenterTile () const
 Get the center tile.
OrthogonalTileIterator begin () const
 Returns an iterator to the beginning of the tile area.
OrthogonalTileIterator end () const
 Returns an iterator to the end of the tile area.

Data Fields

TileIndex tile
 The base tile of the area.
uint16_t w
 The width of the area.
uint16_t h
 The height of the area.

Detailed Description

Represents the covered area of e.g.

a rail station

Definition at line 18 of file tilearea_type.h.

Constructor & Destructor Documentation

◆ OrthogonalTileArea() [1/2]

OrthogonalTileArea::OrthogonalTileArea ( TileIndex tile = INVALID_TILE,
uint16_t w = 0,
uint16_t h = 0 )
inline

Construct this tile area with some set values.

Parameters
tilethe base tile
wthe width
hthe height

Definition at line 29 of file tilearea_type.h.

References h, INVALID_TILE, tile, and w.

Referenced by Add(), end(), Expand(), and Intersects().

◆ OrthogonalTileArea() [2/2]

OrthogonalTileArea::OrthogonalTileArea ( TileIndex start,
TileIndex end )

Construct this tile area based on two points.

Parameters
startthe start of the area
endthe end of the area

Definition at line 21 of file tilearea.cpp.

References end(), h, Map::Size(), tile, TileX(), TileXY(), TileY(), and w.

Member Function Documentation

◆ Add() [1/2]

void OrthogonalTileArea::Add ( const OrthogonalTileArea & area)
inline

Add another tile area to this tile area.

Parameters
areaThe tile area to add.

Definition at line 47 of file tilearea_type.h.

References Add(), h, OrthogonalTileArea(), tile, TileAddXY(), and w.

◆ Add() [2/2]

◆ begin()

OrthogonalTileIterator OrthogonalTileArea::begin ( ) const

Returns an iterator to the beginning of the tile area.

Returns
The OrthogonalTileIterator.

Definition at line 153 of file tilearea.cpp.

◆ ClampToMap()

void OrthogonalTileArea::ClampToMap ( )

Clamp the tile area to map borders.

Definition at line 142 of file tilearea.cpp.

References h, Map::Size(), Map::SizeX(), Map::SizeY(), tile, TileX(), TileY(), and w.

Referenced by CommonRaiseLowerBigLand(), and SmallMapWindow::DrawSmallMapColumn().

◆ Clear()

void OrthogonalTileArea::Clear ( )
inline

Clears the 'tile area', i.e.

make the tile invalid.

Definition at line 57 of file tilearea_type.h.

References INVALID_TILE.

Referenced by RemoveAirport(), RemoveBuoy(), RemoveDock(), and RemoveRoadStop().

◆ Contains()

bool OrthogonalTileArea::Contains ( TileIndex tile) const

Does this tile area contain a tile?

Parameters
tileTile to test for.
Returns
True if the tile is inside the area.

Definition at line 104 of file tilearea.cpp.

References h, IsInsideBS(), tile, TileX(), TileY(), and w.

Referenced by BitmapTileArea::ClrTile(), CmdMoveStationName(), CmdMoveWaypointName(), WaterRegion::GetLabel(), WaterRegion::GetLocalIndex(), BitmapTileArea::HasTile(), and BitmapTileArea::SetTile().

◆ end()

OrthogonalTileIterator OrthogonalTileArea::end ( ) const

Returns an iterator to the end of the tile area.

Returns
The OrthogonalTileIterator.

Definition at line 162 of file tilearea.cpp.

References OrthogonalTileArea().

Referenced by OrthogonalTileArea().

◆ Expand()

OrthogonalTileArea & OrthogonalTileArea::Expand ( int rad)

Expand a tile area by rad tiles in each direction, keeping within map bounds.

Parameters
radNumber of tiles to expand
Returns
The OrthogonalTileArea.

Definition at line 123 of file tilearea.cpp.

References h, OrthogonalTileArea(), Map::SizeX(), Map::SizeY(), tile, TileX(), TileXY(), TileY(), and w.

Referenced by FindSubsidyCargoDestination(), FindSubsidyTownCargoRoute(), ForAllStationsAroundTiles(), GetAcceptanceAroundTiles(), GetProductionAroundTiles(), GetStationAround(), Station::RecomputeCatchment(), and Industry::~Industry().

◆ GetCenterTile()

TileIndex OrthogonalTileArea::GetCenterTile ( ) const
inline

Get the center tile.

Returns
The tile at the center, or just north of it.

Definition at line 76 of file tilearea_type.h.

References TileAddXY().

Referenced by WaypointWindow::GetCenterTile(), SmallMapWindow::GetStationMiddle(), and IndustryViewWindow::OnClick().

◆ Intersects()

bool OrthogonalTileArea::Intersects ( const OrthogonalTileArea & ta) const

Does this tile area intersect with another?

Parameters
tathe other tile area to check against.
Returns
true if they intersect.

Definition at line 75 of file tilearea.cpp.

References h, OrthogonalTileArea(), tile, TileX(), TileY(), and w.

◆ IsEmpty()

Field Documentation

◆ h

◆ tile

TileIndex OrthogonalTileArea::tile

◆ w


The documentation for this struct was generated from the following files: