Functions

newgrf_railtype.cpp File Reference

NewGRF handling of rail types. More...

#include "stdafx.h"
#include "debug.h"
#include "newgrf_spritegroup.h"
#include "date_func.h"
#include "depot_base.h"
#include "town.h"

Go to the source code of this file.

Functions

static uint32 RailTypeGetRandomBits (const ResolverObject *object)
static uint32 RailTypeGetTriggers (const ResolverObject *object)
static void RailTypeSetTriggers (const ResolverObject *object, int triggers)
static uint32 RailTypeGetVariable (const ResolverObject *object, byte variable, uint32 parameter, bool *available)
static const SpriteGroupRailTypeResolveReal (const ResolverObject *object, const RealSpriteGroup *group)
static void NewRailTypeResolver (ResolverObject *res, TileIndex tile, TileContext context, const GRFFile *grffile, uint32 param1=0, uint32 param2=0)
SpriteID GetCustomRailSprite (const RailtypeInfo *rti, TileIndex tile, RailTypeSpriteGroup rtsg, TileContext context)
 Get the sprite to draw for the given tile.
SpriteID GetCustomSignalSprite (const RailtypeInfo *rti, TileIndex tile, SignalType type, SignalVariant var, SignalState state, bool gui)
 Get the sprite to draw for a given signal.
uint8 GetReverseRailTypeTranslation (RailType railtype, const GRFFile *grffile)
 Perform a reverse railtype lookup to get the GRF internal ID.
void GetRailTypeResolver (ResolverObject *ro, uint index)
 Resolve a railtypes's spec and such so we can get a variable.

Detailed Description

NewGRF handling of rail types.

Definition in file newgrf_railtype.cpp.


Function Documentation

SpriteID GetCustomRailSprite ( const RailtypeInfo rti,
TileIndex  tile,
RailTypeSpriteGroup  rtsg,
TileContext  context 
)

Get the sprite to draw for the given tile.

Parameters:
rti The rail type data (spec).
tile The tile to get the sprite for.
rtsg The type of sprite to draw.
content Where are we drawing the tile?
Returns:
The sprite to draw.

Definition at line 107 of file newgrf_railtype.cpp.

References RailtypeInfo::grffile, RailtypeInfo::group, and SpriteGroup::Resolve().

Referenced by DrawBridgeMiddle(), DrawTile_Road(), DrawTile_TunnelBridge(), GetPylonBase(), and GetWireBase().

SpriteID GetCustomSignalSprite ( const RailtypeInfo rti,
TileIndex  tile,
SignalType  type,
SignalVariant  var,
SignalState  state,
bool  gui 
)

Get the sprite to draw for a given signal.

Parameters:
rti The rail type data (spec).
tile The tile to get the sprite for.
type Signal type.
var Signal variant.
state Signal state.
gui Is the sprite being used on the map or in the GUI?
Returns:
The sprite to draw.

Definition at line 134 of file newgrf_railtype.cpp.

References RailtypeInfo::grffile, RailtypeInfo::group, SpriteGroup::Resolve(), RTSG_SIGNALS, and TCX_NORMAL.

void GetRailTypeResolver ( ResolverObject ro,
uint  index 
)

Resolve a railtypes's spec and such so we can get a variable.

Parameters:
ro The resolver object to fill.
index The rail tile to get the data from.

Definition at line 175 of file newgrf_railtype.cpp.

References TCX_NORMAL.

uint8 GetReverseRailTypeTranslation ( RailType  railtype,
const GRFFile grffile 
)

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

Parameters:
railtype The global (OpenTTD) railtype.
grffile The GRF to do the lookup for.
Returns:
the GRF internal ID.

Definition at line 156 of file newgrf_railtype.cpp.

References SmallVector< T, S >::FindIndex(), GetRailTypeInfo(), RailtypeInfo::label, SmallVector< T, S >::Length(), and GRFFile::railtype_list.