OpenTTD Source: src/road.h File Reference

OpenTTD Source 14.0-beta3

Data Structures | Typedefs | Enumerations | Functions | Variables
road.h File Reference
`#include "road_type.h"`
`#include "gfx_type.h"`
`#include "core/bitmath_func.hpp"`
`#include "strings_type.h"`
`#include "timer/timer_game_calendar.h"`
`#include "core/enum_type.hpp"`
`#include "newgrf.h"`
`#include "economy_func.h"`

Go to the source code of this file.

## Data Structures
class | RoadTypeInfo

## Typedefs
typedef std::vector< RoadTypeLabel > | RoadTypeLabelList
| List of road type labels.

## Enumerations
enum | RoadTramType : bool { RTT_ROAD, RTT_TRAM }
enum | RoadTramTypes : uint8_t { RTTB_ROAD = 1 << RTT_ROAD, RTTB_TRAM = 1 << RTT_TRAM }
enum | RoadTypeFlag { ROTF_CATENARY = 0, ROTF_NO_LEVEL_CROSSING, ROTF_NO_HOUSES, ROTF_HIDDEN, ROTF_TOWN_BUILD }
| Roadtype flag bit numbers. More...
enum | RoadTypeFlags : uint8_t { ROTFB_NONE = 0, ROTFB_CATENARY = 1 << ROTF_CATENARY, ROTFB_NO_LEVEL_CROSSING = 1 << ROTF_NO_LEVEL_CROSSING, ROTFB_NO_HOUSES = 1 << ROTF_NO_HOUSES, ROTFB_HIDDEN = 1 << ROTF_HIDDEN, ROTFB_TOWN_BUILD = 1 << ROTF_TOWN_BUILD }
| Roadtype flags. More...
enum | RoadTypeSpriteGroup { ROTSG_CURSORS, ROTSG_OVERLAY, ROTSG_GROUND, ROTSG_TUNNEL, ROTSG_CATENARY_FRONT, ROTSG_CATENARY_BACK, ROTSG_BRIDGE, ROTSG_reserved2, ROTSG_DEPOT, ROTSG_reserved3, ROTSG_ROADSTOP, ROTSG_ONEWAY, ROTSG_END }
| Sprite groups for a roadtype. More...

## Functions
bool | RoadTypeIsRoad (RoadType roadtype)
bool | RoadTypeIsTram (RoadType roadtype)
RoadTramType | GetRoadTramType (RoadType roadtype)
RoadTramType | OtherRoadTramType (RoadTramType rtt)
const RoadTypeInfo * | GetRoadTypeInfo (RoadType roadtype)
| Returns a pointer to the Roadtype information for a given roadtype. More...
bool | HasPowerOnRoad (RoadType enginetype, RoadType tiletype)
| Checks if an engine of the given RoadType got power on a tile with a given RoadType. More...
Money | RoadBuildCost (RoadType roadtype)
| Returns the cost of building the specified roadtype. More...
Money | RoadClearCost (RoadType roadtype)
| Returns the cost of clearing the specified roadtype. More...
Money | RoadConvertCost (RoadType from, RoadType to)
| Calculates the cost of road conversion. More...
bool | RoadNoLevelCrossing (RoadType roadtype)
| Test if road disallows level crossings. More...
RoadType | GetRoadTypeByLabel (RoadTypeLabel label, bool allow_alternate_labels=true)
| Get the road type for a given label. More...
void | ResetRoadTypes ()
| Reset all road type information to its default values.
void | InitRoadTypes ()
| Resolve sprites of custom road types.
RoadType | AllocateRoadType (RoadTypeLabel label, RoadTramType rtt)
| Allocate a new road type label.
bool | HasAnyRoadTypesAvail (CompanyID company, RoadTramType rtt)
| Test if any buildable RoadType is available for a company. More...

## Variables
static const RoadTramType | _roadtramtypes [] = { RTT_ROAD, RTT_TRAM }
RoadTypes | _roadtypes_type
| Bitmap of road/tram types. More...
std::vector< RoadType > | _sorted_roadtypes
RoadTypes | _roadtypes_hidden_mask

## Detailed Description

Road specific functions.

Definition in file road.h.

## Enumeration Type Documentation

## ◆ RoadTypeFlag

enum RoadTypeFlag

Roadtype flag bit numbers.

Starts with RO instead of R because R is used for rails

Enumerator
ROTF_CATENARY | Bit number for adding catenary.
ROTF_NO_LEVEL_CROSSING | Bit number for disabling level crossing.
ROTF_NO_HOUSES | Bit number for setting this roadtype as not house friendly.
ROTF_HIDDEN | Bit number for hidden from construction.
ROTF_TOWN_BUILD | Bit number for allowing towns to build this roadtype.

Definition at line 37 of file road.h.

## ◆ RoadTypeFlags

enum RoadTypeFlags : uint8_t

Roadtype flags.

Starts with RO instead of R because R is used for rails

Enumerator
ROTFB_NONE | All flags cleared.
ROTFB_CATENARY | Value for drawing a catenary.
ROTFB_NO_LEVEL_CROSSING | Value for disabling a level crossing.
ROTFB_NO_HOUSES | Value for for setting this roadtype as not house friendly.
ROTFB_HIDDEN | Value for hidden from construction.
ROTFB_TOWN_BUILD | Value for allowing towns to build this roadtype.

