OpenTTD Source 20250205-master-gfd85ab1e2c
newgrf_roadtype.h File Reference

NewGRF handling of road types. More...

#include "road.h"
#include "newgrf_commons.h"
#include "newgrf_spritegroup.h"

Go to the source code of this file.

Data Structures

struct  RoadTypeScopeResolver
 Resolver for the railtype scope. More...
 
struct  RoadTypeResolverObject
 Resolver object for road types. More...
 

Functions

SpriteID GetCustomRoadSprite (const RoadTypeInfo *rti, TileIndex tile, RoadTypeSpriteGroup rtsg, TileContext context=TCX_NORMAL, uint *num_results=nullptr)
 Get the sprite to draw for the given tile.
 
RoadType GetRoadTypeTranslation (RoadTramType rtt, uint8_t tracktype, const GRFFile *grffile)
 Translate an index to the GRF-local road/tramtype-translation table into a RoadType.
 
uint8_t GetReverseRoadTypeTranslation (RoadType roadtype, const GRFFile *grffile)
 Perform a reverse roadtype lookup to get the GRF internal ID.
 
void ConvertRoadTypes ()
 Test if any saved road type labels are different to the currently loaded road types.
 
void SetCurrentRoadTypeLabelList ()
 Populate road type label list with current values.
 
void ClearRoadTypeLabelList ()
 

Detailed Description

NewGRF handling of road types.

Definition in file newgrf_roadtype.h.

Function Documentation

◆ ClearRoadTypeLabelList()

void ClearRoadTypeLabelList ( )

Definition at line 231 of file newgrf_roadtype.cpp.

◆ ConvertRoadTypes()

void ConvertRoadTypes ( )

Test if any saved road type labels are different to the currently loaded road types.

Road types stored in the map will be converted if necessary.

Definition at line 178 of file newgrf_roadtype.cpp.

References GetRoadTypeByLabel(), GetTileType(), GetTunnelBridgeTransportType(), INVALID_ROADTYPE, IsRoadWaypoint(), IsStationRoadStop(), Map::Iterate(), MP_ROAD, MP_STATION, MP_TUNNELBRIDGE, ROADTYPE_ROAD, ROADTYPE_TRAM, SetRoadTypeRoad(), SetRoadTypeTram(), and TRANSPORT_ROAD.

Referenced by AfterLoadLabelMaps().

◆ GetCustomRoadSprite()

SpriteID GetCustomRoadSprite ( const RoadTypeInfo rti,
TileIndex  tile,
RoadTypeSpriteGroup  rtsg,
TileContext  context,
uint *  num_results 
)

Get the sprite to draw for the given tile.

Parameters
rtiThe road type data (spec).
tileThe tile to get the sprite for.
rtsgThe type of sprite to draw.
contentWhere are we drawing the tile?
[out]num_resultsIf not nullptr, return the number of sprites in the spriteset.
Returns
The sprite to draw.

Definition at line 102 of file newgrf_roadtype.cpp.

References RoadTypeInfo::group, and SpriteGroup::Resolve().

Referenced by DrawBridgeRoadBits(), DrawRoadBits(), DrawRoadDepotSprite(), DrawRoadOverlays(), DrawRoadStopTile(), DrawRoadTypeCatenary(), DrawTile_Road(), DrawTile_TunnelBridge(), and GetBridgeRoadCatenary().

◆ GetReverseRoadTypeTranslation()

uint8_t GetReverseRoadTypeTranslation ( RoadType  roadtype,
const GRFFile grffile 
)

Perform a reverse roadtype lookup to get the GRF internal ID.

Parameters
roadtypeThe global (OpenTTD) roadtype.
grffileThe GRF to do the lookup for.
Returns
the GRF internal ID.

Definition at line 154 of file newgrf_roadtype.cpp.

References find_index(), GetRoadTypeInfo(), RoadTypeInfo::label, GRFFile::roadtype_list, and GRFFile::tramtype_list.

Referenced by RoadStopScopeResolver::GetVariable().

◆ GetRoadTypeTranslation()

RoadType GetRoadTypeTranslation ( RoadTramType  rtt,
uint8_t  tracktype,
const GRFFile grffile 
)

Translate an index to the GRF-local road/tramtype-translation table into a RoadType.

Parameters
rttWhether to index the road- or tramtype-table.
tracktypeIndex into GRF-local translation table.
grffileOriginating GRF file.
Returns
RoadType or INVALID_ROADTYPE if the roadtype is unknown.

Definition at line 124 of file newgrf_roadtype.cpp.

References GetRoadTypeByLabel(), INVALID_ROADTYPE, GRFFile::roadtype_list, and GRFFile::tramtype_list.

◆ SetCurrentRoadTypeLabelList()

void SetCurrentRoadTypeLabelList ( )

Populate road type label list with current values.

Definition at line 223 of file newgrf_roadtype.cpp.

References GetRoadTypeInfo(), RoadTypeInfo::label, ROADTYPE_BEGIN, and ROADTYPE_END.

Referenced by AfterLoadLabelMaps(), and GenerateWorld().