OpenTTD Source 20260311-master-g511d3794ce
road_cmd.cpp File Reference

Commands related to road tiles. More...

#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.
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.
void UpdateCompanyRoadInfrastructure (RoadType rt, Owner o, int count)
 Update road infrastructure counts for a company.
static Foundation GetRoadFoundation (Slope tileh, RoadBits bits)
 Get the foundationtype of a RoadBits Slope combination.
CommandCost CheckAllowRemoveRoad (TileIndex tile, RoadBits remove, Owner owner, RoadTramType rtt, DoCommandFlags flags, bool town_check)
 Is it allowed to remove the given road bits from the given tile?
static CommandCost RemoveRoad (TileIndex tile, DoCommandFlags flags, RoadBits pieces, RoadTramType rtt, bool town_check)
 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 (DoCommandFlags flags, TileIndex tile, RoadBits pieces, RoadType rt, DisallowedRoadDirections toggle_drd, TownID town_id)
 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 (DoCommandFlags 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.
std::tuple< CommandCost, Money > CmdRemoveLongRoad (DoCommandFlags flags, TileIndex end_tile, TileIndex start_tile, RoadType rt, Axis axis, bool start_half, bool end_half)
 Remove a long piece of road.
CommandCost CmdBuildRoadDepot (DoCommandFlags flags, TileIndex tile, RoadType rt, DiagDirection dir)
 Build a road depot.
static CommandCost RemoveRoadDepot (TileIndex tile, DoCommandFlags flags)
static CommandCost ClearTile_Road (TileIndex tile, DoCommandFlags flags)
 Tile callback function signature for clearing a tile.
static uint GetRoadSpriteOffset (Slope slope, RoadBits bits)
 Get the sprite offset within a spritegroup.
static bool DrawRoadAsSnowOrDesert (bool snow_or_desert, Roadside roadside)
 Should the road be drawn as a unpaved snow/desert road?
void DrawRoadTypeCatenary (const TileInfo *ti, RoadType rt, RoadBits rb)
 Draws the catenary for the RoadType of the given tile.
void DrawRoadCatenary (const TileInfo *ti)
 Draws the catenary for the given tile.
static void DrawRoadDetail (SpriteID img, const TileInfo *ti, int8_t dx, int8_t dy, uint8_t h, bool transparent)
 Draws details on/around the road.
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.
static SpriteID GetRoadGroundSprite (const TileInfo *ti, Roadside roadside, const RoadTypeInfo *rti, uint offset, bool snow_or_desert, PaletteID *pal)
 Get ground sprite to draw for a road tile.
void DrawRoadGroundSprites (const TileInfo *ti, RoadBits road, RoadBits tram, const RoadTypeInfo *road_rti, const RoadTypeInfo *tram_rti, Roadside roadside, bool snow_or_desert)
 Draw road ground sprites.
static void DrawRoadBits (TileInfo *ti)
 Draw ground sprite and road pieces.
static void DrawTile_Road (TileInfo *ti)
 Tile callback function signature for drawing a tile and its contents 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, bool ground_vehicle)
 Tile callback function signature for obtaining the world Z coordinate of a given point of a tile.
static Foundation GetFoundation_Road (TileIndex tile, Slope tileh)
 Tile callback function signature for getting the foundation of a tile.
static void TileLoop_Road (TileIndex tile)
 Tile callback function signature for running periodic tile updates.
static bool ClickTile_Road (TileIndex tile)
 Tile callback function signature for clicking a tile.
static TrackStatus GetTileTrackStatus_Road (TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side)
 Tile callback function signature for getting the possible tracks that can be taken on a given tile by a given transport.
static void GetTileDesc_Road (TileIndex tile, TileDesc &td)
 Tile callback function signature for obtaining a tile description.
static VehicleEnterTileStates VehicleEnterTile_Road (Vehicle *v, TileIndex tile, int x, int y)
 Tile callback function for a vehicle entering a tile.
static void ChangeTileOwner_Road (TileIndex tile, Owner old_owner, Owner new_owner)
 Tile callback function signature for changing the owner of a tile.
static CommandCost TerraformTile_Road (TileIndex tile, DoCommandFlags flags, int z_new, Slope tileh_new)
 Tile callback function signature of the terraforming callback.
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.
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.
CommandCost CmdConvertRoad (DoCommandFlags flags, TileIndex tile, TileIndex area_start, RoadType to_type, bool diagonal)
 Convert one road subtype to another.
static CommandCost CheckBuildAbove_Road (TileIndex tile, DoCommandFlags flags, Axis axis, int height)
 Tile callback function signature to test if a bridge can be built above a tile.

Variables

RoadTypeInfo _roadtypes [ROADTYPE_END]
std::vector< RoadType_sorted_roadtypes
 Sorted list of road types.
RoadTypes _roadtypes_hidden_mask
 Bitset of hidden roadtypes.
RoadTypes _roadtypes_road
 Bitset of road roadtypes.
RoadTypes _roadtypes_tram
 Bitset of tram roadtypes.
static const RoadBits _invalid_tileh_slopes_road [2][15]
 Invalid RoadBits on slopes.
const uint8_t _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]
 Converts RoadBits to TrackBits.
static const StringID _road_tile_strings []
static const uint8_t _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
 TileTypeProcs definitions for TileType::Road tiles.

