OpenTTD
Public Types | Public Member Functions | Static Public Member Functions
StationRect Struct Reference

StationRect - used to track station spread out rectangle - cheaper than scanning whole map. More...

#include <base_station_base.h>

Inheritance diagram for StationRect:
Rect

Public Types

enum  StationRectMode { ADD_TEST = 0, ADD_TRY, ADD_FORCE }

Public Member Functions

void MakeEmpty ()
bool PtInExtendedRect (int x, int y, int distance=0) const
 Determines whether a given point (x, y) is within a certain distance of the station rectangle.
bool IsEmpty () const
CommandCost BeforeAddTile (TileIndex tile, StationRectMode mode)
CommandCost BeforeAddRect (TileIndex tile, int w, int h, StationRectMode mode)
bool AfterRemoveTile (BaseStation *st, TileIndex tile)
bool AfterRemoveRect (BaseStation *st, TileArea ta)
StationRectoperator= (const Rect &src)

Static Public Member Functions

static bool ScanForStationTiles (StationID st_id, int left_a, int top_a, int right_a, int bottom_a)
 Check whether station tiles of the given station id exist in the given rectangle.

Additional Inherited Members

- Data Fields inherited from Rect
int left
int top
int right
int bottom

Detailed Description

StationRect - used to track station spread out rectangle - cheaper than scanning whole map.

Definition at line 31 of file base_station_base.h.

Member Function Documentation

bool StationRect::PtInExtendedRect ( int  x,
int  y,
int  distance = 0 
) const

Determines whether a given point (x, y) is within a certain distance of the station rectangle.

Note
x and y are in Tile coordinates
Parameters
xX coordinate
yY coordinate
distanceThe maximum distance a point may have (L1 norm)
Returns
true if the point is within distance tiles of the station rectangle

Definition at line 409 of file station.cpp.

bool StationRect::ScanForStationTiles ( StationID  st_id,
int  left_a,
int  top_a,
int  right_a,
int  bottom_a 
)
static

Check whether station tiles of the given station id exist in the given rectangle.

Parameters
st_idStation ID to look for in the rectangle
left_aMinimal tile X edge of the rectangle
top_aMinimal tile Y edge of the rectangle
right_aMaximal tile X edge of the rectangle (inclusive)
bottom_aMaximal tile Y edge of the rectangle (inclusive)
Returns
true if a station tile with the given st_id exists in the rectangle, false otherwise

Definition at line 474 of file station.cpp.

References GetStationIndex(), IsTileType(), MP_STATION, TILE_AREA_LOOP, and TileXY().


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