10#ifndef NEWGRF_RAILTYPE_H
11#define NEWGRF_RAILTYPE_H
36 uint32_t
GetVariable(uint8_t variable, [[maybe_unused]] uint32_t parameter,
bool &available)
const override;
65void ClearRailTypeLabelList();
This struct contains all the info that is needed to draw and construct tracks.
uint32_t SpriteID
The number of a sprite, without mapping bits and colourtables.
This file simplifies and embeds a common mechanism of loading/saving and mapping of grf entities.
TileContext
Context for tile accesses.
void ConvertRailTypes()
Test if any saved rail type labels are different to the currently loaded rail types.
SpriteID GetCustomRailSprite(const RailTypeInfo *rti, TileIndex tile, RailSpriteType rtsg, TileContext context=TileContext::Normal, uint *num_results=nullptr)
Get the sprite to draw for the given tile.
uint8_t GetReverseRailTypeTranslation(RailType railtype, const GRFFile *grffile)
Perform a reverse railtype lookup to get the GRF internal ID.
void SetCurrentRailTypeLabelList()
Populate railtype label list with current values.
SpriteID GetCustomSignalSprite(const RailTypeInfo *rti, TileIndex tile, SignalType type, SignalVariant var, SignalState state, bool gui=false)
Get the sprite to draw for a given signal.
RailType GetRailTypeTranslation(uint8_t railtype, const GRFFile *grffile)
Translate an index to the GRF-local railtype-translation table into a RailType.
VarSpriteGroupScope
Shared by deterministic and random groups.
@ Self
Resolved object itself.
RailSpriteType
Sprite types for a railtype.
RailType
Enumeration for all possible railtypes.
SignalType
Type of signal, i.e.
SignalState
These are states in which a signal can be.
SignalVariant
Variant of the signal, i.e.
Dynamic data of a loaded NewGRF.
GrfSpecFeature GetFeature() const override
Get the feature number being resolved for.
RailTypeResolverObject(const RailTypeInfo *rti, TileIndex tile, TileContext context, RailSpriteType rtsg, uint32_t param1=0, uint32_t param2=0)
Resolver object for rail types.
uint32_t GetDebugID() const override
Get an identifier for the item being resolved.
ScopeResolver * GetScope(VarSpriteGroupScope scope=VarSpriteGroupScope::Self, uint8_t relative=0) override
Get a resolver for the scope.
RailTypeScopeResolver railtype_scope
Resolver for the railtype scope.
Resolver for the railtype scope.
uint32_t GetVariable(uint8_t variable, uint32_t parameter, bool &available) const override
Get a variable value.
RailTypeScopeResolver(ResolverObject &ro, const RailTypeInfo *rti, TileIndex tile, TileContext context)
Constructor of the railtype scope resolvers.
TileContext context
Are we resolving sprites for the upper halftile, or on a bridge?
uint32_t GetRandomBits() const override
Get a few random bits.
TileIndex tile
Tracktile. For track on a bridge this is the southern bridgehead.
Interface for SpriteGroup-s to access the gamestate.
ResolverObject(const GRFFile *grffile, CallbackID callback=CBID_NO_CALLBACK, uint32_t callback_param1=0, uint32_t callback_param2=0)
Resolver constructor.
virtual ScopeResolver * GetScope(VarSpriteGroupScope scope=VarSpriteGroupScope::Self, uint8_t relative=0)
Get a resolver for the scope.
Interface to query and set values specific to a single VarSpriteGroupScope (action 2 scope).
ResolverObject & ro
Surrounding resolver object.
StrongType::Typedef< uint32_t, struct TileIndexTag, StrongType::Compare, StrongType::Integer, StrongType::Compatible< int32_t >, StrongType::Compatible< int64_t > > TileIndex
The index/ID of a Tile.