OpenTTD Source: src/road_cmd.cpp File Reference

OpenTTD Source 14.1

Data Structures | Typedefs | Functions | Variables
road_cmd.cpp File Reference
`#include "stdafx.h"`
`#include "road.h"`
`#include "road_internal.h"`
`#include "viewport_func.h"`
`#include "command_func.h"`
`#include "company_func.h"`
`#include "pathfinder/yapf/yapf_cache.h"`
`#include "depot_base.h"`
`#include "newgrf.h"`
`#include "autoslope.h"`
`#include "tunnelbridge_map.h"`
`#include "strings_func.h"`
`#include "vehicle_func.h"`
`#include "sound_func.h"`
`#include "tunnelbridge.h"`
`#include "cheat_type.h"`
`#include "effectvehicle_func.h"`
`#include "effectvehicle_base.h"`
`#include "elrail_func.h"`
`#include "roadveh.h"`
`#include "train.h"`
`#include "town.h"`
`#include "company_base.h"`
`#include "core/random_func.hpp"`
`#include "core/container_func.hpp"`
`#include "newgrf_debug.h"`
`#include "newgrf_railtype.h"`
`#include "newgrf_roadtype.h"`
`#include "timer/timer_game_calendar.h"`
`#include "genworld.h"`
`#include "company_gui.h"`
`#include "road_func.h"`
`#include "road_cmd.h"`
`#include "landscape_cmd.h"`
`#include "rail_cmd.h"`
`#include "table/strings.h"`
`#include "table/roadtypes.h"`
`#include "safeguards.h"`
`#include "table/road_land.h"`

Go to the source code of this file.

## Data Structures
struct | DrawRoadTileStruct

## Typedefs
typedef std::vector< RoadVehicle * > | RoadVehicleList
| Helper type for lists/vectors of road vehicles.

