OpenTTD Source 20241224-master-gf74b0cf984
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.
 

Detailed Description

NewGRF handling of road types.

Definition in file newgrf_roadtype.h.

Function Documentation

◆ 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 101 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 153 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 123 of file newgrf_roadtype.cpp.

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