# tunnelbridge_map.h File Reference

Functions that have tunnels and bridges in common. More...

`#include "direction_func.h"`
`#include "core/bitmath_func.hpp"`
`#include "tile_map.h"`
`#include "bridge_map.h"`
`#include "tunnel_map.h"`
`#include "transport_type.h"`
`#include "track_func.h"`

Go to the source code of this file.

## Functions
static DiagDirection | GetTunnelBridgeDirection (TileIndex t)
| Get the direction pointing to the other end.
static TransportType | GetTunnelBridgeTransportType (TileIndex t)
| Tunnel: Get the transport type of the tunnel (road or rail) Bridge: Get the transport type of the bridge's ramp.
static bool | HasTunnelBridgeSnowOrDesert (TileIndex t)
| Tunnel: Is this tunnel entrance in a snowy or desert area? Bridge: Does the bridge ramp lie in a snow or desert area?
static void | SetTunnelBridgeSnowOrDesert (TileIndex t, bool snow_or_desert)
| Tunnel: Places this tunnel entrance in a snowy or desert area, or takes it out of there.
static TileIndex | GetOtherTunnelBridgeEnd (TileIndex t)
| Determines type of the wormhole and returns its other end.
static bool | GetTunnelBridgeReservation (TileIndex t)
| Get the reservation state of the rail tunnel/bridge.
static void | SetTunnelBridgeReservation (TileIndex t, bool b)
| Set the reservation state of the rail tunnel/bridge.
static TrackBits | GetRailTunnelBridgeReservation (TileIndex t)
| Get the reserved track bits for a rail tunnel/bridge.

## Detailed Description

Functions that have tunnels and bridges in common.

Definition in file tunnelbridge_map.h.

## Function Documentation

static TileIndex GetOtherTunnelBridgeEnd | ( | TileIndex | t | ) | `[inline, static]`

Determines type of the wormhole and returns its other end.

Parameters:

  | t | one end

Precondition:
  IsTileType(t, MP_TUNNELBRIDGE)

Returns:
  other end

Definition at line 78 of file tunnelbridge_map.h.

References GetOtherBridgeEnd(), GetOtherTunnelEnd(), IsTileType(), IsTunnel(), and MP_TUNNELBRIDGE.

Referenced by CheckTrainCollision(), ClearPathReservation(), CmdBuildRoad(), CmdConvertRail(), ExploreSegment(), GetTrainForReservation(), GrowTownInTile(), RemoveRoad(), UpdateSignalsInBuffer(), and YapfCheckReverseTrain().

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

Get the reserved track bits for a rail tunnel/bridge.

Precondition:
  IsTileType(t, MP_TUNNELBRIDGE) && GetTunnelBridgeTransportType(t) == TRANSPORT_RAIL

Parameters:

  | t | the tile

Returns:
  reserved track bits

Definition at line 117 of file tunnelbridge_map.h.

References DiagDirToDiagTrackBits(), GetTunnelBridgeDirection(), GetTunnelBridgeReservation(), and TRACK_BIT_NONE.

Referenced by GetReservedTrackbits(), and TryReserveRailTrack().

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

Get the direction pointing to the other end.

Tunnel: Get the direction facing into the tunnel Bridge: Get the direction pointing onto the bridge

Parameters:

  | t | The tile to analyze

Precondition:
  IsTileType(t, MP_TUNNELBRIDGE)

Returns:
  the above mentionned direction

Definition at line 26 of file tunnelbridge_map.h.

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