## Functions
void | ResetRoadTypes ()
| Reset all road type information to its default values.
void | ResolveRoadTypeGUISprites (RoadTypeInfo *rti)
static bool | CompareRoadTypes (const RoadType &first, const RoadType &second)
| Compare roadtypes based on their sorting order. More...
void | InitRoadTypes ()
| Resolve sprites of custom road types.
RoadType | AllocateRoadType (RoadTypeLabel label, RoadTramType rtt)
| Allocate a new road type label.
bool | RoadVehiclesAreBuilt ()
| Verify whether a road vehicle is available. More...
void | UpdateCompanyRoadInfrastructure (RoadType rt, Owner o, int count)
| Update road infrastructure counts for a company. More...
static Foundation | GetRoadFoundation (Slope tileh, RoadBits bits)
| Get the foundationtype of a RoadBits Slope combination. More...
CommandCost | CheckAllowRemoveRoad (TileIndex tile, RoadBits remove, Owner owner, RoadTramType rtt, DoCommandFlag flags, bool town_check)
| Is it allowed to remove the given road bits from the given tile? More...
static CommandCost | RemoveRoad (TileIndex tile, DoCommandFlag flags, RoadBits pieces, RoadTramType rtt, bool town_check)
| Delete a piece of road. More...
static CommandCost | CheckRoadSlope (Slope tileh, RoadBits *pieces, RoadBits existing, RoadBits other)
| Calculate the costs for roads on slopes Aside modify the RoadBits to fit on the slopes. More...
CommandCost | CmdBuildRoad (DoCommandFlag flags, TileIndex tile, RoadBits pieces, RoadType rt, DisallowedRoadDirections toggle_drd, TownID town_id)
| Build a piece of road. More...
static bool | CanConnectToRoad (TileIndex tile, RoadType rt, DiagDirection dir)
| Checks whether a road or tram connection can be found when building a new road or tram. More...
CommandCost | CmdBuildLongRoad (DoCommandFlag flags, TileIndex end_tile, TileIndex start_tile, RoadType rt, Axis axis, DisallowedRoadDirections drd, bool start_half, bool end_half, bool is_ai)
| Build a long piece of road. More...
std::tuple< CommandCost, Money > | CmdRemoveLongRoad (DoCommandFlag flags, TileIndex end_tile, TileIndex start_tile, RoadType rt, Axis axis, bool start_half, bool end_half)
| Remove a long piece of road. More...
CommandCost | CmdBuildRoadDepot (DoCommandFlag flags, TileIndex tile, RoadType rt, DiagDirection dir)
| Build a road depot. More...
static CommandCost | RemoveRoadDepot (TileIndex tile, DoCommandFlag flags)
static CommandCost | ClearTile_Road (TileIndex tile, DoCommandFlag flags)
static uint | GetRoadSpriteOffset (Slope slope, RoadBits bits)
| Get the sprite offset within a spritegroup. More...
static bool | DrawRoadAsSnowDesert (TileIndex tile, Roadside roadside)
| Should the road be drawn as a unpaved snow/desert road? By default, roads are always drawn as unpaved if they are on desert or above the snow line, but NewGRFs can override this for desert. More...
void | DrawRoadTypeCatenary (const TileInfo *ti, RoadType rt, RoadBits rb)
| Draws the catenary for the RoadType of the given tile. More...
void | DrawRoadCatenary (const TileInfo *ti)
| Draws the catenary for the given tile. More...
static void | DrawRoadDetail (SpriteID img, const TileInfo *ti, int dx, int dy, int h, bool transparent)
| Draws details on/around the road. More...
void | DrawRoadOverlays (const TileInfo *ti, PaletteID pal, const RoadTypeInfo *road_rti, const RoadTypeInfo *tram_rti, uint road_offset, uint tram_offset, bool draw_underlay)
| Draw road underlay and overlay sprites. More...
static SpriteID | GetRoadGroundSprite (const TileInfo *ti, Roadside roadside, const RoadTypeInfo *rti, uint offset, PaletteID *pal)
| Get ground sprite to draw for a road tile. More...
static void | DrawRoadBits (TileInfo *ti)
| Draw ground sprite and road pieces. More...
static void | DrawTile_Road (TileInfo *ti)
| Tile callback function for rendering a road tile to the screen.
void | DrawRoadDepotSprite (int x, int y, DiagDirection dir, RoadType rt)
| Draw the road depot sprite. More...
void | UpdateNearestTownForRoadTiles (bool invalidate)
| Updates cached nearest town for all road tiles. More...
static int | GetSlopePixelZ_Road (TileIndex tile, uint x, uint y, bool)
static Foundation | GetFoundation_Road (TileIndex tile, Slope tileh)
static void | TileLoop_Road (TileIndex tile)
static bool | ClickTile_Road (TileIndex tile)
static TrackStatus | GetTileTrackStatus_Road (TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side)
static void | GetTileDesc_Road (TileIndex tile, TileDesc *td)
static VehicleEnterTileStatus | VehicleEnter_Road (Vehicle *v, TileIndex tile, int, int)
static void | ChangeTileOwner_Road (TileIndex tile, Owner old_owner, Owner new_owner)
static CommandCost | TerraformTile_Road (TileIndex tile, DoCommandFlag flags, int z_new, Slope tileh_new)
static Vehicle * | UpdateRoadVehPowerProc (Vehicle *v, void *data)
| Update power of road vehicle under which is the roadtype being converted.
static bool | CanConvertUnownedRoadType (Owner owner, RoadTramType rtt)
| Checks the tile and returns whether the current player is allowed to convert the roadtype to another roadtype without taking ownership. More...
static void | ConvertRoadTypeOwner (TileIndex tile, uint num_pieces, Owner owner, RoadType from_type, RoadType to_type)
| Convert the ownership of the RoadType of the tile if applicable. More...
CommandCost | CmdConvertRoad (DoCommandFlag flags, TileIndex tile, TileIndex area_start, RoadType to_type)
| Convert one road subtype to another. More...

