OpenTTD Source  20240915-master-g3784a3d3d6
bridge_map.h File Reference
#include "rail_map.h"
#include "road_map.h"
#include "bridge.h"
#include "water_map.h"

Go to the source code of this file.

Functions

bool IsBridge (Tile t)
 Checks if this is a bridge, instead of a tunnel. More...
 
bool IsBridgeTile (Tile t)
 checks if there is a bridge on this tile More...
 
bool IsBridgeAbove (Tile t)
 checks if a bridge is set above the ground of this tile More...
 
BridgeType GetBridgeType (Tile t)
 Determines the type of bridge on a tile. More...
 
Axis GetBridgeAxis (Tile t)
 Get the axis of the bridge that goes over the tile. More...
 
TileIndex GetNorthernBridgeEnd (TileIndex t)
 Finds the northern end of a bridge starting at a middle tile. More...
 
TileIndex GetSouthernBridgeEnd (TileIndex t)
 Finds the southern end of a bridge starting at a middle tile. More...
 
TileIndex GetOtherBridgeEnd (TileIndex t)
 Starting at one bridge end finds the other bridge end. More...
 
int GetBridgeHeight (TileIndex tile)
 Get the height ('z') of a bridge. More...
 
int GetBridgePixelHeight (TileIndex tile)
 Get the height ('z') of a bridge in pixels. More...
 
void ClearSingleBridgeMiddle (Tile t, Axis a)
 Remove the bridge over the given axis. More...
 
void ClearBridgeMiddle (Tile t)
 Removes bridges from the given, that is bridges along the X and Y axis. More...
 
void SetBridgeMiddle (Tile t, Axis a)
 Set that there is a bridge over the given axis. More...
 
void MakeBridgeRamp (Tile t, Owner o, BridgeType bridgetype, DiagDirection d, TransportType tt)
 Generic part to make a bridge ramp for both roads and rails. More...
 
void MakeRoadBridgeRamp (Tile t, Owner o, Owner owner_road, Owner owner_tram, BridgeType bridgetype, DiagDirection d, RoadType road_rt, RoadType tram_rt)
 Make a bridge ramp for roads. More...
 
void MakeRailBridgeRamp (Tile t, Owner o, BridgeType bridgetype, DiagDirection d, RailType rt)
 Make a bridge ramp for rails. More...
 
void MakeAqueductBridgeRamp (Tile t, Owner o, DiagDirection d)
 Make a bridge ramp for aqueducts. More...
 

Detailed Description

Map accessor functions for bridges.

Definition in file bridge_map.h.

Function Documentation

◆ ClearBridgeMiddle()

void ClearBridgeMiddle ( Tile  t)
inline

Removes bridges from the given, that is bridges along the X and Y axis.

Parameters
tthe tile to remove the bridge from

Definition at line 103 of file bridge_map.h.

References AXIS_X, AXIS_Y, and ClearSingleBridgeMiddle().

◆ ClearSingleBridgeMiddle()

void ClearSingleBridgeMiddle ( Tile  t,
Axis  a 
)
inline

Remove the bridge over the given axis.

Parameters
tthe tile to remove the bridge from
athe axis of the bridge to remove

Definition at line 94 of file bridge_map.h.

References ClrBit(), and Tile::type().

Referenced by ClearBridgeMiddle().

◆ GetBridgeAxis()

Axis GetBridgeAxis ( Tile  t)
inline

Get the axis of the bridge that goes over the tile.

Not the axis or the ramp.

Parameters
tThe tile to analyze
Precondition
IsBridgeAbove(t)
Returns
the above mentioned axis

Definition at line 68 of file bridge_map.h.

References GB(), IsBridgeAbove(), and Tile::type().

Referenced by DrawBridgeMiddle(), DrawRailCatenaryOnBridge(), GetNorthernBridgeEnd(), GetSouthernBridgeEnd(), and IsRoadAllowedHere().

◆ GetBridgeHeight()

int GetBridgeHeight ( TileIndex  t)

Get the height ('z') of a bridge.

Parameters
tthe bridge ramp tile to get the bridge height from
Returns
the height of the bridge.

Definition at line 70 of file bridge_map.cpp.

References ApplyFoundationToSlope(), DiagDirToAxis(), GetBridgeFoundation(), GetTileSlopeZ(), and GetTunnelBridgeDirection().

Referenced by CmdTerraformLand(), DrawRoadTypeCatenary(), GetBridgePixelHeight(), and MarkBridgeDirty().

◆ GetBridgePixelHeight()

int GetBridgePixelHeight ( TileIndex  tile)
inline

Get the height ('z') of a bridge in pixels.

Parameters
tilethe bridge ramp tile to get the bridge height from
Returns
the height of the bridge in pixels

Definition at line 84 of file bridge_map.h.

References GetBridgeHeight(), and TILE_HEIGHT.

Referenced by FloodVehicles().

◆ GetBridgeType()

BridgeType GetBridgeType ( Tile  t)
inline

Determines the type of bridge on a tile.

Parameters
tThe tile to analyze
Precondition
IsBridgeTile(t)
Returns
The bridge type

Definition at line 56 of file bridge_map.h.

References GB(), IsBridgeTile(), and Tile::m6().

Referenced by DrawBridgeMiddle(), and CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::GetSpeedLimit().

◆ GetNorthernBridgeEnd()

TileIndex GetNorthernBridgeEnd ( TileIndex  t)

Finds the northern end of a bridge starting at a middle tile.

