| OpenTTD
    | 
Different functions related to conversions between directions. More...
#include "direction_type.h"Go to the source code of this file.
| Functions | |
| static bool | IsValidDiagDirection (DiagDirection d) | 
| Checks if an integer value is a valid DiagDirection. | |
| static bool | IsValidDirection (Direction d) | 
| Checks if an integer value is a valid Direction. | |
| static bool | IsValidAxis (Axis d) | 
| Checks if an integer value is a valid Axis. | |
| static Direction | ReverseDir (Direction d) | 
| Return the reverse of a direction. | |
| static DirDiff | DirDifference (Direction d0, Direction d1) | 
| Calculate the difference between two directions. | |
| static DirDiff | ChangeDirDiff (DirDiff d, DirDiff delta) | 
| Applies two differences together. | |
| static Direction | ChangeDir (Direction d, DirDiff delta) | 
| Change a direction by a given difference. | |
| static DiagDirection | ReverseDiagDir (DiagDirection d) | 
| Returns the reverse direction of the given DiagDirection. | |
| static DiagDirDiff | DiagDirDifference (DiagDirection d0, DiagDirection d1) | 
| Calculate the difference between two DiagDirection values. | |
| static DiagDirection | ChangeDiagDir (DiagDirection d, DiagDirDiff delta) | 
| Applies a difference on a DiagDirection. | |
| static DiagDirection | DirToDiagDir (Direction dir) | 
| Convert a Direction to a DiagDirection. | |
| static Direction | DiagDirToDir (DiagDirection dir) | 
| Convert a DiagDirection to a Direction. | |
| static Axis | OtherAxis (Axis a) | 
| Select the other axis as provided. | |
| static Axis | DiagDirToAxis (DiagDirection d) | 
| Convert a DiagDirection to the axis. | |
| static DiagDirection | AxisToDiagDir (Axis a) | 
| Converts an Axis to a DiagDirection. | |
| static Direction | AxisToDirection (Axis a) | 
| Converts an Axis to a Direction. | |
| static DiagDirection | XYNSToDiagDir (Axis xy, uint ns) | 
| Convert an axis and a flag for north/south into a DiagDirection. | |
| static bool | IsDiagonalDirection (Direction dir) | 
| Checks if a given Direction is diagonal. | |
Different functions related to conversions between directions.
Definition in file direction_func.h.
| 
 | inlinestatic | 
Converts an Axis to a DiagDirection.
This function returns the DiagDirection which belongs to the axis. As 2 directions are mapped to an axis this function returns the one which points to south, either south-west (on X axis) or south-east (on Y axis)
| a | The axis | 
Definition at line 234 of file direction_func.h.
References IsValidAxis().
Referenced by CmdBuildBridge(), CmdBuildLongRoad(), CmdBuildRailStation(), CmdBuildRailWaypoint(), CmdBuildRoadStop(), DrawBridgePillars(), GetNorthernBridgeEnd(), GetSouthernBridgeEnd(), and TrainApproachingCrossing().
Converts an Axis to a Direction.
This function returns the Direction which belongs to the axis. As 2 directions are mapped to an axis this function returns the one which points to south, either south-west (on X axis) or south-east (on Y axis)
| a | The axis | 
Definition at line 251 of file direction_func.h.
References IsValidAxis().
Referenced by AfterLoadGame().
| 
 | inlinestatic | 
Applies a difference on a DiagDirection.
This function applies a difference on a DiagDirection and returns the new DiagDirection.
| d | The DiagDirection | 
| delta | The difference to apply on | 
Definition at line 151 of file direction_func.h.
References IsValidDiagDirection().
Referenced by AircraftGetEntryPoint(), GrowTownInTile(), IsNeighborRoadTile(), and TrainExitDir().
Change a direction by a given difference.
This functions returns a new direction of the given direction which is rotated by the given difference.
| d | The direction to get a new direction from | 
| delta | The offset/drift applied to the direction | 
Definition at line 106 of file direction_func.h.
References IsValidDirection().
Referenced by AircraftController(), ChangeTrainDirRandomly(), DisasterTick_Submarine(), Airport::GetHangarExitDirection(), HandleCrashedAircraft(), RotateAirportMovingData(), and SpawnAdvancedVisualEffect().
Applies two differences together.
This function adds two differences together and returns the resulting difference. So adding two DIRDIFF_REVERSE together results in the DIRDIFF_SAME difference.
| d | The first difference | 
| delta | The second difference to add on | 
Definition at line 90 of file direction_func.h.
| 
 | inlinestatic | 