## Variables
RoadTypeInfo | _roadtypes [ROADTYPE_END]
std::vector< RoadType > | _sorted_roadtypes
RoadTypes | _roadtypes_hidden_mask
RoadTypes | _roadtypes_type
| Bitmap of road/tram types. More...
static const RoadBits | _invalid_tileh_slopes_road [2][15]
| Invalid RoadBits on slopes. More...
const byte | _road_sloped_sprites [14]
static const Roadside | _town_road_types [][2]
static const Roadside | _town_road_types_2 [][2]
static const TrackBits | _road_trackbits [16]
static const StringID | _road_tile_strings []
static const byte | _roadveh_enter_depot_dir [4]
| Given the direction the road depot is pointing, this is the direction the vehicle should be travelling in in order to enter the depot. More...
const TileTypeProcs | _tile_type_road_procs
| Tile callback functions for road tiles. More...

## Detailed Description

Commands related to road tiles.

Definition in file road_cmd.cpp.

## Function Documentation

## ◆ CanConnectToRoad()

static bool CanConnectToRoad | ( | TileIndex | tile,
|  | RoadType | rt,
|  | DiagDirection | dir
| ) |  |
| static

Checks whether a road or tram connection can be found when building a new road or tram.

Parameters

  tile | Tile at which the road being built will end.
  rt | Roadtype of the road being built.
  dir | Direction that the road is following.

Returns
  True if the next tile at dir direction is suitable for being connected directly by a second roadbit at the end of the road being built.

Definition at line 950 of file road_cmd.cpp.

References IsValidTile(), MayHaveRoad(), and TileOffsByDiagDir().

Referenced by CmdBuildLongRoad().

## ◆ CanConvertUnownedRoadType()

static bool CanConvertUnownedRoadType | ( | Owner | owner,
|  | RoadTramType | rtt
| ) |  |
| static

Checks the tile and returns whether the current player is allowed to convert the roadtype to another roadtype without taking ownership.

Parameters

  owner | the tile owner.
  rtt | Road/tram type.

Returns
  whether the road is convertible

Definition at line 2378 of file road_cmd.cpp.

References OWNER_NONE, and OWNER_TOWN.

## ◆ CheckAllowRemoveRoad()

CommandCost CheckAllowRemoveRoad | ( | TileIndex | tile,
|  | RoadBits | remove,
|  | Owner | owner,
|  | RoadTramType | rtt,
|  | DoCommandFlag | flags,
|  | bool | town_check
| ) |  |

Is it allowed to remove the given road bits from the given tile?

Parameters

  tile | the tile to remove the road from
  remove | the roadbits that are going to be removed
  owner | the actual owner of the roadbits of the tile
  rt | the road type to remove the bits from
  flags | command flags
  town_check | Shall the town rating checked/affected

Returns
  A succeeded command when it is allowed to remove the road bits, a failed command otherwise.

Definition at line 262 of file road_cmd.cpp.

## ◆ CheckRoadSlope()

static CommandCost CheckRoadSlope | ( | Slope | tileh,
|  | RoadBits * | pieces,
|  | RoadBits | existing,
|  | RoadBits | other
| ) |  |
| static

Calculate the costs for roads on slopes Aside modify the RoadBits to fit on the slopes.

Note
  The RoadBits are modified too!

Parameters

  tileh | The current slope
  pieces | The RoadBits we want to add
  existing | The existent RoadBits of the current type
  other | The other existent RoadBits

Returns
  The costs for these RoadBits on this slope

Definition at line 545 of file road_cmd.cpp.

References _invalid_tileh_slopes_road, _settings_game, ConstructionSettings::build_on_slopes, CLRBITS, CMD_ERROR, GameSettings::construction, EXPENSES_CONSTRUCTION, GetHighestSlopeCorner(), IsSteepSlope(), ROAD_NONE, SLOPE_FLAT, and SlopeWithOneCornerRaised().

## ◆ CmdBuildLongRoad()

CommandCost CmdBuildLongRoad | ( | DoCommandFlag | flags,
|  | TileIndex | end_tile,
|  | TileIndex | start_tile,
|  | RoadType | rt,
|  | Axis | axis,
|  | DisallowedRoadDirections | drd,
|  | bool | start_half,
|  | bool | end_half,
|  | bool | is_ai
| ) |  |

Build a long piece of road.

