OpenTTD Source
1.11.0-beta2
|
#include "track_func.h"
#include "depot_type.h"
#include "rail_type.h"
#include "road_func.h"
#include "tile_map.h"
Go to the source code of this file.
Data Structures | |
struct | EnumPropsT< DisallowedRoadDirections > |
Helper information for extract tool. More... | |
Macros | |
#define | IsOnDesert IsOnSnow |
Check if a road tile has snow/desert. | |
#define | ToggleDesert ToggleSnow |
Toggle the snow/desert state of a road tile. | |
Enumerations | |
enum | RoadTileType { ROAD_TILE_NORMAL, ROAD_TILE_CROSSING, ROAD_TILE_DEPOT } |
The different types of road tiles. More... | |
enum | DisallowedRoadDirections { DRD_NONE, DRD_SOUTHBOUND, DRD_NORTHBOUND, DRD_BOTH, DRD_END } |
Which directions are disallowed ? More... | |
enum | Roadside { ROADSIDE_BARREN = 0, ROADSIDE_GRASS = 1, ROADSIDE_PAVED = 2, ROADSIDE_STREET_LIGHTS = 3, ROADSIDE_TREES = 5, ROADSIDE_GRASS_ROAD_WORKS = 6, ROADSIDE_PAVED_ROAD_WORKS = 7 } |
The possible road side decorations. More... | |
Functions | |
static bool | MayHaveRoad (TileIndex t) |
Test whether a tile can have road/tram types. More... | |
static RoadTileType | GetRoadTileType (TileIndex t) |
Get the type of the road tile. More... | |
static bool | IsNormalRoad (TileIndex t) |
Return whether a tile is a normal road. More... | |
static bool | IsNormalRoadTile (TileIndex t) |
Return whether a tile is a normal road tile. More... | |
static bool | IsLevelCrossing (TileIndex t) |
Return whether a tile is a level crossing. More... | |
static bool | IsLevelCrossingTile (TileIndex t) |
Return whether a tile is a level crossing tile. More... | |
static bool | IsRoadDepot (TileIndex t) |
Return whether a tile is a road depot. More... | |
static bool | IsRoadDepotTile (TileIndex t) |
Return whether a tile is a road depot tile. More... | |
static RoadBits | GetRoadBits (TileIndex t, RoadTramType rtt) |
Get the present road bits for a specific road type. More... | |
static RoadBits | GetAllRoadBits (TileIndex tile) |
Get all set RoadBits on the given tile. More... | |
static void | SetRoadBits (TileIndex t, RoadBits r, RoadTramType rtt) |
Set the present road bits for a specific road type. More... | |
static RoadType | GetRoadTypeRoad (TileIndex t) |
static RoadType | GetRoadTypeTram (TileIndex t) |
static RoadType | GetRoadType (TileIndex t, RoadTramType rtt) |
static RoadTypes | GetPresentRoadTypes (TileIndex t) |
Get the present road types of a tile. More... | |
static bool | HasRoadTypeRoad (TileIndex t) |
static bool | HasRoadTypeTram (TileIndex t) |
static bool | HasTileRoadType (TileIndex t, RoadTramType rtt) |
Check if a tile has a road or a tram road type. More... | |
static bool | HasTileAnyRoadType (TileIndex t, RoadTypes rts) |
Check if a tile has one of the specified road types. More... | |
static Owner | GetRoadOwner (TileIndex t, RoadTramType rtt) |
Get the owner of a specific road type. More... | |
static void | SetRoadOwner (TileIndex t, RoadTramType rtt, Owner o) |
Set the owner of a specific road type. More... | |
static bool | IsRoadOwner (TileIndex t, RoadTramType rtt, Owner o) |
Check if a specific road type is owned by an owner. More... | |
static bool | HasTownOwnedRoad (TileIndex t) |
Checks if given tile has town owned road. More... | |
static DisallowedRoadDirections | GetDisallowedRoadDirections (TileIndex t) |
Gets the disallowed directions. More... | |
static void | SetDisallowedRoadDirections (TileIndex t, DisallowedRoadDirections drd) |
Sets the disallowed directions. More... | |
static Axis | GetCrossingRoadAxis (TileIndex t) |
Get the road axis of a level crossing. More... | |
static Axis | GetCrossingRailAxis (TileIndex t) |
Get the rail axis of a level crossing. More... | |
static RoadBits | GetCrossingRoadBits (TileIndex tile) |
Get the road bits of a level crossing. More... | |
static Track | GetCrossingRailTrack (TileIndex tile) |
Get the rail track of a level crossing. More... | |
static TrackBits | GetCrossingRailBits (TileIndex tile) |
Get the rail track bits of a level crossing. More... | |
static bool | HasCrossingReservation (TileIndex t) |
Get the reservation state of the rail crossing. More... | |
static void | SetCrossingReservation (TileIndex t, bool b) |
Set the reservation state of the rail crossing. More... | |
static TrackBits | GetCrossingReservationTrackBits (TileIndex t) |
Get the reserved track bits for a rail crossing. More... | |
static bool | IsCrossingBarred (TileIndex t) |
Check if the level crossing is barred. More... | |
static void | SetCrossingBarred (TileIndex t, bool barred) |
Set the bar state of a level crossing. More... | |
static void | UnbarCrossing (TileIndex t) |
Unbar a level crossing. More... | |
static void | BarCrossing (TileIndex t) |
Bar a level crossing. More... | |
static bool | IsOnSnow (TileIndex t) |
Check if a road tile has snow/desert. More... | |
static void | ToggleSnow (TileIndex t) |
Toggle the snow/desert state of a road tile. More... | |
static Roadside | GetRoadside (TileIndex tile) |
Get the decorations of a road. More... | |
static void | SetRoadside (TileIndex tile, Roadside s) |
Set the decorations of a road. More... | |
static bool | HasRoadWorks (TileIndex t) |
Check if a tile has road works. More... | |
static bool | IncreaseRoadWorksCounter (TileIndex t) |
Increase the progress counter of road works. More... | |
static void | StartRoadWorks (TileIndex t) |
Start road works on a tile. More... | |
static void | TerminateRoadWorks (TileIndex t) |
Terminate road works on a tile. More... | |
static DiagDirection | GetRoadDepotDirection (TileIndex t) |
Get the direction of the exit of a road depot. More... | |
RoadBits | GetAnyRoadBits (TileIndex tile, RoadTramType rtt, bool straight_tunnel_bridge_entrance=false) |
Returns the RoadBits on an arbitrary tile Special behaviour: More... | |
static void | SetRoadTypeRoad (TileIndex t, RoadType rt) |
Set the road road type of a tile. More... | |
static void | SetRoadTypeTram (TileIndex t, RoadType rt) |
Set the tram road type of a tile. More... | |
static void | SetRoadType (TileIndex t, RoadTramType rtt, RoadType rt) |
Set the road type of a tile. More... | |
static void | SetRoadTypes (TileIndex t, RoadType road_rt, RoadType tram_rt) |
Set the present road types of a tile. More... | |
static void | MakeRoadNormal (TileIndex t, RoadBits bits, RoadType road_rt, RoadType tram_rt, TownID town, Owner road, Owner tram) |
Make a normal road tile. More... | |
static void | MakeRoadCrossing (TileIndex t, Owner road, Owner tram, Owner rail, Axis roaddir, RailType rat, RoadType road_rt, RoadType tram_rt, uint town) |
Make a level crossing. More... | |
static void | MakeRoadDepot (TileIndex t, Owner owner, DepotID did, DiagDirection dir, RoadType rt) |
Make a road depot. More... | |
Map accessors for roads.
Definition in file road_map.h.
Which directions are disallowed ?
Definition at line 285 of file road_map.h.
enum Roadside |
The possible road side decorations.
Definition at line 477 of file road_map.h.
enum RoadTileType |
The different types of road tiles.
Enumerator | |
---|---|
ROAD_TILE_NORMAL | Normal road. |
ROAD_TILE_CROSSING | Level crossing. |
ROAD_TILE_DEPOT | Depot (one entrance) |
Definition at line 21 of file road_map.h.
|
inlinestatic |
Bar a level crossing.
t | The tile to change. |
Definition at line 447 of file road_map.h.
References SetCrossingBarred().
Referenced by MaybeBarCrossingWithSound(), and TryReserveRailTrack().
Get all set RoadBits on the given tile.
tile | The tile from which we want to get the RoadBits |
Definition at line 140 of file road_map.h.
References GetRoadBits().
Returns the RoadBits on an arbitrary tile Special behaviour:
If straight_tunnel_bridge_entrance is set a ROAD_X or ROAD_Y for bridge ramps and tunnel entrances is returned depending on the orientation of the tunnel or bridge.
tile | the tile to get the road bits for |
rt | the road type to get the road bits form |
straight_tunnel_bridge_entrance | whether to return straight road bits for tunnels/bridges. |
Definition at line 33 of file road_map.cpp.
References AxisToRoadBits(), DIAGDIR_NE, DiagDirToAxis(), DiagDirToRoadBits(), GetCrossingRoadBits(), GetRoadBits(), GetRoadDepotDirection(), GetRoadStopDir(), GetRoadTileType(), GetTileType(), GetTunnelBridgeDirection(), GetTunnelBridgeTransportType(), HasTileRoadType(), IsDriveThroughStopTile(), IsRoadStopTile(), MayHaveRoad(), MP_ROAD, MP_STATION, MP_TUNNELBRIDGE, ReverseDiagDir(), ROAD_NONE, ROAD_TILE_CROSSING, ROAD_TILE_DEPOT, ROAD_TILE_NORMAL, ROAD_X, ROAD_Y, and TRANSPORT_ROAD.
Referenced by CleanUpRoadBits(), and GetTownRoadBits().
Get the rail axis of a level crossing.
t | The tile to query. |
Definition at line 337 of file road_map.h.
References GetCrossingRoadAxis(), IsLevelCrossing(), and OtherAxis().
Referenced by DrawTile_Road(), GetCrossingRailBits(), GetCrossingRailTrack(), and TrainApproachingCrossing().
Get the rail track bits of a level crossing.
tile | The tile to query. |
Definition at line 368 of file road_map.h.
References AxisToTrackBits(), and GetCrossingRailAxis().
Referenced by GetCrossingReservationTrackBits(), and GetRailTrackBitsUniversal().
Get the rail track of a level crossing.
tile | The tile to query. |
Definition at line 358 of file road_map.h.
References AxisToTrack(), and GetCrossingRailAxis().
Referenced by CmdConvertRail().
Get the reserved track bits for a rail crossing.
t | the tile |
Definition at line 405 of file road_map.h.
References GetCrossingRailBits(), HasCrossingReservation(), and TRACK_BIT_NONE.
Referenced by GetReservedTrackbits().
Get the road axis of a level crossing.
t | The tile to query. |
Definition at line 325 of file road_map.h.
References _m, GB(), and IsLevelCrossing().
Referenced by CanEnterTileOwnerCheck(), GetCrossingRailAxis(), GetCrossingRoadBits(), and TrainApproachingCrossingTile().
Get the road bits of a level crossing.
tile | The tile to query. |
Definition at line 348 of file road_map.h.
References AXIS_X, GetCrossingRoadAxis(), ROAD_X, and ROAD_Y.
Referenced by GetAnyRoadBits().
|
inlinestatic |
Gets the disallowed directions.
t | the tile to get the directions from |
Definition at line 301 of file road_map.h.
References _m, GB(), and IsNormalRoad().
Referenced by GrowTownWithBridge().
Get the present road types of a tile.
t | The tile to query. |
Definition at line 184 of file road_map.h.
References MayHaveRoad(), and ROADTYPES_NONE.
Referenced by HasTileAnyRoadType().
Get the present road bits for a specific road type.
t | The tile to query. |
rt | Road type. |
Definition at line 127 of file road_map.h.
References IsNormalRoad().
Referenced by ConnectRoadToStructure(), DrawRoadBits(), DrawRoadCatenary(), GetAllRoadBits(), GetAnyRoadBits(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::GetSingleTramBit(), and GetSingleTramBit().
|
inlinestatic |
Get the direction of the exit of a road depot.
t | The tile to query. |
Definition at line 565 of file road_map.h.
References _m, GB(), and IsRoadDepot().
Referenced by CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::CanEnterNewTile(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::CanExitOldTile(), CmdBuildRoadVehicle(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::ForcedReverse(), GetAnyRoadBits(), GetDepotDirection(), RoadVehicle::GetVehicleTrackdir(), and CYapfCostRoadT< Types >::PfCalcCost().
Get the owner of a specific road type.
t | The tile to query. |
rtt | RoadTramType. |
Definition at line 233 of file road_map.h.
References MayHaveRoad().
Referenced by FixOwnerOfRailTrack(), and IsRoadOwner().
Get the decorations of a road.
tile | The tile to query. |
Definition at line 493 of file road_map.h.
Referenced by HasRoadWorks(), StartRoadWorks(), and TerminateRoadWorks().
|
inlinestatic |
Get the type of the road tile.
t | Tile to query. |
Definition at line 51 of file road_map.h.
References _m, GB(), IsTileType(), and MP_ROAD.
Referenced by DrawTile_Road(), GetAnyRoadBits(), IsLevelCrossing(), IsNormalRoad(), and IsRoadDepot().
|
inlinestatic |
Get the reservation state of the rail crossing.
t | the crossing tile |
Definition at line 380 of file road_map.h.
References _m, HasBit(), and IsLevelCrossingTile().
Referenced by GetCrossingReservationTrackBits(), TryReserveRailTrack(), and UpdateLevelCrossing().
|
inlinestatic |
Check if a tile has road works.
t | The tile to check. |
Definition at line 513 of file road_map.h.
References GetRoadside(), and ROADSIDE_GRASS_ROAD_WORKS.
Referenced by StartRoadWorks(), and TerminateRoadWorks().
Check if a tile has one of the specified road types.
t | The tile to check. |
rts | Allowed road types. |
Definition at line 221 of file road_map.h.
References GetPresentRoadTypes(), and MayHaveRoad().
Referenced by CheckRoadBlockedForOvertaking(), CmdBuildRoadVehicle(), and RoadStop::GetNextRoadStop().
|
inlinestatic |
Check if a tile has a road or a tram road type.
t | The tile to check. |
tram | True to check tram, false to check road. |
Definition at line 210 of file road_map.h.
Referenced by GetAnyRoadBits(), HasTownOwnedRoad(), and IsRoadOwner().
|
inlinestatic |
Checks if given tile has town owned road.
t | tile to check |
Definition at line 279 of file road_map.h.
References HasTileRoadType().
Referenced by ClosestTownFromTile(), UpdateNearestTownForRoadTiles(), and Town::~Town().
|
inlinestatic |
Increase the progress counter of road works.
t | The tile to modify. |
Definition at line 523 of file road_map.h.
|
inlinestatic |
Check if the level crossing is barred.
t | The tile to query. |
Definition at line 416 of file road_map.h.
References _m, HasBit(), and IsLevelCrossing().
Referenced by MaybeBarCrossingWithSound(), and UpdateLevelCrossing().
|
inlinestatic |
Return whether a tile is a level crossing.
t | Tile to query. |
Definition at line 84 of file road_map.h.
References GetRoadTileType(), and ROAD_TILE_CROSSING.
Referenced by AfterLoadCompanyStats(), CanEnterTileOwnerCheck(), CmdConvertRail(), GetCrossingRailAxis(), GetCrossingRoadAxis(), GetRailTrackBitsUniversal(), GetReservedTrackbits(), GetTileRailType(), IsCrossingBarred(), IsLevelCrossingTile(), CYapfCostRoadT< Types >::OneTileCost(), CYapfCostRailT< Types >::OneTileCost(), SetCrossingBarred(), TryReserveRailTrack(), and UnreserveRailTrack().
|
inlinestatic |
Return whether a tile is a level crossing tile.
t | Tile to query. |
Definition at line 94 of file road_map.h.
References IsLevelCrossing(), IsTileType(), and MP_ROAD.
Referenced by CmdConvertRail(), DeleteLastWagon(), FixOwnerOfRailTrack(), HasCrossingReservation(), SetCrossingReservation(), TrainApproachingCrossing(), TrainApproachingCrossingTile(), and UpdateLevelCrossing().
|
inlinestatic |
Return whether a tile is a normal road.
t | Tile to query. |
Definition at line 63 of file road_map.h.
References GetRoadTileType(), and ROAD_TILE_NORMAL.
Referenced by DrawRoadCatenary(), GetDisallowedRoadDirections(), GetRoadBits(), IsNormalRoadTile(), SetDisallowedRoadDirections(), and SetRoadBits().
|
inlinestatic |
Return whether a tile is a normal road tile.
t | Tile to query. |
Definition at line 73 of file road_map.h.
References IsNormalRoad(), IsTileType(), and MP_ROAD.
Referenced by CleanUpRoadBits(), ConnectRoadToStructure(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::GetSingleTramBit(), GetSingleTramBit(), and GrowTownWithBridge().
|
inlinestatic |
Check if a road tile has snow/desert.
t | The tile to query. |
Definition at line 459 of file road_map.h.
Referenced by DrawRoadAsSnowDesert().
|
inlinestatic |
Return whether a tile is a road depot.
t | Tile to query. |
Definition at line 105 of file road_map.h.
References GetRoadTileType(), and ROAD_TILE_DEPOT.
Referenced by ClosestTownFromTile(), GetRoadDepotDirection(), GetTownIndex(), IsRoadDepotTile(), SetTownIndex(), and UpdateNearestTownForRoadTiles().
|
inlinestatic |
Return whether a tile is a road depot tile.
t | Tile to query. |
Definition at line 115 of file road_map.h.
References IsRoadDepot(), IsTileType(), and MP_ROAD.
Referenced by CanEnterTileOwnerCheck(), GetDepotIndex(), GetTownRoadBits(), IsDepotTile(), CYapfCostRoadT< Types >::PfCalcCost(), and CYapfDestinationAnyDepotRoadT< Types >::PfDetectDestination().
Check if a specific road type is owned by an owner.
t | The tile to query. |
tram | True to check tram, false to check road. |
o | Owner to compare with. |
Definition at line 267 of file road_map.h.
References GetRoadOwner(), and HasTileRoadType().
|
inlinestatic |
Make a level crossing.
t | Tile to make a level crossing. |
road | New owner of road. |
tram | New owner of tram tracks. |
rail | New owner of the rail track. |
roaddir | Axis of the road. |
rat | New rail type. |
road_rt | The road roadtype to set for the tile. |
tram_rt | The tram roadtype to set for the tile. |
town | Town ID if the road is a town-owned road. |
Definition at line 660 of file road_map.h.
References _m, _me, INVALID_ROADTYPE, Tile::m2, Tile::m3, Tile::m4, Tile::m5, TileExtended::m7, TileExtended::m8, MP_ROAD, ROAD_TILE_CROSSING, SB(), SetRoadOwner(), SetRoadTypes(), SetTileOwner(), and SetTileType().
|
inlinestatic |
Make a road depot.
t | Tile to make a level crossing. |
owner | New owner of the depot. |
did | New depot ID. |
dir | Direction of the depot exit.* |
rt | Road type of the depot. |
Definition at line 683 of file road_map.h.
References _m, _me, INVALID_ROADTYPE, Tile::m2, Tile::m3, Tile::m4, Tile::m5, TileExtended::m7, TileExtended::m8, MP_ROAD, Window::owner, ROAD_TILE_DEPOT, SB(), SetRoadType(), SetTileOwner(), and SetTileType().
|
inlinestatic |
Make a normal road tile.
t | Tile to make a normal road. |
bits | Road bits to set for all present road types. |
road_rt | The road roadtype to set for the tile. |
tram_rt | The tram roadtype to set for the tile. |
town | Town ID if the road is a town-owned road. |
road | New owner of road. |
tram | New owner of tram tracks. |
Definition at line 635 of file road_map.h.
References _m, _me, INVALID_ROADTYPE, Tile::m2, Tile::m3, Tile::m5, TileExtended::m7, MP_ROAD, ROAD_TILE_NORMAL, SB(), SetRoadOwner(), SetRoadTypes(), SetTileOwner(), and SetTileType().
|
inlinestatic |
Test whether a tile can have road/tram types.
t | Tile to query. |
Definition at line 32 of file road_map.h.
References GetTileType(), MP_ROAD, MP_STATION, and MP_TUNNELBRIDGE.
Referenced by CanConnectToRoad(), DrawRoadTypeCatenary(), GetAnyRoadBits(), GetPresentRoadTypes(), GetRoadOwner(), HasTileAnyRoadType(), RemoveRoad(), SetRoadTypeRoad(), and SetRoadTypeTram().
|
inlinestatic |
Set the bar state of a level crossing.
t | The tile to modify. |
barred | True if the crossing should be barred, false otherwise. |
Definition at line 428 of file road_map.h.
References _m, IsLevelCrossing(), and SB().
Referenced by BarCrossing(), and UnbarCrossing().
|
inlinestatic |
Set the reservation state of the rail crossing.
t | the crossing tile |
b | the reservation state |
Definition at line 393 of file road_map.h.
References _m, IsLevelCrossingTile(), and SB().
Referenced by TryReserveRailTrack(), and UnreserveRailTrack().
|
inlinestatic |
Sets the disallowed directions.
t | the tile to set the directions for |
drd | the disallowed directions |
Definition at line 312 of file road_map.h.
References _m, DRD_END, IsNormalRoad(), and SB().
Set the present road bits for a specific road type.
t | The tile to change. |
r | The new road bits. |
rt | Road type. |
Definition at line 152 of file road_map.h.
References IsNormalRoad().
Set the owner of a specific road type.
t | The tile to change. |
rtt | RoadTramType. |
o | New owner of the given road type. |
Definition at line 250 of file road_map.h.
Referenced by ConvertRoadTypeOwner(), MakeRoadBridgeRamp(), MakeRoadCrossing(), MakeRoadNormal(), and MakeRoadTunnel().
Set the decorations of a road.
tile | The tile to change. |
s | The new road decoration of the tile. |
Definition at line 503 of file road_map.h.
Referenced by StartRoadWorks(), and TerminateRoadWorks().
Set the road type of a tile.
t | The tile to change. |
rtt | Set road or tram type. |
rt | The road type to set. |
Definition at line 604 of file road_map.h.
Referenced by MakeRoadDepot().
Set the road road type of a tile.
t | The tile to change. |
rt | The road type to set. |
Definition at line 579 of file road_map.h.
References INVALID_ROADTYPE, and MayHaveRoad().
Referenced by SetRoadTypes().
Set the present road types of a tile.
t | The tile to change. |
road_rt | The road roadtype to set for the tile. |
tram_rt | The tram roadtype to set for the tile. |
Definition at line 619 of file road_map.h.
References SetRoadTypeRoad(), and SetRoadTypeTram().
Referenced by MakeRailTunnel(), MakeRoadCrossing(), and MakeRoadNormal().
Set the tram road type of a tile.
t | The tile to change. |
rt | The road type to set. |
Definition at line 591 of file road_map.h.
References INVALID_ROADTYPE, and MayHaveRoad().
Referenced by SetRoadTypes().
|
inlinestatic |
Start road works on a tile.
t | The tile to start the work on. |
Definition at line 535 of file road_map.h.
References GetRoadside(), HasRoadWorks(), ROADSIDE_BARREN, ROADSIDE_GRASS, ROADSIDE_GRASS_ROAD_WORKS, ROADSIDE_PAVED_ROAD_WORKS, and SetRoadside().
|
inlinestatic |
Terminate road works on a tile.
t | Tile to stop the road works on. |
Definition at line 551 of file road_map.h.
References _me, GetRoadside(), HasRoadWorks(), ROADSIDE_GRASS, ROADSIDE_GRASS_ROAD_WORKS, SB(), and SetRoadside().
|
inlinestatic |
Toggle the snow/desert state of a road tile.
t | The tile to change. |
Definition at line 470 of file road_map.h.
References _me, and ToggleBit().
|
inlinestatic |
Unbar a level crossing.
t | The tile to change. |
Definition at line 438 of file road_map.h.
References SetCrossingBarred().