Calculate the difference between two DiagDirection values.
| d0 | The first direction as the base | 
| d1 | The second direction as the offset from the base | 
Definition at line 133 of file direction_func.h.
References IsValidDiagDirection().
Referenced by AircraftGetEntryPoint().
| 
 | inlinestatic | 
Convert a DiagDirection to the axis.
This function returns the axis which belongs to the given DiagDirection. The axis X belongs to the DiagDirection north-east and south-west.
| d | The DiagDirection | 
Definition at line 216 of file direction_func.h.
References IsValidDiagDirection().
Referenced by AfterLoadGame(), CanEnterTileOwnerCheck(), CheckFlatLandRoadStop(), CleanUpRoadBits(), CmdBuildBridge(), CmdBuildRoad(), CmdBuildRoadStop(), CmdBuildTunnel(), CmdRemoveRoadStop(), DrawRailCatenaryRailway(), DrawTile_TunnelBridge(), ExploreSegment(), GetAnyRoadBits(), GetBridgeHeight(), IsRoadAllowedHere(), IsWateredTile(), MakeDock(), MaskWireBits(), PlaceRoad_BusStation(), PlaceRoad_TruckStation(), RemoveRoad(), RoadFindPathToDest(), SetRailStationPlatformReservation(), SetupFarmFieldFence(), CYapfCostBase::stSlopeCost(), TrainApproachingCrossingTile(), TryBuildLightHouse(), GroundVehicle< RoadVehicle, VEH_ROAD >::UpdateZPosition(), and VehicleEnter_Track().
| 
 | inlinestatic | 