Detailed Description

Commands related to road tiles.

Definition in file road_cmd.cpp.

Typedef Documentation

◆ RoadVehicleList

typedef std::vector<RoadVehicle *> RoadVehicleList

Helper type for lists/vectors of road vehicles.

Definition at line 52 of file road_cmd.cpp.

Function Documentation

◆ AllocateRoadType()

RoadType AllocateRoadType ( RoadTypeLabel label,
RoadTramType rtt )

Allocate a new road type label.

Parameters
labelThe label of the road type.
rttWhether it's a road or tram type.
Returns
The allocated road type, or INVALID_ROADTYPE upon failures.

Definition at line 132 of file road_cmd.cpp.

References _original_roadtypes, _roadtypes_road, _roadtypes_tram, RoadTypeInfo::alternate_labels, RoadTypeInfo::flags, RoadTypeInfo::Index(), RoadTypeInfo::introduces_roadtypes, RoadTypeInfo::introduction_date, TimerGameConst< struct Calendar >::INVALID_DATE, INVALID_ROADTYPE, RoadTypeInfo::label, RoadTypeInfo::powered_roadtypes, ROADTYPE_ROAD, ROADTYPE_TRAM, RTT_ROAD, RTT_TRAM, and RoadTypeInfo::sorting_order.

◆ CanConnectToRoad()

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
tileTile at which the road being built will end.
rtRoadtype of the road being built.
dirDirection 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 941 of file road_cmd.cpp.

References DiagDirToRoadBits(), GetAnyRoadBits(), GetRoadType(), HasPowerOnRoad(), INVALID_ROADTYPE, IsValidTile(), MayHaveRoad(), ReverseDiagDir(), and TileOffsByDiagDir().

Referenced by CmdBuildLongRoad().

◆ CanConvertUnownedRoadType()

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
ownerthe tile owner.
rttRoad/tram type.
Returns
whether the road is convertible

Definition at line 2424 of file road_cmd.cpp.

References OWNER_NONE, OWNER_TOWN, and RTT_ROAD.

Referenced by CmdConvertRoad().

◆ ChangeTileOwner_Road()

void ChangeTileOwner_Road ( TileIndex tile,
Owner old_owner,
Owner new_owner )
static

Tile callback function signature for changing the owner of a tile.

Parameters
tileThe tile to process.
old_ownerThe owner to replace.
new_ownerThe owner to replace with.
See also
ChangeTileOwner

Definition at line 2324 of file road_cmd.cpp.

References Bankrupt, CountBits(), Execute, GetCrossingRailTrack(), GetRailType(), GetRoadBits(), GetRoadOwner(), GetRoadType(), GetRoadTypeRoad(), GetRoadTypeTram(), GetTileOwner(), INVALID_OWNER, INVALID_ROADTYPE, IsLevelCrossing(), IsRoadDepot(), LEVELCROSSING_TRACKBIT_FACTOR, OWNER_NONE, SetRoadOwner(), and SetTileOwner().

◆ CheckAllowRemoveRoad()

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

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

Parameters
tilethe tile to remove the road from
removethe roadbits that are going to be removed
ownerthe actual owner of the roadbits of the tile
rttThe road type to remove the bits from.
flagscommand flags
town_checkShall 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 255 of file road_cmd.cpp.

References _cheats, _current_company, _settings_game, ChangeTownRating(), CheckforTownRating(), CheckOwnership(), ClosestTownFromTile(), CommandCostWithParam(), CommandCost::Failed(), GetAnyRoadBits(), KillFirstBit(), OWNER_NONE, OWNER_TOWN, OWNER_WATER, RATING_ROAD_DOWN_STEP_EDGE, RATING_ROAD_DOWN_STEP_INNER, RATING_ROAD_MINIMUM, ROAD_NE, ROAD_NONE, ROAD_NW, ROAD_SE, ROAD_SW, RoadRemove, RTT_ROAD, and TileAddXY().

Referenced by CanRemoveRoadWithStop(), and RemoveRoad().

◆ CheckBuildAbove_Road()

CommandCost CheckBuildAbove_Road ( TileIndex tile,
DoCommandFlags flags,
Axis axis,
int height )
static

Tile callback function signature to test if a bridge can be built above a tile.

Parameters
tileThe involved tile.
flagsCommand flags passed to the build command.
axisAxis of bridge being built.
heightAbsolute height of bridge platform.
Returns
Error code or extra cost for building bridge above the tile.
See also
CheckBuildAbove

Definition at line 2663 of file road_cmd.cpp.

References IsRoadDepot().

◆ CheckRoadSlope()

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
tilehThe current slope
piecesThe RoadBits we want to add
existingThe existent RoadBits of the current type
otherThe other existent RoadBits
Returns
The costs for these RoadBits on this slope

Definition at line 538 of file road_cmd.cpp.

References _invalid_tileh_slopes_road, _price, _settings_game, BuildFoundation, CMD_ERROR, EXPENSES_CONSTRUCTION, FOUNDATION_NONE, GetHighestSlopeCorner(), GetRoadFoundation(), HasExactlyOneBit(), IsSlopeWithOneCornerRaised(), IsSteepSlope(), IsStraightRoad(), MirrorRoadBits(), ROAD_NONE, SLOPE_FLAT, and SlopeWithOneCornerRaised().

