OpenTTD: src/road_cmd.cpp File Reference

OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

Data Structures | Functions | Variables
road_cmd.cpp File Reference

Commands related to road tiles. More...

`#include "stdafx.h"`
`#include "cmd_helper.h"`
`#include "road_internal.h"`
`#include "viewport_func.h"`
`#include "command_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 "town.h"`
`#include "company_base.h"`
`#include "core/random_func.hpp"`
`#include "newgrf_railtype.h"`
`#include "date_func.h"`
`#include "genworld.h"`
`#include "company_gui.h"`
`#include "table/strings.h"`
`#include "safeguards.h"`
`#include "table/road_land.h"`

Go to the source code of this file.

## Data Structures
struct | DrawRoadTileStruct

## Functions
bool | RoadVehiclesAreBuilt ()
| Verify whether a road vehicle is available.
static Foundation | GetRoadFoundation (Slope tileh, RoadBits bits)
| Get the foundationtype of a RoadBits Slope combination.
CommandCost | CheckAllowRemoveRoad (TileIndex tile, RoadBits remove, Owner owner, RoadType rt, DoCommandFlag flags, bool town_check)
| Is it allowed to remove the given road bits from the given tile?
static CommandCost | RemoveRoad (TileIndex tile, DoCommandFlag flags, RoadBits pieces, RoadType rt, bool crossing_check, bool town_check=true)
| Delete a piece of road.
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.
CommandCost | CmdBuildRoad (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
| Build a piece of road.
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.
CommandCost | CmdBuildLongRoad (TileIndex start_tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
| Build a long piece of road.
CommandCost | CmdRemoveLongRoad (TileIndex start_tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
| Remove a long piece of road.
CommandCost | CmdBuildRoadDepot (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
| Build a road depot.
static CommandCost | RemoveRoadDepot (TileIndex tile, DoCommandFlag flags)
static CommandCost | ClearTile_Road (TileIndex tile, DoCommandFlag flags)
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.
void | DrawTramCatenary (const TileInfo *ti, RoadBits tram)
| Draws the catenary for the given tile.
static void | DrawRoadDetail (SpriteID img, const TileInfo *ti, int dx, int dy, int h)
| Draws details on/around the road.
static void | DrawRoadBits (TileInfo *ti)
| Draw ground sprite and road pieces.
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.
void | UpdateNearestTownForRoadTiles (bool invalidate)
| Updates cached nearest town for all road tiles.
static int | GetSlopePixelZ_Road (TileIndex tile, uint x, uint y)
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 x, int y)
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)

## Variables
static const RoadBits | _invalid_tileh_slopes_road [2][15]
| Invalid RoadBits on slopes.
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.
const TileTypeProcs | _tile_type_road_procs
| Tile callback functions for road tiles.

## Detailed Description

Commands related to road tiles.

Definition in file road_cmd.cpp.

## Function Documentation

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 795 of file road_cmd.cpp.

References DiagDirToRoadBits(), GetAnyRoadBits(), ReverseDiagDir(), and TileOffsByDiagDir().

Referenced by CmdBuildLongRoad().

CommandCost CheckAllowRemoveRoad | ( | TileIndex | tile,
|  | RoadBits | remove,
|  | Owner | owner,
|  | RoadType | rt,
|  | 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 116 of file road_cmd.cpp.

References _cheats, _current_company, _settings_game, ChangeTownRating(), CheckforTownRating(), CheckOwnership(), ClosestTownFromTile(), GameSettings::construction, ConstructionSettings::extra_dynamite, CommandCost::Failed(), GetAnyRoadBits(), 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(), KillFirstBit(), Cheats::magic_bulldozer, OWNER_NONE, OWNER_TOWN, OWNER_WATER, RATING_ROAD_DOWN_STEP_EDGE, RATING_ROAD_DOWN_STEP_INNER, RATING_ROAD_MINIMUM, return_cmd_error, ROAD_NE, ROAD_NONE, ROAD_NW, ROAD_REMOVE, ROAD_SE, ROAD_SW, ROADTYPE_ROAD, SetDParam(), TILE_ADDXY, and Cheat::value.

Referenced by CanRemoveRoadWithStop(), and RemoveRoad().

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 415 of file road_cmd.cpp.

References _invalid_tileh_slopes_road, _settings_game, ConstructionSettings::build_on_slopes, CLRBITS, CMD_ERROR, GameSettings::construction, EXPENSES_CONSTRUCTION, FOUNDATION_NONE, GetHighestSlopeCorner(), GetRoadFoundation(), HasExactlyOneBit(), IsSlopeWithOneCornerRaised(), IsSteepSlope(), IsStraightRoad(), MirrorRoadBits(), ROAD_NONE, SLOPE_FLAT, and SlopeWithOneCornerRaised().

Referenced by CmdBuildRoad().

CommandCost CmdBuildLongRoad | ( | TileIndex | start_tile,
|  | DoCommandFlag | flags,
|  | uint32 | p1,
|  | uint32 | p2,
|  | const char * | text
| ) |  |

Build a long piece of road.

Parameters

  start_tile | start tile of drag (the building cost will appear over this tile)
  flags | operation to perform
  p1 | end tile of drag
  p2 | various bitstuffed elements p2 = (bit 0) - start tile starts in the 2nd half of tile (p2 & 1). Only used if bit 6 is set or if we are building a single tile p2 = (bit 1) - end tile starts in the 2nd half of tile (p2 & 2). Only used if bit 6 is set or if we are building a single tile p2 = (bit 2) - direction: 0 = along x-axis, 1 = along y-axis (p2 & 4) p2 = (bit 3 + 4) - road type p2 = (bit 5) - set road direction p2 = (bit 6) - defines two different behaviors for this command: 0 = 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 1 = Fail if an obstacle is found. Always take into account bit 0 and 1. This behavior is used for scripts
  text | unused

Returns
  the cost of this operation or an error

Definition at line 818 of file road_cmd.cpp.

References CommandCost::AddCost(), AXIS_X, AXIS_Y, AxisToDiagDir(), AxisToRoadBits(), CanConnectToRoad(), CMD_BUILD_ROAD, CMD_ERROR, DiagDirToRoadBits(), DoCommand(), DRD_BOTH, DRD_NONE, DRD_NORTHBOUND, DRD_SOUTHBOUND, EXPENSES_CONSTRUCTION, CommandCost::Failed(), CommandCost::GetErrorMessage(), GetTunnelBridgeDirection(), HasBit(), IsBridge(), IsTileType(), IsValidRoadType(), MapSize(), MP_TUNNELBRIDGE, ReverseDiagDir(), TileOffsByDiagDir(), TileX(), TileY(), and ValParamRoadType().

CommandCost CmdBuildRoad | ( | TileIndex | tile,
|  | DoCommandFlag | flags,
|  | uint32 | p1,
|  | uint32 | p2,
|  | const char * | text
| ) |  |

Build a piece of road.

Parameters

  tile | tile where to build road
  flags | operation to perform
  p1 | bit 0..3 road pieces to build (RoadBits) bit 4..5 road type bit 6..7 disallowed directions to toggle
  p2 | the town that is building the road (0 if not applicable)
  text | unused

Returns
  the cost of this operation or an error

Definition at line 481 of file road_cmd.cpp.

References _current_company, _settings_game, CommandCost::AddCost(), AXIS_X, AXIS_Y, AxisToRoadBits(), AxisToTrack(), ConstructionSettings::build_on_slopes, Town::cache, CalcClosestTownFromTile(), CheckOwnership(), CheckRoadSlope(), CMD_ERROR, CMD_LANDSCAPE_CLEAR, ComplementRoadBits(), GameSettings::construction, CountBits(), DC_EXEC, DiagDirToAxis(), DiagDirToRoadBits(), DirtyCompanyInfrastructureWindows(), DistanceSquare(), DoCommand(), DRD_NONE, EnsureNoVehicleOnGround(), EXPENSES_CONSTRUCTION, CommandCost::Failed(), GetAnyRoadBits(), CommandCost::GetCost(), GetCrossingRoadBits(), GetDisallowedRoadDirections(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::GetIfValid(), GetOtherRoadBits(), GetOtherTunnelBridgeEnd(), GetRailReservationTrackBits(), GetRailTileType(), GetRailType(), GetRoadBits(), GetRoadFoundation(), GetRoadOwner(), GetRoadStopDir(), GetRoadTileType(), GetRoadTypes(), GetTileOwner(), GetTileSlope(), GetTileType(), GetTrackBits(), GetTunnelBridgeDirection(), GetTunnelBridgeLength(), GetTunnelBridgeTransportType(), HasBit(), HasRoadWorks(), HasTileRoadType(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Company::infrastructure, IsBridge(), IsDriveThroughStopTile(), IsNormalRoad(), IsNormalRoadTile(), IsSteepSlope(), IsStraightRoad(), IsTileType(), 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(), IsValidRoadType(), LEVELCROSSING_TRACKBIT_FACTOR, MakeRoadCrossing(), MakeRoadNormal(), MarkBridgeDirty(), MarkTileDirtyByTile(), MirrorRoadBits(), MP_RAILWAY, MP_ROAD, MP_STATION, MP_TUNNELBRIDGE, OtherAxis(), Window::owner, OWNER_DEITY, OWNER_NONE, OWNER_TOWN, CompanyInfrastructure::rail, RAIL_TILE_NORMAL, RailNoLevelCrossings(), return_cmd_error, CompanyInfrastructure::road, ROAD_NONE, ROAD_TILE_CROSSING, ROAD_TILE_DEPOT, ROAD_TILE_NORMAL, ROAD_X, ROAD_Y, ROADTYPE_END, ROADTYPE_ROAD, ROADTYPE_TRAM, ROADTYPES_ROAD, RoadTypeToRoadTypes(), SetCrossingReservation(), SetDisallowedRoadDirections(), SetRoadBits(), SetRoadOwner(), SetRoadTypes(), SetTownIndex(), TownCache::squared_town_zone_radius, TRACK_BIT_X, TRACK_BIT_Y, TRANSPORT_ROAD, TUNNELBRIDGE_TRACKBIT_FACTOR, TunnelBridgeIsFree(), UpdateLevelCrossing(), VALID_LEVEL_CROSSING_SLOPES, ValParamRoadType(), Town::xy, and YapfNotifyTrackLayoutChange().

CommandCost CmdBuildRoadDepot | ( | TileIndex | tile,
|  | DoCommandFlag | flags,
|  | uint32 | p1,
|  | uint32 | p2,
|  | const char * | text
| ) |  |

Build a road depot.

Parameters

  tile | tile where to build the depot
  flags | operation to perform
  p1 | bit 0..1 entrance direction (DiagDirection) bit 2..3 road type
  p2 | unused
  text | unused

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 998 of file road_cmd.cpp.

References _current_company, _date, _settings_game, CommandCost::AddCost(), Depot::build_date, ConstructionSettings::build_on_slopes, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_depot_pool >::CanAllocateItem(), CanBuildDepotByTileh(), CMD_ERROR, CMD_LANDSCAPE_CLEAR, GameSettings::construction, DC_EXEC, DirtyCompanyInfrastructureWindows(), DoCommand(), CommandCost::Failed(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), GetTileSlope(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, IsBridgeAbove(), IsValidRoadType(), MakeDefaultName(), MakeRoadDepot(), MarkTileDirtyByTile(), return_cmd_error, SLOPE_FLAT, and ValParamRoadType().

CommandCost CmdRemoveLongRoad | ( | TileIndex | start_tile,
|  | DoCommandFlag | flags,
|  | uint32 | p1,
|  | uint32 | p2,
|  | const char * | text
| ) |  |

Remove a long piece of road.

Parameters

  start_tile | start tile of drag
  flags | operation to perform
  p1 | end tile of drag
  p2 | various bitstuffed elements p2 = (bit 0) - start tile starts in the 2nd half of tile (p2 & 1) p2 = (bit 1) - end tile starts in the 2nd half of tile (p2 & 2) p2 = (bit 2) - direction: 0 = along x-axis, 1 = along y-axis (p2 & 4) p2 = (bit 3 + 4) - road type
  text | unused

Returns
  the cost of this operation or an error

Definition at line 923 of file road_cmd.cpp.

References CommandCost::AddCost(), AXIS_X, AXIS_Y, AxisToRoadBits(), CMD_ERROR, CMD_REMOVE_LONG_ROAD, DC_EXEC, DoCommand(), EXPENSES_CONSTRUCTION, GetAvailableMoneyForCommand(), CommandCost::GetCost(), CommandCost::GetErrorMessage(), HasBit(), IsInsideMM(), IsValidRoadType(), MapSize(), RemoveRoad(), ROAD_NE, ROAD_NW, ROAD_SE, ROAD_SW, CommandCost::Succeeded(), TileDiffXY(), TileX(), and TileY().

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 1167 of file road_cmd.cpp.

References _settings_game, GameSettings::game_creation, HasGrfMiscBit(), IsOnSnow(), GameCreationSettings::landscape, ROADSIDE_BARREN, ROADSIDE_GRASS, and ROADSIDE_GRASS_ROAD_WORKS.

Referenced by DrawRoadBits(), and DrawTile_Road().

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

Draw ground sprite and road pieces.

Parameters

  ti | TileInfo

Definition at line 1227 of file road_cmd.cpp.

References _display_opt, DO_FULL_DETAIL, DrawFoundation(), DrawGroundSprite(), DrawGroundSpriteAt(), DrawRoadAsSnowDesert(), DrawRoadDetail(), DrawTramCatenary(), DRD_NONE, GetBridgeHeight(), GetDisallowedRoadDirections(), GetNorthernBridgeEnd(), GetPartialPixelZ(), GetRoadBits(), GetRoadFoundation(), GetRoadside(), GetTileMaxZ(), HasAtMostOneBit(), HasBit(), HasRoadWorks(), IsBridgeAbove(), PALETTE_TO_BARE_LAND, ROAD_NONE, ROAD_X, ROADSIDE_BARREN, ROADSIDE_GRASS, ROADSIDE_GRASS_ROAD_WORKS, ROADSIDE_STREET_LIGHTS, ROADSIDE_TREES, ROADTYPE_ROAD, ROADTYPE_TRAM, SLOPE_FLAT, SPR_ONEWAY_BASE, TileInfo::tile, TileInfo::tileh, and ZOOM_LVL_DETAIL.

Referenced by DrawTile_Road().

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 1410 of file road_cmd.cpp.

References _local_company, DrawOrigTileSeqInGUI(), DrawSprite(), DrawTileSprites::ground, ROADTYPE_TRAM, and PalSpriteID::sprite.

Referenced by BuildRoadDepotWindow::DrawWidget().

static void DrawRoadDetail | ( | SpriteID | img,
|  | const TileInfo * | ti,
|  | int | dx,
|  | int | dy,
|  | int | h
| ) |  |
| 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

Definition at line 1214 of file road_cmd.cpp.

References AddSortableSpriteToDraw(), SLOPE_FLAT, TileInfo::tileh, TileInfo::x, TileInfo::y, and TileInfo::z.

Referenced by DrawRoadBits().

void DrawTramCatenary | ( | const TileInfo * | ti,
|  | RoadBits | tram
| ) |  |

Draws the catenary for the given tile.

Parameters

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

Definition at line 1179 of file road_cmd.cpp.

References AddSortableSpriteToDraw(), BB_HEIGHT_UNDER_BRIDGE, GetBridgeHeight(), GetNorthernBridgeEnd(), GetTileMaxZ(), IsBridgeAbove(), IsInvisibilitySet(), IsTransparencySet(), SLOPE_FLAT, SPR_TRAMWAY_BASE, TileInfo::tile, TILE_HEIGHT, TileInfo::tileh, TO_CATENARY, TileInfo::x, TileInfo::y, and TileInfo::z.

Referenced by DrawRoadBits(), and DrawTile_Road().

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 1129 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().

Referenced by CheckRoadSlope(), CmdBuildRoad(), DrawRoadBits(), and RemoveRoad().

static CommandCost RemoveRoad | ( | TileIndex | tile,
|  | DoCommandFlag | flags,
|  | RoadBits | pieces,
|  | RoadType | rt,
|  | bool | crossing_check,
|  | bool | town_check = `true`
| ) |  |
| 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
  crossing_check | should we check if there is a tram track when we are removing road from crossing?
  town_check | should we check if the town allows removal?

Definition at line 180 of file road_cmd.cpp.

References _current_company, _invalid_tileh_slopes_road, _settings_game, CommandCost::AddCost(), AxisToRoadBits(), ConstructionSettings::build_on_slopes, CalcClosestTownFromTile(), CheckAllowRemoveRoad(), CMD_ERROR, CMD_LANDSCAPE_CLEAR, ComplementRoadBits(), ComplementRoadTypes(), GameSettings::construction, CountBits(), DC_EXEC, DiagDirToAxis(), DirtyCompanyInfrastructureWindows(), DoCommand(), DRD_NONE, EnsureNoVehicleOnGround(), EXPENSES_CONSTRUCTION, CommandCost::Failed(), FOR_ALL_EFFECTVEHICLES, FOUNDATION_NONE, GetCrossingRailBits(), GetCrossingRailTrack(), GetCrossingRoadBits(), GetHighestSlopeCorner(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::GetIfValid(), GetOtherRoadBits(), GetOtherTunnelBridgeEnd(), GetRailType(), GetRoadBits(), GetRoadFoundation(), GetRoadOwner(), GetRoadTileType(), GetRoadTypes(), GetTileOwner(), GetTileSlope(), GetTileType(), GetTunnelBridgeDirection(), GetTunnelBridgeLength(), GetTunnelBridgeTransportType(), HasBit(), HasCrossingReservation(), HasRoadWorks(), HasTileRoadType(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Company::infrastructure, IsBridge(), IsDriveThroughStopTile(), IsRoadOwner(), IsSteepSlope(), IsStraightRoad(), IsTileType(), LEVELCROSSING_TRACKBIT_FACTOR, MarkBridgeDirty(), MarkTileDirtyByTile(), MirrorRoadBits(), MP_ROAD, MP_STATION, MP_TUNNELBRIDGE, OWNER_TOWN, OWNER_WATER, CompanyInfrastructure::rail, return_cmd_error, CompanyInfrastructure::road, ROAD_NONE, ROAD_TILE_CROSSING, ROAD_TILE_DEPOT, ROAD_TILE_NORMAL, ROADTYPE_ROAD, ROADTYPE_TRAM, ROADTYPES_NONE, RoadTypeToRoadTypes(), SetDisallowedRoadDirections(), SetRoadBits(), SetRoadTypes(), SetTileOwner(), SetTownIndex(), SetTrackReservation(), SLOPE_ELEVATED, SLOPE_FLAT, SlopeWithOneCornerRaised(), TileVirtXY(), TRANSPORT_ROAD, TUNNELBRIDGE_TRACKBIT_FACTOR, TunnelBridgeIsFree(), Vehicle::x_pos, Vehicle::y_pos, and YapfNotifyTrackLayoutChange().

Referenced by CmdRemoveLongRoad().

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 47 of file road_cmd.cpp.

Referenced by GameOptionsWindow::BuildDropDownList(), and CheckRoadSide().

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 1424 of file road_cmd.cpp.

References _generating_world, CalcClosestTownFromTile(), HasTownOwnedRoad(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, IsRoadDepot(), IsTileType(), MapSize(), MP_ROAD, and SetTownIndex().

Referenced by AfterLoadGame(), CmdFoundTown(), FoundTownWindow::OnClick(), and Town::PostDestructor().

## Variable Documentation

const RoadBits _invalid_tileh_slopes_road[2][15]
| static

Invalid RoadBits on slopes.

Definition at line 56 of file road_cmd.cpp.

Referenced by CheckRoadSlope(), GetRoadFoundation(), and RemoveRoad().

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 1151 of file road_cmd.cpp.

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 1646 of file road_cmd.cpp.

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 1575 of file road_cmd.cpp.

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 1718 of file road_cmd.cpp.

const TileTypeProcs _tile_type_road_procs

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

Tile callback functions for road tiles.

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 1465 of file road_cmd.cpp.

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 1473 of file road_cmd.cpp.