OpenTTD Source  20241108-master-g80f628063a
tunnel_map.h File Reference

Map accessors for tunnels. More...

#include "rail_map.h"
#include "road_map.h"

Go to the source code of this file.

Functions

bool IsTunnel (Tile t)
 Is this a tunnel (entrance)? More...
 
bool IsTunnelTile (Tile t)
 Is this a tunnel (entrance)? More...
 
TileIndex GetOtherTunnelEnd (TileIndex)
 Gets the other end of the tunnel. More...
 
bool IsTunnelInWay (TileIndex, int z)
 Is there a tunnel in the way in any direction? More...
 
bool IsTunnelInWayDir (TileIndex tile, int z, DiagDirection dir)
 Is there a tunnel in the way in the given direction? More...
 
void MakeRoadTunnel (Tile t, Owner o, DiagDirection d, RoadType road_rt, RoadType tram_rt)
 Makes a road tunnel entrance. More...
 
void MakeRailTunnel (Tile t, Owner o, DiagDirection d, RailType r)
 Makes a rail tunnel entrance. More...
 

Detailed Description

Map accessors for tunnels.

Definition in file tunnel_map.h.

Function Documentation

◆ GetOtherTunnelEnd()

TileIndex GetOtherTunnelEnd ( TileIndex  tile)

Gets the other end of the tunnel.

Where a vehicle would reappear when it enters at the given tile.

Parameters
tilethe tile to search from.
Returns
the tile of the other end of the tunnel.

Definition at line 22 of file tunnel_map.cpp.

References GetTileZ(), GetTunnelBridgeDirection(), IsTunnelTile(), ReverseDiagDir(), and TileOffsByDiagDir().

Referenced by DoClearTunnel(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::FollowTileExit(), and GetOtherTunnelBridgeEnd().

◆ IsTunnel()

bool IsTunnel ( Tile  t)
inline

Is this a tunnel (entrance)?

Parameters
tthe tile that might be a tunnel
Precondition
IsTileType(t, MP_TUNNELBRIDGE)
Returns
true if and only if this tile is a tunnel (entrance)

Definition at line 23 of file tunnel_map.h.

References HasBit(), IsTileType(), Tile::m5(), and MP_TUNNELBRIDGE.

Referenced by AdjustTileh(), ClearTile_TunnelBridge(), DrawTile_TunnelBridge(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::FollowTileExit(), GetOtherTunnelBridgeEnd(), GetRailTrackBitsUniversal(), and IsTunnelTile().

◆ IsTunnelInWay()

bool IsTunnelInWay ( TileIndex  tile,
int  z 
)

Is there a tunnel in the way in any direction?

Parameters
tilethe tile to search from.
zthe 'z' to search on.
Returns
true if and only if there is a tunnel.

Definition at line 68 of file tunnel_map.cpp.

References DIAGDIR_NE, DIAGDIR_NW, DIAGDIR_SE, DIAGDIR_SW, IsTunnelInWayDir(), Map::MaxX(), Map::MaxY(), TileX(), and TileY().

Referenced by CmdTerraformLand().

◆ IsTunnelInWayDir()

bool IsTunnelInWayDir ( TileIndex  tile,
int  z,
DiagDirection  dir 
)

Is there a tunnel in the way in the given direction?

Parameters
tilethe tile to search from.
zthe 'z' to search on.
dirthe direction to start searching to.
Returns
true if and only if there is a tunnel.

Definition at line 48 of file tunnel_map.cpp.

References GetTileZ(), GetTunnelBridgeDirection(), IsTunnelTile(), IsValidTile(), and TileOffsByDiagDir().

Referenced by IsTunnelInWay().

◆ IsTunnelTile()

bool IsTunnelTile ( Tile  t)
inline

Is this a tunnel (entrance)?

Parameters
tthe tile that might be a tunnel
Returns
true if and only if this tile is a tunnel (entrance)

Definition at line 34 of file tunnel_map.h.

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

Referenced by GetOtherTunnelEnd(), IsTunnelInWayDir(), and CYapfCostBase::stSlopeCost().

◆ MakeRailTunnel()

void MakeRailTunnel ( Tile  t,
Owner  o,
DiagDirection  d,
RailType  r 
)
inline

Makes a rail tunnel entrance.

Parameters
tthe entrance of the tunnel
othe owner of the entrance
dthe direction facing out of the tunnel
rthe rail type used in the tunnel

Definition at line 73 of file tunnel_map.h.

References INVALID_ROADTYPE, Tile::m2(), Tile::m3(), Tile::m4(), Tile::m5(), Tile::m6(), Tile::m7(), Tile::m8(), MP_TUNNELBRIDGE, SB(), SetRailType(), SetRoadTypes(), SetTileOwner(), SetTileType(), and TRANSPORT_RAIL.

◆ MakeRoadTunnel()

void MakeRoadTunnel ( Tile  t,
Owner  o,
DiagDirection  d,
RoadType  road_rt,
RoadType  tram_rt 
)
inline

Makes a road tunnel entrance.

Parameters
tthe entrance of the tunnel
othe owner of the entrance
dthe direction facing out of the tunnel
rthe road type used in the tunnel

Definition at line 50 of file tunnel_map.h.

References Tile::m2(), Tile::m3(), Tile::m4(), Tile::m5(), Tile::m6(), Tile::m7(), Tile::m8(), MP_TUNNELBRIDGE, SB(), SetRoadOwner(), SetTileOwner(), SetTileType(), and TRANSPORT_ROAD.