Parameters
tthe bridge tile to find the bridge ramp for

Definition at line 39 of file bridge_map.cpp.

References AxisToDiagDir(), GetBridgeAxis(), GetBridgeEnd(), and ReverseDiagDir().

Referenced by DrawBridgeMiddle(), and DrawRoadTypeCatenary().

◆ GetOtherBridgeEnd()

TileIndex GetOtherBridgeEnd ( TileIndex  tile)

Starting at one bridge end finds the other bridge end.

Parameters
tilethe bridge ramp tile to find the other bridge ramp for

Definition at line 59 of file bridge_map.cpp.

References GetBridgeEnd(), GetTunnelBridgeDirection(), and IsBridgeTile().

Referenced by DoClearBridge(), DrawRailCatenaryOnBridge(), FloodVehicles(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::FollowTileExit(), GetOtherTunnelBridgeEnd(), and GetRailTrackBitsUniversal().

◆ GetSouthernBridgeEnd()

TileIndex GetSouthernBridgeEnd ( TileIndex  t)

Finds the southern end of a bridge starting at a middle tile.

Parameters
tthe bridge tile to find the bridge ramp for

Definition at line 49 of file bridge_map.cpp.

References AxisToDiagDir(), GetBridgeAxis(), and GetBridgeEnd().

Referenced by CmdTerraformLand(), DrawBridgeMiddle(), and DrawRailCatenaryOnBridge().

◆ IsBridge()

bool IsBridge ( Tile  t)
inline

Checks if this is a bridge, instead of a tunnel.

Parameters
tThe tile to analyze
Precondition
IsTileType(t, MP_TUNNELBRIDGE)
Returns
true if the structure is a bridge one

Definition at line 24 of file bridge_map.h.

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

Referenced by ClearPathReservation(), CmdBuildLongRoad(), CmdConvertRail(), and IsBridgeTile().

◆ IsBridgeAbove()

bool IsBridgeAbove ( Tile  t)
inline

checks if a bridge is set above the ground of this tile

Parameters
tThe tile to analyze
Returns
true if a bridge is detected above

Definition at line 45 of file bridge_map.h.

References GB(), and Tile::type().

Referenced by CanBuildHouseHere(), CanPlantTreesOnTile(), CheckBuildableTile(), CheckIfIndustryTilesAreFree(), CmdBuildBuoy(), CmdBuildShipDepot(), CmdTerraformLand(), DrawBridgeMiddle(), DrawRoadTypeCatenary(), GetBridgeAxis(), IsRoadAllowedHere(), SearchTileForStatue(), and TryBuildTransmitter().

◆ IsBridgeTile()

◆ MakeAqueductBridgeRamp()

void MakeAqueductBridgeRamp ( Tile  t,
Owner  o,
DiagDirection  d 
)
inline

Make a bridge ramp for aqueducts.

Parameters
tthe tile to make a bridge ramp
othe new owner of the bridge ramp
dthe direction this ramp must be facing

Definition at line 181 of file bridge_map.h.

References MakeBridgeRamp(), and TRANSPORT_WATER.

◆ MakeBridgeRamp()

void MakeBridgeRamp ( Tile  t,
Owner  o,
BridgeType  bridgetype,
DiagDirection  d,
TransportType  tt 
)
inline

Generic part to make a bridge ramp for both roads and rails.

Parameters
tthe tile to make a bridge ramp
othe new owner of the bridge ramp
bridgetypethe type of bridge this bridge ramp belongs to
dthe direction this ramp must be facing
ttthe transport type of the bridge
Note
this function should not be called directly.

Definition at line 128 of file bridge_map.h.

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

Referenced by MakeAqueductBridgeRamp(), MakeRailBridgeRamp(), and MakeRoadBridgeRamp().

◆ MakeRailBridgeRamp()

void MakeRailBridgeRamp ( Tile  t,
Owner  o,
BridgeType  bridgetype,
DiagDirection  d,
RailType  rt 
)
inline

Make a bridge ramp for rails.

Parameters
tthe tile to make a bridge ramp
othe new owner of the bridge ramp
bridgetypethe type of bridge this bridge ramp belongs to
dthe direction this ramp must be facing
rtthe rail type of the bridge

Definition at line 169 of file bridge_map.h.

References MakeBridgeRamp(), SetRailType(), and TRANSPORT_RAIL.

◆ MakeRoadBridgeRamp()

void MakeRoadBridgeRamp ( Tile  t,
Owner  o,
Owner  owner_road,
Owner  owner_tram,
BridgeType  bridgetype,
DiagDirection  d,
RoadType  road_rt,
RoadType  tram_rt 
)
inline

Make a bridge ramp for roads.

Parameters
tthe tile to make a bridge ramp
othe new owner of the bridge ramp
owner_roadthe new owner of the road on the bridge
owner_tramthe new owner of the tram on the bridge
bridgetypethe type of bridge this bridge ramp belongs to
dthe direction this ramp must be facing
road_rtthe road type of the bridge
tram_rtthe tram type of the bridge

Definition at line 153 of file bridge_map.h.

References MakeBridgeRamp(), SetRoadOwner(), and TRANSPORT_ROAD.

◆ SetBridgeMiddle()

void SetBridgeMiddle ( Tile  t,
Axis  a 
)
inline

Set that there is a bridge over the given axis.

Parameters
tthe tile to add the bridge to
athe axis of the bridge to add

Definition at line 114 of file bridge_map.h.

References SetBit(), and Tile::type().