Referenced by CmdBuildRoad(), and TerraformTile_Road().

◆ ClearTile_Road()

CommandCost ClearTile_Road ( TileIndex tile,
DoCommandFlags flags )
static

Tile callback function signature for clearing a tile.

Parameters
tileThe tile to clear.
flagsThe command flags.
Returns
The cost or error.
See also
ClearTile

Definition at line 1222 of file road_cmd.cpp.

References CommandCost::AddCost(), Auto, Crossing, Depot, Execute, EXPENSES_CONSTRUCTION, CommandCost::Failed(), GetAllRoadBits(), CommandCost::GetCost(), GetCrossingRoadBits(), GetRoadBits(), GetRoadTileType(), GetRoadType(), HasExactlyOneBit(), INVALID_ROADTYPE, MayHaveRoad(), Normal, RemoveRoad(), ROAD_NONE, RTT_ROAD, RTT_TRAM, and BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test().

◆ ClickTile_Road()

bool ClickTile_Road ( TileIndex tile)
static

Tile callback function signature for clicking a tile.

Parameters
tileThe tile that was clicked.
Returns
Whether any action was taken.
See also
ClickTile

Definition at line 2116 of file road_cmd.cpp.

References IsRoadDepot(), ShowDepotWindow(), and VEH_ROAD.

◆ CmdBuildLongRoad()

CommandCost CmdBuildLongRoad ( DoCommandFlags 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
flagsoperation to perform
end_tileend tile of drag
start_tilestart tile of drag
rtroad type
axisdirection
drdset road direction
start_halfstart 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_halfend 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_aidefines 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 970 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::GetCost(), CommandCost::GetErrorMessage(), GetTunnelBridgeDirection(), IsBridge(), IsTileType(), IsValidAxis(), IsValidDisallowedRoadDirections(), ReverseDiagDir(), Map::Size(), TileOffsByDiagDir(), TileX(), TileY(), TunnelBridge, and ValParamRoadType().

◆ CmdBuildRoad()

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

Build a piece of road.

Parameters
flagsoperation to perform
tiletile where to build road
piecesroad pieces to build (RoadBits)
rtroad type
toggle_drddisallowed directions to toggle
town_idthe town that is building the road (TownID::Invalid() if not applicable)
Returns
the cost of this operation or an error

Definition at line 603 of file road_cmd.cpp.

References _current_company, _settings_game, CommandCost::AddCost(), AXIS_X, AXIS_Y, AxisToRoadBits(), AxisToTrack(), Town::cache, CalcClosestTownFromTile(), CheckOwnership(), CheckRoadSlope(), CheckTileOwnership(), CMD_ERROR, ComplementRoadBits(), CountBits(), Crossing, Depot, DiagDirToRoadBits(), DirtyCompanyInfrastructureWindows(), DistanceSquare(), DRD_NONE, EnsureNoVehicleOnGround(), Execute, EXPENSES_CONSTRUCTION, CommandCost::Failed(), GetAnyRoadBits(), CommandCost::GetCost(), GetCrossingRoadAxis(), GetCrossingRoadBits(), GetDisallowedRoadDirections(), GetDriveThroughStopAxis(), GetOtherTunnelBridgeEnd(), GetRailReservationTrackBits(), GetRailTileType(), GetRailType(), GetRoadBits(), GetRoadFoundation(), GetRoadOwner(), GetRoadTileType(), GetRoadType(), GetTileOwner(), GetTileSlope(), GetTileType(), GetTrackBits(), GetTunnelBridgeDirection(), GetTunnelBridgeLength(), GetTunnelBridgeTransportType(), HasBit(), HasExactlyOneBit(), HasPowerOnRoad(), HasRoadWorks(), HasTileRoadType(), Company::infrastructure, INVALID_ROADTYPE, IsBridge(), IsDriveThroughStopTile(), IsNormalRoad(), IsNormalRoadTile(), IsSteepSlope(), IsStraightRoad(), IsTileType(), IsValidDisallowedRoadDirections(), IsValidRoadBits(), LEVELCROSSING_TRACKBIT_FACTOR, MakeRoadCrossing(), MakeRoadNormal(), MarkBridgeDirty(), MarkDirtyAdjacentLevelCrossingTiles(), MarkTileDirtyByTile(), MirrorRoadBits(), Normal, OtherAxis(), OWNER_DEITY, OWNER_NONE, OWNER_TOWN, CompanyInfrastructure::rail, RailNoLevelCrossings(), Railway, Road, ROAD_NONE, ROAD_X, ROAD_Y, RoadBuildCost(), RoadNoLevelCrossing(), RTT_ROAD, RTT_TRAM, SetCrossingReservation(), SetDisallowedRoadDirections(), SetRoadBits(), SetRoadOwner(), SetRoadType(), SetTownIndex(), TownCache::squared_town_zone_radius, Station, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), to_underlying(), TownEdge, TRACK_BIT_X, TRACK_BIT_Y, TRANSPORT_ROAD, TunnelBridge, TUNNELBRIDGE_TRACKBIT_FACTOR, TunnelBridgeIsFree(), UpdateCompanyRoadInfrastructure(), UpdateLevelCrossing(), VALID_LEVEL_CROSSING_SLOPES, ValParamRoadType(), Town::xy, and YapfNotifyTrackLayoutChange().