Referenced by AdjustTileh(), CFollowTrackT< Ttr_type_, T90deg_turns_allowed_, Tmask_reserved_tracks >::CanEnterNewTile(), CanEnterTile(), ClearPathReservation(), CmdBuildBridge(), CmdBuildLongRoad(), CmdBuildRoad(), CmdConvertRail(), CmdTurnRoadVeh(), CollectTrackbitsFromCrashedVehiclesEnum(), DeleteLastWagon(), DrawCatenaryOnTunnel(), DrawCatenaryRailway(), DrawTile_TunnelBridge(), ExploreSegment(), CFollowTrackT< Ttr_type_, T90deg_turns_allowed_, Tmask_reserved_tracks >::FollowTileExit(), GetAnyRoadBits(), GetBridgeEnd(), GetBridgeHeight(), GetOtherBridgeEnd(), GetOtherTunnelEnd(), GetRailTrackBitsUniversal(), GetRailTunnelBridgeReservation(), IsTunnelInWayDir(), IsWateredTile(), RemoveRoad(), TrainCanLeaveTile(), UpdateSignalsInBuffer(), and YapfCheckReverseTrain().

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

Get the reservation state of the rail tunnel/bridge.

Precondition:
  IsTileType(t, MP_TUNNELBRIDGE) && GetTunnelBridgeTransportType(t) == TRANSPORT_RAIL

Parameters:

  | t | the tile

Returns:
  reservation state

Definition at line 91 of file tunnelbridge_map.h.

References _m, GetTunnelBridgeTransportType(), HasBit(), IsTileType(), MP_TUNNELBRIDGE, and TRANSPORT_RAIL.

Referenced by CmdConvertRail(), DrawTile_TunnelBridge(), and GetRailTunnelBridgeReservation().

static TransportType GetTunnelBridgeTransportType | ( | TileIndex | t | ) | `[inline, static]`

Tunnel: Get the transport type of the tunnel (road or rail) Bridge: Get the transport type of the bridge's ramp.

Parameters:

  | t | The tile to analyze

Precondition:
  IsTileType(t, MP_TUNNELBRIDGE)

Returns:
  the transport type in the tunnel/bridge

Definition at line 39 of file tunnelbridge_map.h.

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

Referenced by CanEnterTileOwnerCheck(), CmdBuildBridge(), CmdBuildRoad(), CmdConvertRail(), DrawTile_TunnelBridge(), ExploreSegment(), GetAnyRoadBits(), GetReservedTrackbits(), GetTileRailType(), GetTunnelBridgeReservation(), GrowTownInTile(), IsWateredTile(), RemoveRoad(), SetDefaultRailGui(), SetTunnelBridgeReservation(), TryReserveRailTrack(), UnreserveRailTrack(), and UpdateSignalsInBuffer().

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

Tunnel: Is this tunnel entrance in a snowy or desert area? Bridge: Does the bridge ramp lie in a snow or desert area?

Parameters:

  | t | The tile to analyze

Precondition:
  IsTileType(t, MP_TUNNELBRIDGE)

Returns:
  true if and only if the tile is in a snowy/desert area

Definition at line 52 of file tunnelbridge_map.h.

References _me, HasBit(), IsTileType(), and MP_TUNNELBRIDGE.

Referenced by DrawTile_TunnelBridge().

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

Set the reservation state of the rail tunnel/bridge.

Precondition:
  IsTileType(t, MP_TUNNELBRIDGE) && GetTunnelBridgeTransportType(t) == TRANSPORT_RAIL

Parameters:

  | t | the tile
  | b | the reservation state

Definition at line 104 of file tunnelbridge_map.h.

References _m, GetTunnelBridgeTransportType(), IsTileType(), MP_TUNNELBRIDGE, SB(), and TRANSPORT_RAIL.

Referenced by ClearPathReservation(), TryReserveRailTrack(), and UnreserveRailTrack().

static void SetTunnelBridgeSnowOrDesert | ( | TileIndex | t,
|  | bool | snow_or_desert |
| ) |  |  | `[inline, static]`

Tunnel: Places this tunnel entrance in a snowy or desert area, or takes it out of there.

Bridge: Sets whether the bridge ramp lies in a snow or desert area.

Parameters:

  | t | the tunnel entrance / bridge ramp tile
  | snow_or_desert | is the entrance/ramp in snow or desert (true), when not in snow and not in desert false

Precondition:
  IsTileType(t, MP_TUNNELBRIDGE)

Definition at line 66 of file tunnelbridge_map.h.

References _me, IsTileType(), MP_TUNNELBRIDGE, and SB().