Functions related to roads. More...
#include "core/bitmath_func.hpp"#include "road_type.h"#include "direction_type.h"#include "company_type.h"#include "tile_type.h"Go to the source code of this file.
Defines | |
| #define | FOR_EACH_SET_ROADTYPE(var, road_types) FOR_EACH_SET_BIT_EX(RoadType, var, RoadTypes, road_types) |
| Iterate through each set RoadType in a RoadTypes value. | |
Functions | |
| static bool | IsValidRoadType (RoadType rt) |
| Whether the given roadtype is valid. | |
| static RoadTypes | RoadTypeToRoadTypes (RoadType rt) |
| Maps a RoadType to the corresponding RoadTypes value. | |
| static RoadTypes | ComplementRoadTypes (RoadTypes r) |
| Returns the RoadTypes which are not present in the given RoadTypes. | |
| static RoadBits | ComplementRoadBits (RoadBits r) |
| Calculate the complement of a RoadBits value. | |
| static RoadBits | MirrorRoadBits (RoadBits r) |
| Calculate the mirrored RoadBits. | |
| static RoadBits | RotateRoadBits (RoadBits r, DiagDirDiff rot) |
| Calculate rotated RoadBits. | |
| static bool | IsStraightRoad (RoadBits r) |
| Check if we've got a straight road. | |
| static RoadBits | DiagDirToRoadBits (DiagDirection d) |
| Create the road-part which belongs to the given DiagDirection. | |
| static RoadBits | AxisToRoadBits (Axis a) |
| Create the road-part which belongs to the given Axis. | |
| bool | HasRoadTypesAvail (const CompanyID company, const RoadTypes rts) |
| Finds out, whether given company has all given RoadTypes available. | |
| bool | ValParamRoadType (const RoadType rt) |
| Validate functions for rail building. | |
| RoadTypes | GetCompanyRoadtypes (const CompanyID company) |
| Get the road types the given company can build. | |
| void | UpdateLevelCrossing (TileIndex tile, bool sound=true) |
| Sets correct crossing state. | |
Functions related to roads.
Definition in file road_func.h.
| #define FOR_EACH_SET_ROADTYPE | ( | var, | ||
| road_types | ||||
| ) | FOR_EACH_SET_BIT_EX(RoadType, var, RoadTypes, road_types) |
Iterate through each set RoadType in a RoadTypes value.
For more informations see FOR_EACH_SET_BIT_EX.
| var | Loop index variable that stores fallowing set road type. Must be of type RoadType. | |
| road_types | The value to iterate through (any expression). |
Definition at line 30 of file road_func.h.
Create the road-part which belongs to the given Axis.
This function returns a RoadBits value which belongs to the given Axis.
| a | The Axis |
Definition at line 146 of file road_func.h.
References AXIS_X, and ROAD_X.
Referenced by CmdBuildLongRoad(), CmdBuildRoad(), CmdRemoveLongRoad(), GetAnyRoadBits(), and RoadFindPathToDest().
Calculate the complement of a RoadBits value.
Simply flips all bits in the RoadBits value to get the complement of the RoadBits.
| r | The given RoadBits value |
Definition at line 77 of file road_func.h.
References ROAD_ALL.
Referenced by CmdBuildRoad(), and RemoveRoad().
Returns the RoadTypes which are not present in the given RoadTypes.
This function returns the complement of a given RoadTypes.
| r | The given RoadTypes |
Definition at line 62 of file road_func.h.
References ROADTYPES_ALL.
Referenced by RemoveRoad().
| static RoadBits DiagDirToRoadBits | ( | DiagDirection | d | ) | [inline, static] |
Create the road-part which belongs to the given DiagDirection.
This function returns a RoadBits value which belongs to the given DiagDirection.
| d | The DiagDirection |
Definition at line 132 of file road_func.h.
References ROAD_NW.
Referenced by AIBridge::_BuildBridgeRoad1(), AIBridge::_BuildBridgeRoad2(), AITunnel::_BuildTunnelRoad1(), AITunnel::_BuildTunnelRoad2(), CleanUpRoadBits(), CmdBuildLongRoad(), CmdBuildRoad(), CmdRemoveRoadStop(), ConnectRoadToStructure(), GetAnyRoadBits(), GetTownRoadGridElement(), GrowTownAtRoad(), GrowTownInTile(), GrowTownWithBridge(), IsNeighborRoadTile(), and RoadFindPathToDest().
Get the road types the given company can build.
| company | the company to get the roadtypes for. |
Definition at line 134 of file road.cpp.
References _date, _settings_game, DAYS_IN_YEAR, EF_ROAD_TRAM, GameSettings::game_creation, HasBit(), GameCreationSettings::landscape, ROADTYPE_ROAD, ROADTYPE_TRAM, SetBit(), and VEH_ROAD.
Referenced by AfterLoadGame(), DoStartupNewCompany(), and StartupEngines().
Finds out, whether given company has all given RoadTypes available.
| company | ID of company | |
| rts | RoadTypes to test |
Definition at line 105 of file road.cpp.
References Company::avail_roadtypes, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_company_pool >::GetIfValid(), IsGeneratingWorld(), OWNER_TOWN, and ROADTYPES_ROAD.
Referenced by CmdBuildBridge(), CmdBuildRoadStop(), CmdBuildTunnel(), AIRoad::IsRoadTypeAvailable(), and ValParamRoadType().
| static bool IsStraightRoad | ( | RoadBits | r | ) | [inline, static] |
Check if we've got a straight road.
| r | The given RoadBits |
Definition at line 118 of file road_func.h.
References ROAD_X, and ROAD_Y.
Referenced by CheckRoadSlope(), CmdBuildRoad(), and RemoveRoad().
| static bool IsValidRoadType | ( | RoadType | rt | ) | [inline, static] |
Whether the given roadtype is valid.
| rt | the roadtype to check for validness |
Definition at line 37 of file road_func.h.
References ROADTYPE_ROAD.
Referenced by CmdBuildLongRoad(), CmdBuildRoad(), CmdBuildRoadDepot(), and CmdRemoveLongRoad().
Calculate the mirrored RoadBits.
Simply move the bits to their new position.
| r | The given RoadBits value |
Definition at line 90 of file road_func.h.
References GB().
Referenced by CheckRoadSlope(), CleanUpRoadBits(), CmdBuildRoad(), and RemoveRoad().
Maps a RoadType to the corresponding RoadTypes value.
| rt | the roadtype to get the roadtypes from |
Definition at line 48 of file road_func.h.
Referenced by AIRoad::_BuildRoadStationInternal(), AfterLoadVehicles(), AIBridge::BuildBridge(), AITunnel::BuildTunnel(), CmdBuildRoad(), CmdBuildRoadVehicle(), AIRoad::GetNeighbourRoadCount(), AIStation::HasRoadType(), AIRoad::IsDriveThroughRoadStationTile(), AIRoad::IsRoadDepotTile(), AIRoad::IsRoadStationTile(), AIRoad::IsRoadTypeAvailable(), MakeRoadDepot(), BuildRoadToolbarWindow::OnPlaceMouseUp(), BuildRoadToolbarWindow::OnPlaceObject(), BuildRoadToolbarWindow::OnPlacePresize(), RemoveRoad(), and ValParamRoadType().
| static RoadBits RotateRoadBits | ( | RoadBits | r, | |
| DiagDirDiff | rot | |||
| ) | [inline, static] |
Calculate rotated RoadBits.
Move the Roadbits clockwise til they are in their final position.
| r | The given RoadBits value | |
| rot | The given Rotation angle |
Definition at line 104 of file road_func.h.
References GB().
| void UpdateLevelCrossing | ( | TileIndex | tile, | |
| bool | sound | |||
| ) |
Sets correct crossing state.
| tile | tile to update | |
| sound | should we play sound? |
Definition at line 1579 of file train_cmd.cpp.
References HasCrossingReservation(), HasVehicleOnPos(), IsCrossingBarred(), IsLevelCrossingTile(), MarkTileDirtyByTile(), SetCrossingBarred(), TrainApproachingCrossing(), and TrainOnTileEnum().
Referenced by AfterLoadGame(), CmdBuildRoad(), CmdBuildSingleRail(), Train::Crash(), DeleteLastWagon(), and UnreserveRailTrack().
| bool ValParamRoadType | ( | const RoadType | rt | ) |
Validate functions for rail building.
| rt | road type to check. |
Definition at line 124 of file road.cpp.
References _current_company, HasRoadTypesAvail(), and RoadTypeToRoadTypes().
Referenced by CmdBuildLongRoad(), CmdBuildRoad(), and CmdBuildRoadDepot().
1.7.1