◆ CmdBuildRoadDepot()

◆ CmdConvertRoad()

CommandCost CmdConvertRoad ( DoCommandFlags flags,
TileIndex tile,
TileIndex area_start,
RoadType to_type,
bool diagonal )

Convert one road subtype to another.

Not meant to convert from road to tram.

Parameters
flagsoperation to perform
tileend tile of road conversion drag
area_startstart tile of drag
to_typenew roadtype to convert to.
diagonalWhether a diagonal or orthogonal area is to be converted.
Returns
the cost of this operation or an error

Definition at line 2473 of file road_cmd.cpp.

References _current_company, _settings_game, CommandCost::AddCost(), CanConvertUnownedRoadType(), CheckforTownRating(), CheckOwnership(), ClosestTownFromTile(), CMD_ERROR, ConvertRoadTypeOwner(), CountBits(), TileIterator::Create(), EnsureNoVehicleOnGround(), Execute, EXPENSES_CONSTRUCTION, CommandCost::Failed(), SpecializedVehicle< RoadVehicle, Type >::From(), GetAnyRoadBits(), GetEncodedStringWithArgs(), GetOtherTunnelBridgeEnd(), GetParamsForOwnedBy(), GetRoadOwner(), GetRoadType(), GetTileType(), GetTunnelBridgeLength(), GetTunnelBridgeTransportType(), HasPowerOnRoad(), include(), INVALID_ROADTYPE, INVALID_TILE, InvalidateWindowData(), IsAnyRoadStop(), IsBayRoadStopTile(), IsBridge(), IsLevelCrossing(), IsLocalCompany(), IsRoadDepot(), IsRoadDepotTile(), CommandCost::MakeError(), MarkBridgeDirty(), MarkTileDirtyByTile(), MayHaveRoad(), OWNER_TOWN, Road, ROAD_DEPOT_TRACKBIT_FACTOR, ROAD_STOP_TRACKBIT_FACTOR, RoadConvertCost(), RoadNoLevelCrossing(), RoadRemove, RTT_ROAD, RTT_TRAM, CommandCost::SetEncodedMessage(), SetRoadType(), SetTunnelBridgeOwner(), Map::Size(), Station, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), TRANSPORT_ROAD, TunnelBridge, TUNNELBRIDGE_TRACKBIT_FACTOR, TunnelBridgeIsFree(), TunnelBridgeRemove, ValParamRoadType(), VEH_ROAD, WC_BUILD_VEHICLE, and WC_VEHICLE_DEPOT.

◆ CmdRemoveLongRoad()

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

Remove a long piece of road.

Parameters
flagsoperation to perform
end_tileend tile of drag
start_tilestart tile of drag
rtroad type
axisdirection
start_halfstart tile starts in the 2nd half of tile
end_halfend tile starts in the 2nd half of tile (p2 & 2)
Returns
the cost of this operation or an error

Definition at line 1067 of file road_cmd.cpp.

References CommandCost::AddCost(), AXIS_X, AXIS_Y, AxisToRoadBits(), CMD_ERROR, Execute, EXPENSES_CONSTRUCTION, GetAvailableMoneyForCommand(), CommandCost::GetCost(), CommandCost::GetErrorMessage(), IsValidAxis(), RemoveRoad(), ROAD_NE, ROAD_NW, ROAD_SE, ROAD_SW, Map::Size(), CommandCost::Succeeded(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), TileOffsByAxis(), TileX(), TileY(), and ValParamRoadType().

◆ CompareRoadTypes()

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

Compare roadtypes based on their sorting order.

Parameters
firstThe roadtype to compare to.
secondThe roadtype to compare.
Returns
True iff the first should be sorted before the second.

Definition at line 100 of file road_cmd.cpp.

References GetRoadTypeInfo(), and RoadTypeInfo::sorting_order.

Referenced by InitRoadTypes().

◆ ConvertRoadTypeOwner()

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
tilethe tile of which convert ownership
num_piecesthe count of the roadbits to assign to the new owner
ownerthe current owner of the RoadType
from_typethe old road type
to_typethe new road type

Definition at line 2437 of file road_cmd.cpp.

References _current_company, DirtyCompanyInfrastructureWindows(), Company::infrastructure, OWNER_NONE, CompanyInfrastructure::road, SetRoadOwner(), and UpdateCompanyRoadInfrastructure().

Referenced by CmdConvertRoad().

◆ DrawRoadAsSnowOrDesert()