Parameters

  flags | operation to perform
  end_tile | end tile of drag
  start_tile | start tile of drag
  rt | road type
  axis | direction
  drd | set road direction
  start_half | start tile starts in the 2nd half of tile (p2 & 1). Only used if `is_ai` is set or if we are building a single tile
  end_half | end tile starts in the 2nd half of tile (p2 & 2). Only used if `is_ai` is set or if we are building a single tile
  is_ai | defines two different behaviors for this command: false = Build up to an obstacle. Do not build the first and last roadbits unless they can be connected to something, or if we are building a single tile true = Fail if an obstacle is found. Always take into account start_half and end_half. This behavior is used for scripts

Returns
  the cost of this operation or an error

Definition at line 979 of file road_cmd.cpp.

References CommandCost::AddCost(), AXIS_X, AXIS_Y, AxisToDiagDir(), AxisToRoadBits(), CanConnectToRoad(), CMD_ERROR, DiagDirToRoadBits(), DRD_BOTH, DRD_NORTHBOUND, DRD_SOUTHBOUND, EXPENSES_CONSTRUCTION, CommandCost::Failed(), CommandCost::GetErrorMessage(), GetTunnelBridgeDirection(), IsBridge(), IsTileType(), IsValidAxis(), IsValidDisallowedRoadDirections(), MP_TUNNELBRIDGE, ReverseDiagDir(), Map::Size(), TileOffsByDiagDir(), TileX(), TileY(), and ValParamRoadType().

## ◆ CmdBuildRoad()

CommandCost CmdBuildRoad | ( | DoCommandFlag | flags,
|  | TileIndex | tile,
|  | RoadBits | pieces,
|  | RoadType | rt,
|  | DisallowedRoadDirections | toggle_drd,
|  | TownID | town_id
| ) |  |

Build a piece of road.

Parameters

  flags | operation to perform
  tile | tile where to build road
  pieces | road pieces to build (RoadBits)
  rt | road type
  toggle_drd | disallowed directions to toggle
  town_id | the town that is building the road (0 if not applicable)

Returns
  the cost of this operation or an error

Definition at line 610 of file road_cmd.cpp.

References _current_company, CalcClosestTownFromTile(), CMD_ERROR, EXPENSES_CONSTRUCTION, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::IsValidID(), OWNER_DEITY, OWNER_TOWN, and ROAD_NONE.

## ◆ CmdBuildRoadDepot()

CommandCost CmdBuildRoadDepot | ( | DoCommandFlag | flags,
|  | TileIndex | tile,
|  | RoadType | rt,
|  | DiagDirection | dir
| ) |  |

Build a road depot.

Parameters

  tile | tile where to build the depot
  flags | operation to perform
  rt | road type
  dir | entrance direction

Returns
  the cost of this operation or an error

Todo:
  When checking for the tile slope, distinguish between "Flat land required" and "land sloped in wrong direction"

Definition at line 1149 of file road_cmd.cpp.

References _settings_game, CommandCost::AddCost(), ConstructionSettings::build_on_slopes, CanBuildDepotByTileh(), CMD_ERROR, GameSettings::construction, EXPENSES_CONSTRUCTION, GetTileSlope(), IsValidDiagDirection(), return_cmd_error, SLOPE_FLAT, and ValParamRoadType().

## ◆ CmdConvertRoad()

CommandCost CmdConvertRoad | ( | DoCommandFlag | flags,
|  | TileIndex | tile,
|  | TileIndex | area_start,
|  | RoadType | to_type
| ) |  |

Convert one road subtype to another.

Not meant to convert from road to tram.

Parameters

  flags | operation to perform
  tile | end tile of road conversion drag
  area_start | start tile of drag
  to_type | new roadtype to convert to.

Returns
  the cost of this operation or an error

Definition at line 2426 of file road_cmd.cpp.

References CMD_ERROR, Map::Size(), and ValParamRoadType().

## ◆ CmdRemoveLongRoad()

std::tuple<CommandCost, Money> CmdRemoveLongRoad | ( | DoCommandFlag | flags,
|  | TileIndex | end_tile,
|  | TileIndex | start_tile,
|  | RoadType | rt,
|  | Axis | axis,
|  | bool | start_half,
|  | bool | end_half
| ) |  |