Definition at line 46 of file road.h.

## ◆ RoadTypeSpriteGroup

enum RoadTypeSpriteGroup

Sprite groups for a roadtype.

Enumerator
ROTSG_CURSORS | Optional: Cursor and toolbar icon images.
ROTSG_OVERLAY | Optional: Images for overlaying track.
ROTSG_GROUND | Required: Main group of ground images.
ROTSG_TUNNEL | Optional: Ground images for tunnels.
ROTSG_CATENARY_FRONT | Optional: Catenary front.
ROTSG_CATENARY_BACK | Optional: Catenary back.
ROTSG_BRIDGE | Required: Bridge surface images.
ROTSG_reserved2 | Placeholder, if we need specific level crossing sprites.
ROTSG_DEPOT | Optional: Depot images.
ROTSG_reserved3 | Placeholder, if we add road fences (for highways).
ROTSG_ROADSTOP | Required: Bay stop surface.
ROTSG_ONEWAY | Optional: One-way indicator images.

Definition at line 59 of file road.h.

## Function Documentation

## ◆ GetRoadTypeByLabel()

RoadType GetRoadTypeByLabel | ( | RoadTypeLabel | label,
|  | bool | allow_alternate_labels
| ) |  |

Get the road type for a given label.

Parameters

  label | the roadtype label.
  allow_alternate_labels | Search in the alternate label lists as well.

Returns
  the roadtype.

Definition at line 254 of file road.cpp.

References RoadTypeInfo::alternate_labels, GetRoadTypeInfo(), INVALID_ROADTYPE, RoadTypeInfo::label, ROADTYPE_BEGIN, and ROADTYPE_END.

Referenced by RoadTypeResolverObject::GetFeature().

## ◆ GetRoadTypeInfo()

const RoadTypeInfo* GetRoadTypeInfo | ( | RoadType | roadtype | ) |
| inline

Returns a pointer to the Roadtype information for a given roadtype.

Parameters

  roadtype | the road type which the information is requested for

Returns
  The pointer to the RoadTypeInfo

Definition at line 227 of file road.h.

Referenced by AddDateIntroducedRoadTypes(), CheckAutoreplaceValidity(), CmdBuildRoadVehicle(), GetCompanyRoadTypes(), GetRoadTypeByLabel(), GetRoadTypes(), HasPowerOnRoad(), HasRoadCatenary(), IsEngineBuildable(), NewVehicleAvailable(), and RoadNoLevelCrossing().

## ◆ HasAnyRoadTypesAvail()

bool HasAnyRoadTypesAvail | ( | CompanyID | company,
|  | RoadTramType | rtt
| ) |  |

Test if any buildable RoadType is available for a company.

Parameters

  company | the company in question

Returns
  true if company has any RoadTypes available

Definition at line 143 of file road.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get().

Referenced by CanBuildVehicleInfrastructure().

## ◆ HasPowerOnRoad()

bool HasPowerOnRoad | ( | RoadType | enginetype,
|  | RoadType | tiletype
| ) |  |
| inline

Checks if an engine of the given RoadType got power on a tile with a given RoadType.

This would normally just be an equality check, but for electrified roads (which also support non-electric vehicles).

Returns
  Whether the engine got power on this tile.

Parameters

  enginetype | The RoadType of the engine we are considering.
  tiletype | The RoadType of the tile we are considering.

Definition at line 242 of file road.h.

References GetRoadTypeInfo(), and HasBit().

## ◆ RoadBuildCost()

Money RoadBuildCost | ( | RoadType | roadtype | ) |
| inline

Returns the cost of building the specified roadtype.

Parameters

  roadtype | The roadtype being built.

Returns
  The cost multiplier.

Definition at line 252 of file road.h.

References ROADTYPE_END.

Referenced by RoadConvertCost().

## ◆ RoadClearCost()

Money RoadClearCost | ( | RoadType | roadtype | ) |
| inline

Returns the cost of clearing the specified roadtype.

Parameters

  roadtype | The roadtype being removed.

Returns
  The cost.

Definition at line 263 of file road.h.

References ROADTYPE_END.

Referenced by RoadConvertCost().

## ◆ RoadConvertCost()

Money RoadConvertCost | ( | RoadType | from,
|  | RoadType | to
| ) |  |
| inline

Calculates the cost of road conversion.

Parameters

  from | The roadtype we are converting from
  to | The roadtype we are converting to

Returns
  Cost per RoadBit

Definition at line 281 of file road.h.

References RoadBuildCost(), and RoadClearCost().

## ◆ RoadNoLevelCrossing()

bool RoadNoLevelCrossing | ( | RoadType | roadtype | ) |
| inline

Test if road disallows level crossings.

Parameters

  roadtype | The roadtype we are testing

Returns
  True iff the roadtype disallows level crossings

Definition at line 295 of file road.h.

References GetRoadTypeInfo(), HasBit(), ROADTYPE_END, and ROTF_NO_LEVEL_CROSSING.

## Variable Documentation

## ◆ _roadtypes_type

RoadTypes _roadtypes_type

Bitmap of road/tram types.

Bit if set if a roadtype is tram.

Definition at line 62 of file road_cmd.cpp.

Referenced by ScenarioEditorToolbarWindow::OnPaint().