bool DrawRoadAsSnowOrDesert ( bool snow_or_desert,
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
snow_or_desertIs snowy or desert tile
roadsideWhat sort of road this is
Returns
True if snow/desert road sprites should be used.

Definition at line 1354 of file road_cmd.cpp.

References _settings_game, Barren, DesertPavedRoads, Grass, GrassRoadWorks, HasGrfMiscBit(), and Tropic.

Referenced by DrawTile_Road(), and GetRoadGroundSprite().

◆ DrawRoadBits()

◆ DrawRoadCatenary()

◆ DrawRoadDepotSprite()

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

◆ DrawRoadDetail()

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

Draws details on/around the road.

Parameters
imgthe sprite to draw
tithe tile to draw on
dxthe offset from the top of the BB of the tile
dythe offset from the top of the BB of the tile
hthe height of the sprite to draw
transparentwhether the sprite should be transparent (used for roadside trees)

Definition at line 1488 of file road_cmd.cpp.

References AddSortableSpriteToDraw(), GetSlopePixelZ(), SLOPE_FLAT, TileInfo::tileh, Coord3D< T >::x, Coord3D< T >::y, and Coord3D< T >::z.

Referenced by DrawRoadBits().

◆ DrawRoadGroundSprites()

void DrawRoadGroundSprites ( const TileInfo * ti,
RoadBits road,
RoadBits tram,
const RoadTypeInfo * road_rti,
const RoadTypeInfo * tram_rti,
Roadside roadside,
bool snow_or_desert )

Draw road ground sprites.

Parameters
tiTileInfo
roadRoad bits
tramTram bits
road_rtiRoad road type information
tram_rtiTram road type information
roadsideRoadside type
snow_or_desertWhether to draw snow/desert ground sprites

Definition at line 1610 of file road_cmd.cpp.

References DrawGroundSprite(), DrawRoadOverlays(), GetRoadGroundSprite(), GetRoadSpriteOffset(), ROAD_NONE, and TileInfo::tileh.

Referenced by DrawRoadBits(), and DrawTile_Station().

◆ 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
tiTileInfo
palThe palette to apply to the overlays.
road_rtiRoad road type information
tram_rtiTram road type information
road_offsetRoad sprite offset (based on road bits)
tram_offsetTram sprite offset (based on road bits)
draw_underlayWhether to draw underlays

Definition at line 1507 of file road_cmd.cpp.

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

Referenced by DrawRoadGroundSprites(), DrawTile_Road(), DrawTile_Station(), and DrawTile_TunnelBridge().

◆ DrawRoadTypeCatenary()

◆ DrawTile_Road()

void DrawTile_Road ( TileInfo * ti)
static

Tile callback function signature for drawing a tile and its contents to the screen.

Parameters
tiInformation about the tile to draw

Definition at line 1709 of file road_cmd.cpp.

References _loaded_newgrf_features, _settings_client, AXIS_Y, AxisToDiagDir(), Barren, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::base(), RailTypeInfo::base_sprites, Catenary, Crossing, RailTypeInfo::crossing, Depot, DIAGDIR_NE, DIAGDIR_NW, DIAGDIR_SE, DIAGDIR_SW, DiagDirToRoadBits(), DrawBridgeMiddle(), DrawFoundation(), DrawGroundSprite(), DrawRailCatenary(), DrawRailTileSeq(), DrawRoadAsSnowOrDesert(), DrawRoadBits(), DrawRoadCatenary(), DrawRoadOverlays(), EdgeNE, EdgeNW, EdgeSE, EdgeSW, RoadTypeInfo::flags, FOUNDATION_LEVELED, GetAllRoadBits(), GetCompanyPalette(), GetCrossingRailAxis(), GetCrossingRoadAxis(), GetCustomRailSprite(), GetCustomRoadSprite(), GetRailType(), GetRailTypeInfo(), GetRoadDepotDirection(), GetRoadside(), GetRoadSpriteOffset(), GetRoadTileType(), GetRoadTypeInfo(), GetRoadTypeRoad(), GetRoadTypeTram(), GetTileOwner(), Grass, DrawTileSprites::ground, HasCrossingReservation(), HasRailCatenaryDrawn(), INVALID_ROADTYPE, IsBridgeAbove(), IsCrossingBarred(), IsLevelCrossingTile(), IsOnSnowOrDesert(), Normal, PALETTE_CRASH, PALETTE_TO_BARE_LAND, ReverseDiagDir(), ROAD_NE, ROAD_NW, ROAD_SE, ROAD_SW, ROTSG_DEPOT, ROTSG_OVERLAY, RTSG_CROSSING, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Set(), RailTypeInfo::single_x, RailTypeInfo::single_y, Map::Size(), SLOPE_FLAT, PalSpriteID::sprite, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), TileInfo::tile, TileAddByDiagDir(), TileInfo::tileh, TO_BUILDINGS, TO_CATENARY, and TRAMWAY_REPLACE_DEPOT_WITH_TRACK.

◆ GetFoundation_Road()

Foundation GetFoundation_Road ( TileIndex tile,
Slope tileh )
static

Tile callback function signature for getting the foundation of a tile.

Parameters
tileThe tile to check.
tilehThe current slope.
Returns
The foundation that will be used.

Definition at line 1980 of file road_cmd.cpp.

References FlatteningFoundation(), GetAllRoadBits(), GetRoadFoundation(), and IsNormalRoad().

◆ GetRoadFoundation()

◆ GetRoadGroundSprite()

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

Get ground sprite to draw for a road tile.

Parameters
tiTileInof
roadsideRoad side type
rtiRoad type info
offsetRoad sprite offset
snow_or_desertWhether to get snow/desert ground sprite
[out]palPalette to draw.
Returns
The sprite.

Definition at line 1555 of file road_cmd.cpp.

References Barren, DrawRoadAsSnowOrDesert(), Grass, GrassRoadWorks, PALETTE_TO_BARE_LAND, SlopeToSpriteOffset(), and TileInfo::tileh.

Referenced by DrawRoadGroundSprites().

◆ GetRoadSpriteOffset()

