# station_map.h File Reference

Maps accessors for stations. More...

`#include "rail_map.h"`
`#include "road_map.h"`
`#include "water_map.h"`
`#include "station_func.h"`
`#include "rail.h"`

Go to the source code of this file.

## Typedefs
typedef byte | StationGfx
## Enumerations
enum | { GFX_DOCK_BASE_WATER_PART = 4, GFX_TRUCK_BUS_DRIVETHROUGH_OFFSET = 4 }
## Functions
static StationID | GetStationIndex (TileIndex t)
| Get Station ID from a tile.
static StationType | GetStationType (TileIndex t)
| Get the station type of this tile.
static RoadStopType | GetRoadStopType (TileIndex t)
| Get the road stop type of this tile.
static StationGfx | GetStationGfx (TileIndex t)
| Get the station graphics of this tile.
static void | SetStationGfx (TileIndex t, StationGfx gfx)
| Set the station graphics of this tile.
static uint8 | GetStationAnimationFrame (TileIndex t)
| Get the station's animation frame of this tile.
static void | SetStationAnimationFrame (TileIndex t, uint8 frame)
| Set the station's animation frame of this tile.
static bool | IsRailStation (TileIndex t)
| Is this station tile a rail station?
static bool | IsRailStationTile (TileIndex t)
| Is this tile a station tile and a rail station?
static bool | IsRailWaypoint (TileIndex t)
| Is this station tile a rail waypoint?
static bool | IsRailWaypointTile (TileIndex t)
| Is this tile a station tile and a rail waypoint?
static bool | HasStationRail (TileIndex t)
| Has this station tile a rail? In other words, is this station tile a rail station or rail waypoint?
static bool | HasStationTileRail (TileIndex t)
| Has this station tile a rail? In other words, is this station tile a rail station or rail waypoint?
static bool | IsAirport (TileIndex t)
| Is this station tile an airport?
static bool | IsAirportTile (TileIndex t)
| Is this tile a station tile and an airport tile?
bool | IsHangar (TileIndex t)
| Check whether the given tile is a hangar.
static bool | IsTruckStop (TileIndex t)
| Is the station at t a truck stop?
static bool | IsBusStop (TileIndex t)
| Is the station at t a bus stop?
static bool | IsRoadStop (TileIndex t)
| Is the station at t a road station?
static bool | IsRoadStopTile (TileIndex t)
| Is tile t a road stop station?
static bool | IsStandardRoadStopTile (TileIndex t)
| Is tile t a standard (non-drive through) road stop station?
static bool | IsDriveThroughStopTile (TileIndex t)
| Is tile t a drive through road stop station?
static DiagDirection | GetRoadStopDir (TileIndex t)
| Gets the direction the road stop entrance points towards.
static bool | IsOilRig (TileIndex t)
static bool | IsDock (TileIndex t)
static bool | IsDockTile (TileIndex t)
static bool | IsBuoy (TileIndex t)
static bool | IsBuoyTile (TileIndex t)
static bool | IsHangarTile (TileIndex t)
static Axis | GetRailStationAxis (TileIndex t)
static Track | GetRailStationTrack (TileIndex t)
static TrackBits | GetRailStationTrackBits (TileIndex t)
static bool | IsCompatibleTrainStationTile (TileIndex t1, TileIndex t2)
static bool | HasStationReservation (TileIndex t)
| Get the reservation state of the rail station.
static void | SetRailStationReservation (TileIndex t, bool b)
| Set the reservation state of the rail station.
static TrackBits | GetStationReservationTrackBits (TileIndex t)
| Get the reserved track bits for a waypoint.
static DiagDirection | GetDockDirection (TileIndex t)
static TileIndexDiffC | GetDockOffset (TileIndex t)
static bool | IsCustomStationSpecIndex (TileIndex t)
static void | SetCustomStationSpecIndex (TileIndex t, byte specindex)
static uint | GetCustomStationSpecIndex (TileIndex t)
static void | SetStationTileRandomBits (TileIndex t, byte random_bits)
static byte | GetStationTileRandomBits (TileIndex t)
static void | MakeStation (TileIndex t, Owner o, StationID sid, StationType st, byte section)
static void | MakeRailStation (TileIndex t, Owner o, StationID sid, Axis a, byte section, RailType rt)
static void | MakeRailWaypoint (TileIndex t, Owner o, StationID sid, Axis a, byte section, RailType rt)
static void | MakeRoadStop (TileIndex t, Owner o, StationID sid, RoadStopType rst, RoadTypes rt, DiagDirection d)
static void | MakeDriveThroughRoadStop (TileIndex t, Owner station, Owner road, Owner tram, StationID sid, RoadStopType rst, RoadTypes rt, Axis a)
static void | MakeAirport (TileIndex t, Owner o, StationID sid, byte section)
static void | MakeBuoy (TileIndex t, StationID sid, WaterClass wc)
static void | MakeDock (TileIndex t, Owner o, StationID sid, DiagDirection d, WaterClass wc)
static void | MakeOilrig (TileIndex t, StationID sid, WaterClass wc)

