Defines | Functions

road_func.h File Reference

Functions related to roads. More...

#include "core/bitmath_func.hpp"
#include "road_type.h"
#include "economy_func.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.
static Money RoadMaintenanceCost (RoadType roadtype, uint32 num)
 Calculates the maintenance cost of a number of road bits.
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.

Detailed Description

Functions related to roads.

Definition in file road_func.h.


Define Documentation

#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.

Parameters:
var Loop index variable that stores fallowing set road type. Must be of type RoadType.
road_types The value to iterate through (any expression).
See also:
FOR_EACH_SET_BIT_EX

Definition at line 28 of file road_func.h.

Referenced by AfterLoadCompanyStats(), CmdBuildBridge(), CmdBuildRoadStop(), CmdBuildTunnel(), CmdRemoveRoadStop(), DoClearBridge(), DoClearTunnel(), and RemoveRoadStop().


Function Documentation

static RoadBits AxisToRoadBits ( Axis  a  )  [inline, static]

Create the road-part which belongs to the given Axis.

This function returns a RoadBits value which belongs to the given Axis.

Parameters:
a The Axis
Returns:
The result RoadBits which the selected road-part set

Definition at line 143 of file road_func.h.

References AXIS_X, and ROAD_X.

Referenced by CmdBuildLongRoad(), CmdBuildRoad(), CmdRemoveLongRoad(), GetAnyRoadBits(), RemoveRoad(), and RoadFindPathToDest().

static RoadBits ComplementRoadBits ( RoadBits  r  )  [inline, static]

Calculate the complement of a RoadBits value.

Simply flips all bits in the RoadBits value to get the complement of the RoadBits.

Parameters:
r The given RoadBits value
Returns:
the complement

Definition at line 74 of file road_func.h.

References ROAD_ALL.

Referenced by CmdBuildRoad(), and RemoveRoad().

static RoadTypes ComplementRoadTypes ( RoadTypes  r  )  [inline, static]

Returns the RoadTypes which are not present in the given RoadTypes.

This function returns the complement of a given RoadTypes.

Parameters:
r The given RoadTypes
Returns:
The complement of the given RoadTypes

Definition at line 59 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.

Parameters:
d The DiagDirection
Returns:
The result RoadBits which the selected road-part set

Definition at line 129 of file road_func.h.

References ROAD_NW.

Referenced by CanConnectToRoad(), CleanUpRoadBits(), CmdBuildLongRoad(), CmdBuildRoad(), CmdRemoveRoadStop(), ConnectRoadToStructure(), GetAnyRoadBits(), GetTownRoadGridElement(), GrowTownAtRoad(), GrowTownInTile(), GrowTownWithBridge(), IsNeighborRoadTile(), and RoadFindPathToDest().

RoadTypes GetCompanyRoadtypes ( CompanyID  company  ) 

Get the road types the given company can build.

Parameters:
company the company to get the roadtypes for.
Returns:
the road types.

Definition at line 134 of file road.cpp.

References _date, _settings_game, EngineInfo::climates, Engine::company_avail, DAYS_IN_YEAR, EF_ROAD_TRAM, GameSettings::game_creation, HasBit(), Engine::intro_date, GameCreationSettings::landscape, EngineInfo::misc_flags, ROADTYPE_ROAD, ROADTYPE_TRAM, SetBit(), and VEH_ROAD.

Referenced by AfterLoadGame(), DoStartupNewCompany(), and StartupEngines().

bool HasRoadTypesAvail ( const CompanyID  company,
const RoadTypes  rts 
)

Finds out, whether given company has all given RoadTypes available.

Parameters:
company ID of company
rts RoadTypes to test
Returns:
true if company has all requested RoadTypes available

Definition at line 105 of file road.cpp.

References _generating_world, Company::avail_roadtypes, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::GetIfValid(), OWNER_DEITY, OWNER_TOWN, and ROADTYPES_ROAD.

Referenced by CmdBuildBridge(), CmdBuildRoadStop(), CmdBuildTunnel(), and ValParamRoadType().

static bool IsStraightRoad ( RoadBits  r  )  [inline, static]

Check if we've got a straight road.

Parameters:
r The given RoadBits
Returns:
true if we've got a straight road

Definition at line 115 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.

Parameters:
rt the roadtype to check for validness
Returns:
true if and only if valid

Definition at line 35 of file road_func.h.

References ROADTYPE_ROAD.

Referenced by CmdBuildLongRoad(), CmdBuildRoad(), CmdBuildRoadDepot(), and CmdRemoveLongRoad().

static RoadBits MirrorRoadBits ( RoadBits  r  )  [inline, static]

Calculate the mirrored RoadBits.

Simply move the bits to their new position.

Parameters:
r The given RoadBits value
Returns:
the mirrored

Definition at line 87 of file road_func.h.

References GB().

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

static Money RoadMaintenanceCost ( RoadType  roadtype,
uint32  num 
) [inline, static]

Calculates the maintenance cost of a number of road bits.

Parameters:
roadtype Road type to get the cost for.
num Number of road bits.
Returns:
Total cost.

Definition at line 155 of file road_func.h.

References IntSqrt(), ROADTYPE_END, and ROADTYPE_TRAM.

Referenced by CompaniesGenStatistics(), CompanyInfrastructureWindow::DrawWidget(), CompanyInfrastructureWindow::GetTotalMaintenanceCost(), and CompanyInfrastructureWindow::UpdateWidgetSize().

static RoadTypes RoadTypeToRoadTypes ( RoadType  rt  )  [inline, static]

Maps a RoadType to the corresponding RoadTypes value.

Parameters:
rt the roadtype to get the roadtypes from
Returns:
the roadtypes with the given roadtype

Definition at line 46 of file road_func.h.

Referenced by AfterLoadVehicles(), CmdBuildRoad(), CmdBuildRoadVehicle(), 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.

Parameters:
r The given RoadBits value
rot The given Rotation angle
Returns:
the rotated

Definition at line 101 of file road_func.h.

References GB().

void UpdateLevelCrossing ( TileIndex  tile,
bool  sound 
)
bool ValParamRoadType ( const RoadType  rt  ) 

Validate functions for rail building.

Parameters:
rt road type to check.
Returns:
true if the current company may build the road.

Definition at line 124 of file road.cpp.

References _current_company, HasRoadTypesAvail(), and RoadTypeToRoadTypes().

Referenced by CmdBuildLongRoad(), CmdBuildRoad(), and CmdBuildRoadDepot().