Remove a long piece of road.

Parameters

  flags | operation to perform
  end_tile | end tile of drag
  start_tile | start tile of drag
  rt | road type
  axis | direction
  start_half | start tile starts in the 2nd half of tile
  end_half | end tile starts in the 2nd half of tile (p2 & 2)

Returns
  the cost of this operation or an error

Definition at line 1075 of file road_cmd.cpp.

References AXIS_X, AXIS_Y, AxisToRoadBits(), CMD_ERROR, EXPENSES_CONSTRUCTION, GetAvailableMoneyForCommand(), IsValidAxis(), ROAD_NE, ROAD_NW, ROAD_SE, ROAD_SW, Map::Size(), TileX(), TileY(), and ValParamRoadType().

## ◆ CompareRoadTypes()

static bool CompareRoadTypes | ( | const RoadType & | first,
|  | const RoadType & | second
| ) |  |
| static

Compare roadtypes based on their sorting order.

Parameters

  first | The roadtype to compare to.
  second | The roadtype to compare.

Returns
  True iff the first should be sorted before the second.

Definition at line 103 of file road_cmd.cpp.

## ◆ ConvertRoadTypeOwner()

static void ConvertRoadTypeOwner | ( | TileIndex | tile,
|  | uint | num_pieces,
|  | Owner | owner,
|  | RoadType | from_type,
|  | RoadType | to_type
| ) |  |
| static

Convert the ownership of the RoadType of the tile if applicable.

Parameters

  tile | the tile of which convert ownership
  num_pieces | the count of the roadbits to assign to the new owner
  owner | the current owner of the RoadType
  from_type | the old road type
  to_type | the new road type

Definition at line 2391 of file road_cmd.cpp.

References _current_company, MAX_COMPANIES, OWNER_NONE, and SetRoadOwner().

## ◆ DrawRoadAsSnowDesert()

static bool DrawRoadAsSnowDesert | ( | TileIndex | tile,
|  | Roadside | roadside
| ) |  |
| static

Should the road be drawn as a unpaved snow/desert road? By default, roads are always drawn as unpaved if they are on desert or above the snow line, but NewGRFs can override this for desert.

Parameters

  tile | The tile the road is on
  roadside | What sort of road this is

Returns
  True if snow/desert road sprites should be used.

Definition at line 1366 of file road_cmd.cpp.

References _settings_game, GameSettings::game_creation, IsOnSnow(), and GameCreationSettings::landscape.

Referenced by GetRoadGroundSprite().

## ◆ DrawRoadBits()

static void DrawRoadBits | ( | TileInfo * | ti | ) |
| static

Draw ground sprite and road pieces.

Parameters

  ti | TileInfo

Definition at line 1598 of file road_cmd.cpp.

References GetRoadBits(), and TileInfo::tile.

Referenced by DrawTile_Road().

## ◆ DrawRoadCatenary()

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

Draws the catenary for the given tile.

Parameters

  ti | information about the tile (slopes, height etc)

Definition at line 1451 of file road_cmd.cpp.

References GetRoadBits(), IsNormalRoad(), IsTileType(), MP_ROAD, ROAD_NONE, and TileInfo::tile.

## ◆ DrawRoadDepotSprite()

void DrawRoadDepotSprite | ( | int | x,
|  | int | y,
|  | DiagDirection | dir,
|  | RoadType | rt
| ) |  |

Draw the road depot sprite.

Parameters

  x | The x offset to draw at.
  y | The y offset to draw at.
  dir | The direction the depot must be facing.
  rt | The road type of the depot to draw.

Definition at line 1860 of file road_cmd.cpp.

## ◆ DrawRoadDetail()

static void DrawRoadDetail | ( | SpriteID | img,
|  | const TileInfo * | ti,
|  | int | dx,
|  | int | dy,
|  | int | h,
|  | bool | transparent
| ) |  |
| static

Draws details on/around the road.

Parameters

  img | the sprite to draw
  ti | the tile to draw on
  dx | the offset from the top of the BB of the tile
  dy | the offset from the top of the BB of the tile
  h | the height of the sprite to draw
  transparent | whether the sprite should be transparent (used for roadside trees)