uint GetRoadSpriteOffset ( Slope slope,
RoadBits bits )
static

Get the sprite offset within a spritegroup.

Parameters
slopeSlope
bitsRoadbits
Returns
Offset for the sprite within the spritegroup.

Definition at line 1324 of file road_cmd.cpp.

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

Referenced by DrawRoadDepotSprite(), DrawRoadGroundSprites(), DrawRoadTypeCatenary(), and DrawTile_Road().

◆ GetSlopePixelZ_Road()

int GetSlopePixelZ_Road ( TileIndex tile,
uint x,
uint y,
bool ground_vehicle )
static

Tile callback function signature for obtaining the world Z coordinate of a given point of a tile.

Parameters
tileThe queries tile for the Z coordinate.
xWorld X coordinate in tile "units".
yWorld Y coordinate in tile "units".
ground_vehicleWhether to get the Z coordinate of the ground vehicle, or the ground.
Returns
World Z coordinate at tile ground (vehicle) level, including slopes and foundations.
See also
GetSlopePixelZ

Definition at line 1964 of file road_cmd.cpp.

References ApplyPixelFoundationToSlope(), GetAllRoadBits(), GetPartialPixelZ(), GetRoadFoundation(), GetTileMaxPixelZ(), GetTilePixelSlope(), IsNormalRoad(), and SLOPE_FLAT.

◆ GetTileDesc_Road()

◆ GetTileTrackStatus_Road()

TrackStatus GetTileTrackStatus_Road ( TileIndex tile,
TransportType mode,
uint sub_mode,
DiagDirection side )
static

Tile callback function signature for getting the possible tracks that can be taken on a given tile by a given transport.

The return value contains the existing trackdirs and signal states.

see track_func.h for usage of TrackStatus.

Parameters
tilethe tile to get the track status from
modethe mode of transportation
sub_modeused to differentiate between different kinds within the mode
sideThe side where the tile is entered.
Returns
the track status information
See also
GetTileTrackStatus

Definition at line 2145 of file road_cmd.cpp.

References _road_trackbits, AxisToDiagDir(), AxisToTrackBits(), CombineTrackStatus(), Crossing, Depot, DiagDirToAxis(), DiagDirToDiagTrackBits(), DiagDirToRoadBits(), DRD_END, DRD_NONE, GetCrossingRailBits(), GetCrossingRoadAxis(), GetDisallowedRoadDirections(), GetRoadBits(), GetRoadDepotDirection(), GetRoadTileType(), HasRoadWorks(), HasTileRoadType(), INVALID_DIAGDIR, IsCrossingBarred(), IsLevelCrossing(), IsLevelCrossingTile(), Normal, ReverseDiagDir(), RTT_TRAM, TileAddByDiagDir(), TrackBitsToTrackdirBits(), TRACKDIR_BIT_NONE, TRACKDIR_BIT_X_NE, TRACKDIR_BIT_X_SW, TRACKDIR_BIT_Y_NW, TRACKDIR_BIT_Y_SE, TrainOnCrossing(), TRANSPORT_RAIL, and TRANSPORT_ROAD.

◆ InitRoadTypes()

◆ RemoveRoad()

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

Delete a piece of road.

Parameters
tiletile where to remove road from
flagsoperation to perform
piecesroadbits to remove
rttRoad type to remove.
town_checkshould we check if the town allows removal?
Returns
The cost or an error message.

Definition at line 318 of file road_cmd.cpp.

References _current_company, _invalid_tileh_slopes_road, _price, _settings_game, CommandCost::AddCost(), AxisToRoadBits(), BuildFoundation, CalcClosestTownFromTile(), CheckAllowRemoveRoad(), CMD_ERROR, ComplementRoadBits(), CountBits(), Crossing, Depot, DiagDirToAxis(), DirtyCompanyInfrastructureWindows(), DRD_NONE, EnsureNoVehicleOnGround(), Execute, EXPENSES_CONSTRUCTION, CommandCost::Failed(), FOUNDATION_NONE, GetCrossingRailBits(), GetCrossingRailTrack(), GetCrossingRoadAxis(), GetCrossingRoadBits(), GetHighestSlopeCorner(), GetOtherTunnelBridgeEnd(), GetRailType(), GetRoadBits(), GetRoadFoundation(), GetRoadOwner(), GetRoadTileType(), GetRoadType(), GetTileOwner(), GetTileSlope(), GetTileType(), GetTunnelBridgeDirection(), GetTunnelBridgeLength(), GetTunnelBridgeTransportType(), HasCrossingReservation(), HasRoadWorks(), Company::infrastructure, INVALID_ROADTYPE, IsBridge(), IsDriveThroughStopTile(), IsRoadOwner(), IsSteepSlope(), IsStraightRoad(), IsTileOwner(), IsTileType(), LEVELCROSSING_TRACKBIT_FACTOR, MakeRailNormal(), MarkBridgeDirty(), MarkTileDirtyByTile(), MayHaveRoad(), MirrorRoadBits(), Normal, OWNER_TOWN, OWNER_WATER, CompanyInfrastructure::rail, Road, ROAD_NONE, RoadClearCost(), RTT_ROAD, RTT_TRAM, SetDisallowedRoadDirections(), SetRoadBits(), SetRoadType(), SetTileOwner(), SetTownIndex(), SetTrackReservation(), SLOPE_ELEVATED, SLOPE_FLAT, SlopeWithOneCornerRaised(), Station, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), TileVirtXY(), TRANSPORT_ROAD, TunnelBridge, TUNNELBRIDGE_TRACKBIT_FACTOR, TunnelBridgeIsFree(), UpdateAdjacentLevelCrossingTilesOnLevelCrossingRemoval(), UpdateCompanyRoadInfrastructure(), and YapfNotifyTrackLayoutChange().