## Detailed Description

Maps accessors for stations.

Definition in file station_map.h.

## Function Documentation

static DiagDirection GetRoadStopDir | ( | TileIndex | t | ) | `[inline, static]`

Gets the direction the road stop entrance points towards.

Parameters:

  | t | the tile of the road stop

Precondition:
  IsRoadStopTile(t)

Returns:
  the direction of the entrance

Definition at line 269 of file station_map.h.

References GetStationGfx(), and IsRoadStopTile().

Referenced by CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::CanEnterNewTile(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::CanExitOldTile(), RoadStop::Entry::CheckIntegrity(), RoadStop::ClearDriveThrough(), CmdBuildRoad(), CmdRemoveRoadStop(), GetAnyRoadBits(), AIRoad::GetDriveThroughBackTile(), AIRoad::GetRoadStationFrontTile(), GetTileSingleEntry(), RoadStop::IsDriveThroughRoadStopContinuation(), RoadStop::MakeDriveThrough(), NeighbourHasReachableRoad(), RoadStop::Entry::Rebuild(), and RoadFindPathToDest().

static RoadStopType GetRoadStopType | ( | TileIndex | t | ) | `[inline, static]`

Get the road stop type of this tile.

Parameters:

  | t | the tile to query

Precondition:
  GetStationType(t) == STATION_TRUCK || GetStationType(t) == STATION_BUS

Returns:
  the road stop type

Definition at line 57 of file station_map.h.

References GetStationType(), ROADSTOP_BUS, and ROADSTOP_TRUCK.

Referenced by RoadStop::ClearDriveThrough(), CmdRemoveRoadStop(), RoadStop::MakeDriveThrough(), AIRoad::RemoveRoadStation(), and RoadFindPathToDest().

static uint8 GetStationAnimationFrame | ( | TileIndex | t | ) | `[inline, static]`

Get the station's animation frame of this tile.

Parameters:

  | t | the tile to query

Precondition:
  IsTileType(t, MP_STATION)

Returns:
  the station's animation frame

Definition at line 93 of file station_map.h.

References _me, IsTileType(), TileExtended::m7, and MP_STATION.

static StationGfx GetStationGfx | ( | TileIndex | t | ) | `[inline, static]`

Get the station graphics of this tile.

Parameters:

  | t | the tile to query

Precondition:
  IsTileType(t, MP_STATION)

Returns:
  the station graphics

Definition at line 69 of file station_map.h.

References _m, IsTileType(), Tile::m5, and MP_STATION.

Referenced by GetRoadStopDir(), IsDriveThroughStopTile(), and IsStandardRoadStopTile().

static StationID GetStationIndex | ( | TileIndex | t | ) | `[inline, static]`

Get Station ID from a tile.

Precondition:
  Tile must be part of the station

Parameters:

  | t | Tile to query station ID from

Returns:
  Station ID of the station at t

Definition at line 27 of file station_map.h.

References _m, IsTileType(), Tile::m2, and MP_STATION.

Referenced by AddNearbyStation(), AITileList_StationType::AITileList_StationType(), AIVehicleList_Depot::AIVehicleList_Depot(), CheckFlatLandBelow(), CheckNextTrainTile(), CmdBuildAircraft(), CmdReverseTrainDirection(), DisasterTick_Zeppeliner(), FindStationsNearby(), FreeTrainTrackReservation(), AIAirport::GetAirportType(), SpecializedStation< Waypoint, true >::GetByTile(), BaseStation::GetByTile(), Train::GetCurrentMaxSpeed(), GetStationAround(), AIStation::GetStationID(), AIWaypoint::GetWaypointID(), AIOrder::InsertOrder(), RoadStop::IsDriveThroughRoadStopContinuation(), IsValidTileForWaypoint(), LoadUnloadVehicle(), MoveBuoysToWaypoints(), ProcessOrders(), StationRect::ScanForStationTiles(), and Station::TileBelongsToRailStation().

static TrackBits GetStationReservationTrackBits | ( | TileIndex | t | ) | `[inline, static]`

Get the reserved track bits for a waypoint.

Precondition:
  HasStationRail(t)

Parameters:

  | t | the tile

Returns:
  reserved track bits

Definition at line 369 of file station_map.h.

References HasStationReservation(), and TRACK_BIT_NONE.

Referenced by GetReservedTrackbits().

static StationType GetStationType | ( | TileIndex | t | ) | `[inline, static]`

Get the station type of this tile.

Parameters:

  | t | the tile to query

Precondition:
  IsTileType(t, MP_STATION)

Returns:
  the station type

Definition at line 45 of file station_map.h.

References _m, GB(), IsTileType(), and MP_STATION.

Referenced by AITileList_StationType::AITileList_StationType(), FloodVehicles(), GetRoadStopType(), GetSmallMapRoutesPixels(), IsAirport(), IsBusStop(), RoadStop::IsDriveThroughRoadStopContinuation(), IsRailStation(), IsRailWaypoint(), and IsTruckStop().

static bool HasStationRail | ( | TileIndex | t | ) | `[inline, static]`

Has this station tile a rail? In other words, is this station tile a rail station or rail waypoint?

Parameters:

  | t | the tile to check

Precondition:
  IsTileType(t, MP_STATION)

Returns:
  true if and only if the tile has rail

Definition at line 160 of file station_map.h.

References IsRailStation(), and IsRailWaypoint().

Referenced by CmdConvertRail(), ExploreSegment(), GetRailTrackBitsUniversal(), GetReservedTrackbits(), GetTileRailType(), HasStationReservation(), HasStationTileRail(), SetRailStationReservation(), TryReserveRailTrack(), and UnreserveRailTrack().

static bool HasStationReservation | ( | TileIndex | t | ) | `[inline, static]`

Get the reservation state of the rail station.

Precondition:
  HasStationRail(t)

Parameters:

  | t | the station tile

Returns:
  reservation state

Definition at line 345 of file station_map.h.

References _m, HasBit(), and HasStationRail().

Referenced by CmdBuildRailStation(), CmdBuildRailWaypoint(), GetStationReservationTrackBits(), RemoveFromRailBaseStation(), RemoveRailStation(), and TryReserveRailTrack().

static bool HasStationTileRail | ( | TileIndex | t | ) | `[inline, static]`

Has this station tile a rail? In other words, is this station tile a rail station or rail waypoint?

Parameters:

  | t | the tile to check

Returns:
  true if and only if the tile is a station tile and has rail

Definition at line 171 of file station_map.h.

References HasStationRail(), IsTileType(), and MP_STATION.

Referenced by CanEnterTileOwnerCheck(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::FollowTileExit(), AIRail::IsRailTile(), RemoveFromRailBaseStation(), and SetDefaultRailGui().

static bool IsAirport | ( | TileIndex | t | ) | `[inline, static]`

Is this station tile an airport?

Parameters:

  | t | the tile to get the information from

Precondition:
  IsTileType(t, MP_STATION)

Returns:
  true if and only if the tile is an airport

Definition at line 182 of file station_map.h.

References GetStationType().

Referenced by AIVehicleList_Depot::AIVehicleList_Depot(), IsAirportTile(), AIAirport::IsAirportTile(), and IsHangar().

static bool IsAirportTile | ( | TileIndex | t | ) | `[inline, static]`

Is this tile a station tile and an airport tile?

Parameters:

  | t | the tile to get the information from

Returns:
  true if and only if the tile is an airport

Definition at line 192 of file station_map.h.

References IsAirport(), IsTileType(), and MP_STATION.

Referenced by DisasterTick_Zeppeliner(), and FloodVehicles().

static bool IsBusStop | ( | TileIndex | t | ) | `[inline, static]`

Is the station at t a bus stop?

Parameters:

  | t | Tile to check

Precondition:
  IsTileType(t, MP_STATION)

Returns:
  `true` if station is a bus stop, `false` otherwise

Definition at line 216 of file station_map.h.

References GetStationType().

Referenced by IsRoadStop().

static bool IsDriveThroughStopTile | ( | TileIndex | t | ) | `[inline, static]`

Is tile t a drive through road stop station?

Parameters:

  | t | Tile to check

Returns:
  `true` if the tile is a station tile and a drive through road stop

Definition at line 258 of file station_map.h.

References GetStationGfx(), and IsRoadStopTile().

Referenced by AfterLoadRoadStops(), CmdBuildRoad(), CmdRemoveRoadStop(), GetAnyRoadBits(), AIRoad::IsDriveThroughRoadStationTile(), RoadStop::IsDriveThroughRoadStopContinuation(), NeighbourHasReachableRoad(), RemoveRoad(), and RemoveRoadStop().

bool IsHangar | ( | TileIndex | t | ) |

Check whether the given tile is a hangar.

Parameters:

  | t | the tile to of whether it is a hangar.

Precondition:
  IsTileType(t, MP_STATION)

Returns:
  true if and only if the tile is a hangar.

Definition at line 58 of file station_cmd.cpp.

References Station::GetAirportSpec(), SpecializedStation< Station, false >::GetByTile(), Station::GetHangarTile(), IsAirport(), IsTileType(), MP_STATION, and AirportSpec::nof_depots.

Referenced by AIOrder::GetOrderDestination(), GetOrderTypeByTile(), and AIAirport::IsHangarTile().

static bool IsRailStation | ( | TileIndex | t | ) | `[inline, static]`

Is this station tile a rail station?

Parameters:

  | t | the tile to get the information from

Precondition:
  IsTileType(t, MP_STATION)

Returns:
  true if and only if the tile is a rail station

Definition at line 117 of file station_map.h.

References GetStationType().

Referenced by CheckFlatLandBelow(), HasStationRail(), and IsRailStationTile().

static bool IsRailStationTile | ( | TileIndex | t | ) | `[inline, static]`

Is this tile a station tile and a rail station?

Parameters:

  | t | the tile to get the information from

Returns:
  true if and only if the tile is a rail station

Definition at line 127 of file station_map.h.

References IsRailStation(), IsTileType(), and MP_STATION.

Referenced by CheckNextTrainTile(), ClearPathReservation(), CmdBuildRailStation(), FollowTrainReservation(), FreeTrainTrackReservation(), Train::GetCurrentMaxSpeed(), Station::GetPlatformLength(), GetTrainForReservation(), AIRail::IsRailStationTile(), NPFSaveTargetData(), RemoveFromRailBaseStation(), SetRailStationPlatformReservation(), and Station::TileBelongsToRailStation().

static bool IsRailWaypoint | ( | TileIndex | t | ) | `[inline, static]`

Is this station tile a rail waypoint?

Parameters:

  | t | the tile to get the information from

Precondition:
  IsTileType(t, MP_STATION)

Returns:
  true if and only if the tile is a rail waypoint

Definition at line 138 of file station_map.h.

References GetStationType().

Referenced by GetOrderTypeByTile(), HasStationRail(), IsRailWaypointTile(), and IsValidTileForWaypoint().

static bool IsRailWaypointTile | ( | TileIndex | t | ) | `[inline, static]`

Is this tile a station tile and a rail waypoint?

Parameters:

  | t | the tile to get the information from

Returns:
  true if and only if the tile is a rail waypoint

Definition at line 148 of file station_map.h.

References IsRailWaypoint(), IsTileType(), and MP_STATION.

Referenced by GetAxisForNewWaypoint(), and AIRail::IsRailWaypointTile().

static bool IsRoadStop | ( | TileIndex | t | ) | `[inline, static]`

Is the station at t a road station?

Parameters:

  | t | Tile to check

Precondition:
  IsTileType(t, MP_STATION)

Returns:
  `true` if station at the tile is a bus top or a truck stop, `false` otherwise

Definition at line 227 of file station_map.h.

References IsBusStop(), IsTileType(), IsTruckStop(), and MP_STATION.

Referenced by CmdRemoveRoadStop(), IsRoadStopTile(), and AIRoad::RemoveRoadStation().

static bool IsRoadStopTile | ( | TileIndex | t | ) | `[inline, static]`

Is tile t a road stop station?

Parameters:

  | t | Tile to check

Returns:
  `true` if the tile is a station tile and a road stop

Definition at line 238 of file station_map.h.

References IsRoadStop(), IsTileType(), and MP_STATION.

Referenced by CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::FollowTileExit(), GetAnyRoadBits(), GetRoadStopDir(), IsDriveThroughStopTile(), AIRoad::IsRoadStationTile(), and IsStandardRoadStopTile().

static bool IsStandardRoadStopTile | ( | TileIndex | t | ) | `[inline, static]`

Is tile t a standard (non-drive through) road stop station?

Parameters:

  | t | Tile to check

Returns:
  `true` if the tile is a station tile and a standard road stop

Definition at line 248 of file station_map.h.

References GetStationGfx(), and IsRoadStopTile().

Referenced by CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::CanEnterNewTile(), CanEnterTileOwnerCheck(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::CanExitOldTile(), RoadStop::Enter(), GetTileSingleEntry(), GetTownRoadBits(), RoadStop::Leave(), RoadFindPathToDest(), and StateGameLoop().

static bool IsTruckStop | ( | TileIndex | t | ) | `[inline, static]`

Is the station at t a truck stop?

Parameters:

  | t | Tile to check

Precondition:
  IsTileType(t, MP_STATION)

Returns:
  `true` if station is a truck stop, `false` otherwise

Definition at line 205 of file station_map.h.

References GetStationType().

Referenced by IsRoadStop(), and RemoveRoadStop().

static void SetRailStationReservation | ( | TileIndex | t,
|  | bool | b |
| ) |  |  | `[inline, static]`

Set the reservation state of the rail station.

Precondition:
  HasStationRail(t)

Parameters:

  | t | the station tile
  | b | the reservation state

Definition at line 357 of file station_map.h.

References _m, HasStationRail(), and SB().

Referenced by CmdBuildRailWaypoint(), MoveWaypointsToBaseStations(), NPFSaveTargetData(), SetRailStationPlatformReservation(), TryReserveRailTrack(), and UnreserveRailTrack().

static void SetStationAnimationFrame | ( | TileIndex | t,
|  | uint8 | frame |
| ) |  |  | `[inline, static]`

Set the station's animation frame of this tile.

Parameters:

  | t | the tile to update
  | frame | the new frame

Precondition:
  IsTileType(t, MP_STATION)

Definition at line 105 of file station_map.h.

References _me, IsTileType(), TileExtended::m7, and MP_STATION.

Referenced by CmdBuildRailStation().

static void SetStationGfx | ( | TileIndex | t,
|  | StationGfx | gfx |
| ) |  |  | `[inline, static]`

Set the station graphics of this tile.

Parameters:

  | t | the tile to update
  | gfx | the new graphics

Precondition:
  IsTileType(t, MP_STATION)

Definition at line 81 of file station_map.h.

References _m, IsTileType(), Tile::m5, and MP_STATION.

Referenced by CmdBuildRailStation().