Definition at line 1497 of file road_cmd.cpp.

## ◆ DrawRoadOverlays()

void DrawRoadOverlays | ( | const TileInfo * | ti,
|  | PaletteID | pal,
|  | const RoadTypeInfo * | road_rti,
|  | const RoadTypeInfo * | tram_rti,
|  | uint | road_offset,
|  | uint | tram_offset,
|  | bool | draw_underlay
| ) |  |

Draw road underlay and overlay sprites.

Parameters

  ti | TileInfo
  road_rti | Road road type information
  tram_rti | Tram road type information
  road_offset | Road sprite offset (based on road bits)
  tram_offset | Tram sprite offset (based on road bits)
  draw_underlay | Whether to draw underlays

Definition at line 1515 of file road_cmd.cpp.

References DrawGroundSprite(), GetCustomRoadSprite(), ROTSG_GROUND, and TileInfo::tile.

## ◆ DrawRoadTypeCatenary()

void DrawRoadTypeCatenary | ( | const TileInfo * | ti,
|  | RoadType | rt,
|  | RoadBits | rb
| ) |  |

Draws the catenary for the RoadType of the given tile.

Parameters

  ti | information about the tile (slopes, height etc)
  rt | road type to draw catenary for
  rb | the roadbits for the tram

< big number compared to sprite size

Definition at line 1379 of file road_cmd.cpp.

References CountBits(), DIAGDIR_BEGIN, DIAGDIR_END, DiagDirToRoadBits(), GetBridgeHeight(), GetNorthernBridgeEnd(), GetTileMaxZ(), IsBridgeAbove(), IsTransparencySet(), MayHaveRoad(), ROAD_NONE, TileInfo::tile, TileAddByDiagDir(), and TO_CATENARY.

## ◆ GetRoadFoundation()

static Foundation GetRoadFoundation | ( | Slope | tileh,
|  | RoadBits | bits
| ) |  |
| static

Get the foundationtype of a RoadBits Slope combination.

Parameters

  tileh | The Slope part
  bits | The RoadBits part

Returns
  The resulting Foundation

Definition at line 1301 of file road_cmd.cpp.

References _invalid_tileh_slopes_road, FOUNDATION_INCLINED_X, FOUNDATION_INCLINED_Y, FOUNDATION_LEVELED, FOUNDATION_NONE, GetHighestSlopeCorner(), IsSlopeWithOneCornerRaised(), IsSteepSlope(), ROAD_NONE, ROAD_X, SLOPE_FLAT, and SlopeWithOneCornerRaised().

## ◆ GetRoadGroundSprite()

static SpriteID GetRoadGroundSprite | ( | const TileInfo * | ti,
|  | Roadside | roadside,
|  | const RoadTypeInfo * | rti,
|  | uint | offset,
|  | PaletteID * | pal
| ) |  |
| static

Get ground sprite to draw for a road tile.

Parameters

  | ti | TileInof
  | roadside | Road side type
  | rti | Road type info
  | offset | Road sprite offset
  [out] | pal | Palette to draw.

Definition at line 1561 of file road_cmd.cpp.

References DrawRoadAsSnowDesert(), and TileInfo::tile.

## ◆ GetRoadSpriteOffset()

static uint GetRoadSpriteOffset | ( | Slope | slope,
|  | RoadBits | bits
| ) |  |
| static

Get the sprite offset within a spritegroup.

Parameters

  slope | Slope
  bits | Roadbits

Returns
  Offset for the sprite within the spritegroup.

Definition at line 1336 of file road_cmd.cpp.

References SLOPE_FLAT, SLOPE_NE, SLOPE_NW, SLOPE_SE, and SLOPE_SW.

## ◆ RemoveRoad()

static CommandCost RemoveRoad | ( | TileIndex | tile,
|  | DoCommandFlag | flags,
|  | RoadBits | pieces,
|  | RoadTramType | rtt,
|  | bool | town_check
| ) |  |
| static

Delete a piece of road.