Referenced by ClearTile_Road(), CmdRemoveLongRoad(), and TileLoop_Road().

◆ RemoveRoadDepot()

CommandCost RemoveRoadDepot ( TileIndex tile,
DoCommandFlags flags )
static

Definition at line 1194 of file road_cmd.cpp.

◆ ResetRoadTypes()

void ResetRoadTypes ( )

Reset all road type information to its default values.

Definition at line 63 of file road_cmd.cpp.

References _original_roadtypes, _roadtypes_hidden_mask, _roadtypes_road, _roadtypes_tram, ROADTYPE_ROAD, and ROADTYPE_TRAM.

Referenced by ResetNewGRFData().

◆ ResolveRoadTypeGUISprites()

void ResolveRoadTypeGUISprites ( RoadTypeInfo * rti)

Definition at line 75 of file road_cmd.cpp.

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

Referenced by CheckRoadSide().

◆ TerraformTile_Road()

CommandCost TerraformTile_Road ( TileIndex tile,
DoCommandFlags flags,
int z_new,
Slope tileh_new )
static

Tile callback function signature of the terraforming callback.

The function is called when a tile is affected by a terraforming operation. It has to check if terraforming of the tile is allowed and return extra terraform-cost that depend on the tiletype. With DoCommandFlag::Execute in flags it has to perform tiletype-specific actions (like clearing land etc., but not the terraforming itself).

Note
The terraforming has not yet taken place. So GetTileZ() and GetTileSlope() refer to the landscape before the terraforming operation.
Parameters
tileThe involved tile.
flagsCommand flags passed to the terraform command (DoCommandFlag::Execute, DoCommandFlag::QueryCost, etc.).
z_newTileZ after terraforming.
tileh_newSlope after terraforming.
Returns
Error code or extra cost for terraforming (like clearing land, building foundations, etc., but not the terraforming itself.)
See also
TerraformTile

Definition at line 2379 of file road_cmd.cpp.

References _price, _settings_game, ApplyFoundationToSlope(), AutoslopeCheckForEntranceEdge(), AutoslopeEnabled(), BuildFoundation, CheckRoadSlope(), Crossing, Depot, EXPENSES_CONSTRUCTION, GetAllRoadBits(), GetRoadDepotDirection(), GetRoadFoundation(), GetRoadTileType(), GetSlopeMaxZ(), GetTileMaxZ(), GetTileSlopeZ(), HasBit(), IsSteepSlope(), Normal, ROAD_NONE, and VALID_LEVEL_CROSSING_SLOPES.

◆ TileLoop_Road()

◆ UpdateCompanyRoadInfrastructure()

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

Update road infrastructure counts for a company.

Parameters
rtRoad type to update count of.
oOwner of road piece.
countNumber of road pieces to adjust.

Definition at line 183 of file road_cmd.cpp.

References DirtyCompanyInfrastructureWindows(), Company::infrastructure, INVALID_ROADTYPE, and CompanyInfrastructure::road.

Referenced by CmdBuildRoad(), CmdBuildRoadDepot(), CmdBuildRoadStop(), CmdBuildRoadWaypoint(), ConvertRoadTypeOwner(), DoClearBridge(), DoClearTunnel(), RemoveGenericRoadStop(), RemoveRoad(), RemoveRoadStop(), and RemoveRoadWaypointStop().

◆ UpdateNearestTownForRoadTiles()

void UpdateNearestTownForRoadTiles ( bool invalidate)

Updates cached nearest town for all road tiles.

Parameters
invalidateare we just invalidating cached data?
Precondition
invalidate == true implies _generating_world == true

Definition at line 1947 of file road_cmd.cpp.

References _generating_world, CalcClosestTownFromTile(), HasTownOwnedRoad(), IsRoadDepot(), IsTileType(), Map::Iterate(), Road, and SetTownIndex().

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

◆ VehicleEnterTile_Road()

VehicleEnterTileStates VehicleEnterTile_Road ( Vehicle * v,
TileIndex tile,
int x,
int y )
static

Variable Documentation

◆ _invalid_tileh_slopes_road

const RoadBits _invalid_tileh_slopes_road[2][15]
static

Invalid RoadBits on slopes.

Definition at line 195 of file road_cmd.cpp.

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

◆ _road_sloped_sprites

const uint8_t _road_sloped_sprites[14]
Initial value:
= {
0, 0, 2, 0,
0, 1, 0, 0,
3, 0, 0, 0,
0, 0
}

Definition at line 1311 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 2209 of file road_cmd.cpp.

◆ _road_trackbits