Convert a DiagDirection to a Direction.
This function can be used to convert the 4-way DiagDirection to the 8-way Direction. As 4-way are less than 8-way not all possible directions can be calculated.
| dir | The direction to convert | 
Definition at line 184 of file direction_func.h.
References IsValidDiagDirection().
Referenced by AfterLoadGame(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildRoadVehicle(), TrainCanLeaveTile(), and VehicleEnter_Track().
Calculate the difference between two directions.
| d0 | The first direction as the base | 
| d1 | The second direction as the offset from the base | 
Definition at line 70 of file direction_func.h.
References IsValidDirection().
Referenced by AircraftController(), Train::GetCurveSpeedLimit(), Airport::GetHangarExitDirection(), and TrainController().
| 
 | inlinestatic | 
Convert a Direction to a DiagDirection.
This function can be used to convert the 8-way Direction to the 4-way DiagDirection. If the direction cannot be mapped its "rounded clockwise". So DIR_N becomes DIAGDIR_NE.
| dir | The direction to convert | 
Definition at line 168 of file direction_func.h.
References IsValidDirection().
Referenced by AfterLoadGame(), AircraftGetEntryPoint(), CmdTurnRoadVeh(), DisasterTick_Submarine(), RoadStop::Enter(), FindVehiclesInRoadStop(), GetTrainStopLocation(), Ship::GetVehicleTrackdir(), RoadVehicle::GetVehicleTrackdir(), Train::GetVehicleTrackdir(), IsWateredTile(), RoadStop::Leave(), TrainExitDir(), and GroundVehicle< RoadVehicle, VEH_ROAD >::UpdateZPosition().
| 
 | inlinestatic | 
Checks if a given Direction is diagonal.
| dir | The given direction. | 
Definition at line 275 of file direction_func.h.
References IsValidDirection().
Referenced by TrainApproachingLineEnd(), RoadVehicle::UpdateDeltaXY(), and Train::UpdateDeltaXY().
| 
 | inlinestatic | 
Checks if an integer value is a valid Axis.
| d | The value to check | 
Definition at line 45 of file direction_func.h.
References AXIS_END.
Referenced by AxisToDiagDir(), AxisToDirection(), AxisToRoadBits(), AxisToTrack(), OtherAxis(), PlaceRail_Waypoint(), and XYNSToDiagDir().
| 
 | inlinestatic | 
Checks if an integer value is a valid DiagDirection.
| d | The value to check | 
Definition at line 23 of file direction_func.h.
References DIAGDIR_END.
Referenced by ChangeDiagDir(), ChooseShipTrack(), DiagDirDifference(), DiagdirReachesTrackdirs(), DiagDirToAxis(), DiagDirToDiagTrack(), DiagDirToDiagTrackBits(), DiagDirToDiagTrackdir(), DiagDirToDir(), DiagDirToRoadBits(), ExploreSegment(), GetOtherAqueductEnd(), GrowTownAtRoad(), BuildDocksToolbarWindow::OnPlacePresize(), OPFShipChooseTrack(), ReverseDiagDir(), TileIndexDiffCByDiagDir(), TileOffsByDiagDir(), TrackEnterdirToTrackdir(), TrackExitdirToTrackdir(), and TrainController().
| 
 | inlinestatic | 
Checks if an integer value is a valid Direction.
| d | The value to check | 
Definition at line 34 of file direction_func.h.
References DIR_END.
Referenced by ChangeDir(), DirDifference(), DirToDiagDir(), IsDiagonalDirection(), ReverseDir(), TileIndexDiffCByDir(), TileOffsByDir(), and TrackDirectionToTrackdir().
Select the other axis as provided.
This is basically the not-operator for the axis.
| a | The given axis | 
Definition at line 199 of file direction_func.h.
References IsValidAxis().
Referenced by CmdBuildRailWaypoint(), CmdBuildRoad(), DrawBridgePillars(), and GetCrossingRailAxis().
| 
 | inlinestatic | 
Returns the reverse direction of the given DiagDirection.
| d | The DiagDirection to get the reverse from | 
Definition at line 120 of file direction_func.h.
References IsValidDiagDirection().
Referenced by AfterLoadGame(), CanConnectToRoad(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::CanEnterNewTile(), CanEnterTile(), CanFollowRoad(), CcBuildBridge(), CcBuildRoadTunnel(), CcRoadStop(), CheckTownBuild2House(), CheckTownBuild2x2House(), ClearPathReservation(), CmdBuildBridge(), CmdBuildDock(), CmdBuildLongRoad(), CmdBuildTunnel(), ConnectRoadToStructure(), DoClearBridge(), DoClearTunnel(), DrawBridgePillars(), DrawRailCatenaryRailway(), ExploreSegment(), FixOwnerOfRailTrack(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::FollowTileExit(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::ForcedReverse(), GetAnyRoadBits(), GetBridgeEnd(), GetNorthernBridgeEnd(), GetOtherAqueductEnd(), GetOtherTunnelEnd(), GetTownRoadGridElement(), GrowTownAtRoad(), GrowTownInTile(), GrowTownWithBridge(), IsNeighborRoadTile(), IsWateredTile(), MaskWireBits(), BuildDocksToolbarWindow::OnPlaceObject(), BuildDocksToolbarWindow::OnPlacePresize(), OPFShipChooseTrack(), CYapfCostRoadT< Types >::PfCalcCost(), CYapfCostRailT< Types >::PfCalcCost(), RoadStop::Entry::Rebuild(), TrainApproachingCrossing(), TrainCanLeaveTile(), TrainCheckIfLineEnds(), TrainController(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::TryReverse(), UpdateSignalsInBuffer(), and VehicleEnter_Track().
Return the reverse of a direction.
| d | The direction to get the reverse from | 
Definition at line 56 of file direction_func.h.
References IsValidDirection().
Referenced by AfterLoadGame(), DrawRailCatenaryOnBridge(), Train::GetImage(), SpawnAdvancedVisualEffect(), TileLoop_Water(), UpdateStatusAfterSwap(), and VehicleEnter_Track().
| 
 | inlinestatic | 
Convert an axis and a flag for north/south into a DiagDirection.
| xy | axis to convert | 
| ns | north -> 0, south -> 1 | 
Definition at line 263 of file direction_func.h.
References IsValidAxis().
Referenced by AfterLoadGame(), and GetShipDepotDirection().
 1.8.1.2
 1.8.1.2