OpenTTD Source: src/bridge.h File Reference

OpenTTD Source 12.0-beta1

Data Structures | Typedefs | Enumerations | Functions | Variables
bridge.h File Reference
`#include "gfx_type.h"`
`#include "tile_cmd.h"`

Go to the source code of this file.

## Data Structures
struct | BridgeSpec
| Struct containing information about a single bridge type. More...

## Typedefs
typedef uint | BridgeType
| Bridge spec number.

## Enumerations
enum | BridgePieces { BRIDGE_PIECE_NORTH = 0, BRIDGE_PIECE_SOUTH, BRIDGE_PIECE_INNER_NORTH, BRIDGE_PIECE_INNER_SOUTH, BRIDGE_PIECE_MIDDLE_ODD, BRIDGE_PIECE_MIDDLE_EVEN, BRIDGE_PIECE_HEAD, BRIDGE_PIECE_INVALID }
| This enum is related to the definition of bridge pieces, which is used to determine the proper sprite table to use while drawing a given bridge part.

## Functions
Foundation | GetBridgeFoundation (Slope tileh, Axis axis)
| Get the foundation for a bridge. More...
bool | HasBridgeFlatRamp (Slope tileh, Axis axis)
| Determines if the track on a bridge ramp is flat or goes up/down. More...
static const BridgeSpec * | GetBridgeSpec (BridgeType i)
| Get the specification of a bridge type. More...
void | DrawBridgeMiddle (const TileInfo *ti)
| Draw the middle bits of a bridge. More...
CommandCost | CheckBridgeAvailability (BridgeType bridge_type, uint bridge_len, DoCommandFlag flags=DC_NONE)
| Is a bridge of the specified type and length available? More...
int | CalcBridgeLenCostFactor (int x)
| Calculate the price factor for building a long bridge. More...
void | ResetBridges ()
| Reset the data been eventually changed by the grf loaded.

## Variables
static const uint | MAX_BRIDGES = 13
| Maximal number of available bridge specs.
BridgeSpec | _bridge [MAX_BRIDGES]
| The specification of all bridges.

## Detailed Description

Header file for bridges

Definition in file bridge.h.

## Function Documentation

## ◆ CalcBridgeLenCostFactor()

int CalcBridgeLenCostFactor | ( | int | length | ) |

Calculate the price factor for building a long bridge.

Basically the cost delta is 1,1, 1, 2,2, 3,3,3, 4,4,4,4, 5,5,5,5,5, 6,6,6,6,6,6, 7,7,7,7,7,7,7, 8,8,8,8,8,8,8,8,

Parameters

  length | Length of the bridge.

Returns
  Price factor for the bridge.

Definition at line 105 of file tunnelbridge_cmd.cpp.

Referenced by ShowBuildBridgeWindow().

## ◆ CheckBridgeAvailability()

CommandCost CheckBridgeAvailability | ( | BridgeType | bridge_type,
|  | uint | bridge_len,
|  | DoCommandFlag | flags
| ) |  |

Is a bridge of the specified type and length available?

Parameters

  bridge_type | Wanted type of bridge.
  bridge_len | Wanted length of the bridge.
  flags | Type of operation.

Returns
  A succeeded (the requested bridge is available) or failed (it cannot be built) command.

Definition at line 197 of file tunnelbridge_cmd.cpp.

References _cur_year, _settings_game, BridgeSpec::avail_year, CMD_ERROR, GameSettings::construction, DC_QUERY_COST, GetBridgeSpec(), ConstructionSettings::max_bridge_length, MAX_BRIDGES, BridgeSpec::max_length, BridgeSpec::min_length, and return_cmd_error.

Referenced by ShowBuildBridgeWindow().

## ◆ DrawBridgeMiddle()

void DrawBridgeMiddle | ( | const TileInfo * | ti | ) |

Draw the middle bits of a bridge.

Parameters

  ti | Tile information of the tile to draw it on.

Definition at line 1540 of file tunnelbridge_cmd.cpp.

References RailtypeInfo::bridge_offset, CalcBridgePiece(), GetBridgeAxis(), GetBridgeSpec(), GetBridgeType(), GetNorthernBridgeEnd(), GetRailType(), GetRailTypeInfo(), GetSouthernBridgeEnd(), GetTunnelBridgeLength(), GetTunnelBridgeTransportType(), HasBit(), IsBridgeAbove(), TileInfo::tile, TRANSPORT_RAIL, and TRANSPORT_WATER.

## ◆ GetBridgeFoundation()

Foundation GetBridgeFoundation | ( | Slope | tileh,
|  | Axis | axis
| ) |  |

Get the foundation for a bridge.

Parameters

  tileh | The slope to build the bridge on.
  axis | The axis of the bridge entrance.

Returns
  The foundation required.

Definition at line 126 of file tunnelbridge_cmd.cpp.

References AXIS_X, AXIS_Y, FlatteningFoundation(), FOUNDATION_NONE, HasSlopeHighestCorner(), InclinedFoundation(), SLOPE_FLAT, SLOPE_NE, SLOPE_NW, SLOPE_SE, and SLOPE_SW.

Referenced by GetBridgeHeight(), and HasBridgeFlatRamp().

## ◆ GetBridgeSpec()

static const BridgeSpec* GetBridgeSpec | ( | BridgeType | i | ) |
| inlinestatic

Get the specification of a bridge type.

Parameters

  i | The type of bridge to get the specification for.

Returns
  The specification.

Definition at line 65 of file bridge.h.

References _bridge, and lengthof.

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

## ◆ HasBridgeFlatRamp()

bool HasBridgeFlatRamp | ( | Slope | tileh,
|  | Axis | axis
| ) |  |

Determines if the track on a bridge ramp is flat or goes up/down.

Parameters

  tileh | Slope of the tile under the bridge head
  axis | Orientation of bridge

Returns
  true iff the track is flat.

Definition at line 142 of file tunnelbridge_cmd.cpp.

References ApplyFoundationToSlope(), GetBridgeFoundation(), and SLOPE_FLAT.

Referenced by CYapfCostBase::stSlopeCost().