const TrackBits _road_trackbits[16]
static
Initial value:
= {
}
@ TRACK_BIT_UPPER
Upper track.
Definition track_type.h:39
@ TRACK_BIT_LEFT
Left track.
Definition track_type.h:41
@ TRACK_BIT_Y
Y-axis track.
Definition track_type.h:38
@ TRACK_BIT_NONE
No track.
Definition track_type.h:36
@ TRACK_BIT_X
X-axis track.
Definition track_type.h:37
@ TRACK_BIT_LOWER
Lower track.
Definition track_type.h:40
@ TRACK_BIT_ALL
All possible tracks.
Definition track_type.h:50
@ TRACK_BIT_RIGHT
Right track.
Definition track_type.h:42

Converts RoadBits to TrackBits.

Definition at line 2125 of file road_cmd.cpp.

Referenced by GetTileTrackStatus_Road().

◆ _roadtypes

Definition at line 54 of file road_cmd.cpp.

◆ _roadtypes_hidden_mask

RoadTypes _roadtypes_hidden_mask

Bitset of hidden roadtypes.

Definition at line 56 of file road_cmd.cpp.

Referenced by HasAnyRoadTypesAvail(), HasRoadTypeAvail(), InitRoadTypes(), and ResetRoadTypes().

◆ _roadtypes_road

RoadTypes _roadtypes_road

Bitset of road roadtypes.

Definition at line 57 of file road_cmd.cpp.

Referenced by AllocateRoadType(), GetMaskForRoadTramType(), and ResetRoadTypes().

◆ _roadtypes_tram

RoadTypes _roadtypes_tram

Bitset of tram roadtypes.

Definition at line 58 of file road_cmd.cpp.

Referenced by AllocateRoadType(), GetMaskForRoadTramType(), and ResetRoadTypes().

◆ _roadveh_enter_depot_dir

const uint8_t _roadveh_enter_depot_dir[4]
static
Initial value:
= {
}
@ TRACKDIR_X_NE
X-axis and direction to north-east.
Definition track_type.h:68
@ TRACKDIR_Y_SE
Y-axis and direction to south-east.
Definition track_type.h:69
@ TRACKDIR_X_SW
X-axis and direction to south-west.
Definition track_type.h:76
@ TRACKDIR_Y_NW
Y-axis and direction to north-west.
Definition track_type.h:77

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

Referenced by VehicleEnterTile_Road().

◆ _sorted_roadtypes

std::vector<RoadType> _sorted_roadtypes

◆ _tile_type_road_procs

const TileTypeProcs _tile_type_road_procs
extern
Initial value:
= {
.draw_tile_proc = DrawTile_Road,
.get_slope_pixel_z_proc = GetSlopePixelZ_Road,
.clear_tile_proc = ClearTile_Road,
.get_tile_desc_proc = GetTileDesc_Road,
.get_tile_track_status_proc = GetTileTrackStatus_Road,
.click_tile_proc = ClickTile_Road,
.tile_loop_proc = TileLoop_Road,
.change_tile_owner_proc = ChangeTileOwner_Road,
.vehicle_enter_tile_proc = VehicleEnterTile_Road,
.get_foundation_proc = GetFoundation_Road,
.terraform_tile_proc = TerraformTile_Road,
.check_build_above_proc = CheckBuildAbove_Road,
}
static VehicleEnterTileStates VehicleEnterTile_Road(Vehicle *v, TileIndex tile, int x, int y)
Tile callback function for a vehicle entering a tile.
static CommandCost TerraformTile_Road(TileIndex tile, DoCommandFlags flags, int z_new, Slope tileh_new)
Tile callback function signature of the terraforming callback.
static Foundation GetFoundation_Road(TileIndex tile, Slope tileh)
Tile callback function signature for getting the foundation of a tile.
static TrackStatus GetTileTrackStatus_Road(TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side)
Tile callback function signature for getting the possible tracks that can be taken on a given tile by...
static void DrawTile_Road(TileInfo *ti)
Tile callback function signature for drawing a tile and its contents to the screen.
static int GetSlopePixelZ_Road(TileIndex tile, uint x, uint y, bool ground_vehicle)
Tile callback function signature for obtaining the world Z coordinate of a given point of a tile.
static void ChangeTileOwner_Road(TileIndex tile, Owner old_owner, Owner new_owner)
Tile callback function signature for changing the owner of a tile.
static bool ClickTile_Road(TileIndex tile)
Tile callback function signature for clicking a tile.
static CommandCost ClearTile_Road(TileIndex tile, DoCommandFlags flags)
Tile callback function signature for clearing a tile.
static void GetTileDesc_Road(TileIndex tile, TileDesc &td)
Tile callback function signature for obtaining a tile description.
static void TileLoop_Road(TileIndex tile)
Tile callback function signature for running periodic tile updates.
static CommandCost CheckBuildAbove_Road(TileIndex tile, DoCommandFlags flags, Axis axis, int height)
Tile callback function signature to test if a bridge can be built above a tile.

TileTypeProcs definitions for TileType::Road tiles.

Definition at line 54 of file landscape.cpp.

◆ _town_road_types

const Roadside _town_road_types[][2]
static
Initial value:
= {
}
@ Paved
Road with paved sidewalks.
Definition road_map.h:486
@ StreetLights
Road with street lights on paved sidewalks.
Definition road_map.h:487
@ Trees
Road with trees on paved sidewalks.
Definition road_map.h:489
@ Grass
Road on grass.
Definition road_map.h:485

Definition at line 1989 of file road_cmd.cpp.

◆ _town_road_types_2