Parameters

  tile | tile where to remove road from
  flags | operation to perform
  pieces | roadbits to remove
  rt | roadtype to remove
  town_check | should we check if the town allows removal?

Definition at line 325 of file road_cmd.cpp.

References MayHaveRoad(), and ROAD_NONE.

## ◆ RoadVehiclesAreBuilt()

bool RoadVehiclesAreBuilt | ( |  | ) |

Verify whether a road vehicle is available.

Returns
  `true` if at least one road vehicle is available, `false` if not

Definition at line 179 of file road_cmd.cpp.

References SpecializedVehicle< RoadVehicle, Type >::Iterate().

## ◆ UpdateCompanyRoadInfrastructure()

void UpdateCompanyRoadInfrastructure | ( | RoadType | rt,
|  | Owner | o,
|  | int | count
| ) |  |

Update road infrastructure counts for a company.

Parameters

  rt | Road type to update count of.
  o | Owner of road piece.
  count | Number of road pieces to adjust.

Definition at line 190 of file road_cmd.cpp.

References DirtyCompanyInfrastructureWindows(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::GetIfValid(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Company::infrastructure, INVALID_ROADTYPE, and CompanyInfrastructure::road.

## ◆ UpdateNearestTownForRoadTiles()

void UpdateNearestTownForRoadTiles | ( | bool | invalidate | ) |

Updates cached nearest town for all road tiles.

Parameters

  invalidate | are we just invalidating cached data?

Precondition
  invalidate == true implies _generating_world == true

Definition at line 1903 of file road_cmd.cpp.

References _generating_world, HasTownOwnedRoad(), IsRoadDepot(), IsTileType(), MP_ROAD, and Map::Size().

## Variable Documentation

## ◆ _invalid_tileh_slopes_road

const RoadBits _invalid_tileh_slopes_road[2][15]
| static

Invalid RoadBits on slopes.

Definition at line 202 of file road_cmd.cpp.

Referenced by CheckRoadSlope(), and GetRoadFoundation().

## ◆ _road_sloped_sprites

const byte _road_sloped_sprites[14]

Initial value:
= {
0, 0, 2, 0,
0, 1, 0, 0,
3, 0, 0, 0,
0, 0
}

Definition at line 1323 of file road_cmd.cpp.

## ◆ _road_tile_strings

const StringID _road_tile_strings[]
| static

Initial value:
= {
STR_LAI_ROAD_DESCRIPTION_ROAD,
STR_LAI_ROAD_DESCRIPTION_ROAD,
STR_LAI_ROAD_DESCRIPTION_ROAD,
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS,
STR_LAI_ROAD_DESCRIPTION_ROAD,
STR_LAI_ROAD_DESCRIPTION_TREE_LINED_ROAD,
STR_LAI_ROAD_DESCRIPTION_ROAD,
STR_LAI_ROAD_DESCRIPTION_ROAD,
}

Definition at line 2155 of file road_cmd.cpp.

## ◆ _road_trackbits

const TrackBits _road_trackbits[16]
| static

Initial value:
= {
TRACK_BIT_NONE,
TRACK_BIT_NONE,
TRACK_BIT_NONE,
TRACK_BIT_LEFT,
TRACK_BIT_NONE,
TRACK_BIT_Y,
TRACK_BIT_LOWER,
TRACK_BIT_LEFT | TRACK_BIT_LOWER | TRACK_BIT_Y,
TRACK_BIT_NONE,
TRACK_BIT_UPPER,
TRACK_BIT_X,
TRACK_BIT_LEFT | TRACK_BIT_UPPER | TRACK_BIT_X,
TRACK_BIT_RIGHT,
TRACK_BIT_RIGHT | TRACK_BIT_UPPER | TRACK_BIT_Y,
TRACK_BIT_RIGHT | TRACK_BIT_LOWER | TRACK_BIT_X,
TRACK_BIT_ALL,
}

Definition at line 2072 of file road_cmd.cpp.

## ◆ _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().

## ◆ _roadveh_enter_depot_dir

const byte _roadveh_enter_depot_dir[4]
| static

Initial value:
= {
TRACKDIR_X_SW, TRACKDIR_Y_NW, TRACKDIR_X_NE, TRACKDIR_Y_SE
}

Given the direction the road depot is pointing, this is the direction the vehicle should be travelling in in order to enter the depot.

Definition at line 2236 of file road_cmd.cpp.

## ◆ _tile_type_road_procs

const TileTypeProcs _tile_type_road_procs

Initial value:
= {
DrawTile_Road,
GetSlopePixelZ_Road,
ClearTile_Road,
nullptr,
GetTileDesc_Road,
GetTileTrackStatus_Road,
ClickTile_Road,
nullptr,
TileLoop_Road,
ChangeTileOwner_Road,
nullptr,
VehicleEnter_Road,
GetFoundation_Road,
TerraformTile_Road,
}

Tile callback functions for road tiles.

Definition at line 49 of file landscape.cpp.

## ◆ _town_road_types

const Roadside _town_road_types[][2]
| static

Initial value:
= {
{ ROADSIDE_GRASS, ROADSIDE_GRASS },
{ ROADSIDE_PAVED, ROADSIDE_PAVED },
{ ROADSIDE_PAVED, ROADSIDE_PAVED },
{ ROADSIDE_TREES, ROADSIDE_TREES },
{ ROADSIDE_STREET_LIGHTS, ROADSIDE_PAVED }
}

Definition at line 1944 of file road_cmd.cpp.

## ◆ _town_road_types_2

const Roadside _town_road_types_2[][2]
| static

Initial value:
= {
{ ROADSIDE_GRASS, ROADSIDE_GRASS },
{ ROADSIDE_PAVED, ROADSIDE_PAVED },
{ ROADSIDE_STREET_LIGHTS, ROADSIDE_PAVED },
{ ROADSIDE_STREET_LIGHTS, ROADSIDE_PAVED },
{ ROADSIDE_STREET_LIGHTS, ROADSIDE_PAVED }
}

Definition at line 1954 of file road_cmd.cpp.

TRACK_BIT_NONE
@ TRACK_BIT_NONE
No track.
Definition: track_type.h:36
TRACKDIR_Y_SE
@ TRACKDIR_Y_SE
Y-axis and direction to south-east.
Definition: track_type.h:70
TRACK_BIT_UPPER
@ TRACK_BIT_UPPER
Upper track.
Definition: track_type.h:39
TRACK_BIT_RIGHT
@ TRACK_BIT_RIGHT
Right track.
Definition: track_type.h:42
ROADSIDE_STREET_LIGHTS
@ ROADSIDE_STREET_LIGHTS
Road with street lights on paved sidewalks.
Definition: road_map.h:481
ROADSIDE_GRASS
@ ROADSIDE_GRASS
Road on grass.
Definition: road_map.h:479
ROADSIDE_PAVED
@ ROADSIDE_PAVED
Road with paved sidewalks.
Definition: road_map.h:480
TRACK_BIT_X
@ TRACK_BIT_X
X-axis track.
Definition: track_type.h:37
TRACKDIR_X_NE
@ TRACKDIR_X_NE
X-axis and direction to north-east.
Definition: track_type.h:69
TRACK_BIT_ALL
@ TRACK_BIT_ALL
All possible tracks.
Definition: track_type.h:50
ROADSIDE_TREES
@ ROADSIDE_TREES
Road with trees on paved sidewalks.
Definition: road_map.h:483
TRACK_BIT_LOWER
@ TRACK_BIT_LOWER
Lower track.
Definition: track_type.h:40
DrawTile_Road
static void DrawTile_Road(TileInfo *ti)
Tile callback function for rendering a road tile to the screen.
Definition: road_cmd.cpp:1689
TRACK_BIT_LEFT
@ TRACK_BIT_LEFT
Left track.
Definition: track_type.h:41
TRACKDIR_Y_NW
@ TRACKDIR_Y_NW
Y-axis and direction to north-west.
Definition: track_type.h:78
TRACK_BIT_Y
@ TRACK_BIT_Y
Y-axis track.
Definition: track_type.h:38
TRACKDIR_X_SW
@ TRACKDIR_X_SW
X-axis and direction to south-west.
Definition: track_type.h:77