# road_internal.h File Reference

Functions used internally by the roads. More...

`#include "tile_cmd.h"`

Go to the source code of this file.

## Functions
RoadBits | CleanUpRoadBits (const TileIndex tile, RoadBits org_rb)
| Clean up unneccesary RoadBits of a planed tile.
bool | CheckAllowRemoveRoad (TileIndex tile, RoadBits remove, Owner owner, RoadType rt, DoCommandFlag flags, bool town_check=true)
| Is it allowed to remove the given road bits from the given tile?
void | DrawTramCatenary (const TileInfo *ti, RoadBits tram)
| Draw the catenary for tram road bits.

## Detailed Description

Functions used internally by the roads.

Definition in file road_internal.h.

## Function Documentation

bool CheckAllowRemoveRoad | ( | TileIndex | tile,
|  | RoadBits | remove,
|  | Owner | owner,
|  | RoadType | rt,
|  | DoCommandFlag | flags,
|  | bool | town_check |
| ) |  |  |

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

Parameters:

  | tile | the tile to remove the road from
  | remove | the roadbits that are going to be removed
  | owner | the actual owner of the roadbits of the tile
  | rt | the road type to remove the bits from
  | flags | command flags
  | town_check | Shall the town rating checked/affected

Returns:
  true when it is allowed to remove the road bits

Definition at line 114 of file road_cmd.cpp.

References _settings_game, ChangeTownRating(), GameSettings::construction, ConstructionSettings::extra_dynamite, GetAnyRoadBits(), KillFirstBit(), Cheats::magic_bulldozer, OWNER_NONE, OWNER_TOWN, OWNER_WATER, RATING_ROAD_DOWN_STEP_EDGE, RATING_ROAD_DOWN_STEP_INNER, ROAD_NE, ROAD_NONE, ROAD_NW, ROAD_SE, ROAD_SW, ROADTYPE_ROAD, TILE_ADDXY, and Cheat::value.

Referenced by CanRemoveRoadWithStop(), and RemoveRoad().

RoadBits CleanUpRoadBits | ( | const TileIndex | tile,
|  | RoadBits | org_rb |
| ) |  |  |

Clean up unneccesary RoadBits of a planed tile.

Parameters:

  | tile | current tile
  | org_rb | planed RoadBits

Returns:
  optimised RoadBits

Definition at line 26 of file road.cpp.

References CountBits(), DIAGDIR_BEGIN, DIAGDIR_END, DiagDirToAxis(), DiagDirToRoadBits(), GetAnyRoadBits(), GetTileType(), IsPossibleCrossing(), IsValidTile(), IsWater(), MirrorRoadBits(), MP_CLEAR, MP_RAILWAY, MP_ROAD, MP_STATION, MP_TREES, MP_TUNNELBRIDGE, MP_WATER, ROAD_NONE, ROADTYPE_ROAD, ROADTYPE_TRAM, and TileAddByDiagDir().

Referenced by GrowTownInTile().

void DrawTramCatenary | ( | const TileInfo * | ti,
|  | RoadBits | tram |
| ) |  |  |

Draw the catenary for tram road bits.

Parameters:

  | ti | information about the tile (position, slope)
  | tram | the roadbits to draw the catenary for

Draw the catenary for tram road bits.

Parameters:

  | ti | information about the tile (slopes, height etc)
  | tram | the roadbits for the tram

Definition at line 1009 of file road_cmd.cpp.

References AddSortableSpriteToDraw(), BB_HEIGHT_UNDER_BRIDGE, GetBridgeHeight(), GetNorthernBridgeEnd(), GetTileMaxZ(), IsBridgeAbove(), IsInvisibilitySet(), IsTransparencySet(), MayHaveBridgeAbove(), SLOPE_FLAT, TileInfo::tile, TILE_HEIGHT, TileInfo::tileh, TO_CATENARY, TileInfo::x, TileInfo::y, and TileInfo::z.

Referenced by DrawRoadBits(), and DrawTile_Road().