OpenTTD Source 20260206-master-g4d4e37dbf1
SpecializedResolverObject< RandomTriggers > Struct Template Reference

Specialization of ResolverObject with type-safe access to RandomTriggers. More...

#include <newgrf_spritegroup.h>

Inheritance diagram for SpecializedResolverObject< RandomTriggers >:
ResolverObject

Public Member Functions

void SetWaitingRandomTriggers (RandomTriggers triggers)
 Set waiting triggers for rerandomisation.
RandomTriggers GetUsedRandomTriggers () const
 Get the triggers, which were "consumed" by some rerandomisation.
 ResolverObject (const GRFFile *grffile, CallbackID callback=CBID_NO_CALLBACK, uint32_t callback_param1=0, uint32_t callback_param2=0)
 Resolver constructor.
Public Member Functions inherited from ResolverObject
 ResolverObject (const GRFFile *grffile, CallbackID callback=CBID_NO_CALLBACK, uint32_t callback_param1=0, uint32_t callback_param2=0)
 Resolver constructor.
ResolverResult DoResolve ()
int32_t GetRegister (uint i) const
 Gets the value of a so-called newgrf "register".
void SetRegister (uint i, int32_t value)
 Sets the value of a so-called newgrf "register".
template<class TSpriteGroup>
const TSpriteGroup * Resolve ()
 Resolve SpriteGroup.
void ResolveRerandomisation ()
 Resolve bits to be rerandomised.
CallbackResult ResolveCallback (std::span< int32_t > regs100)
 Resolve callback.
virtual const SpriteGroupResolveReal (const RealSpriteGroup &group) const
 Get the real sprites of the grf.
virtual ScopeResolverGetScope (VarSpriteGroupScope scope=VSG_SCOPE_SELF, uint8_t relative=0)
 Get a resolver for the scope.
uint32_t GetWaitingRandomTriggers () const
 Used by RandomizedSpriteGroup: Triggers for rerandomisation.
void AddUsedRandomTriggers (uint32_t triggers)
 Used by RandomizedSpriteGroup: Consume triggers.
uint32_t GetReseedSum () const
 Returns the OR-sum of all bits that need reseeding independent of the scope they were accessed with.
virtual GrfSpecFeature GetFeature () const
 Get the feature number being resolved for.
virtual uint32_t GetDebugID () const
 Get an identifier for the item being resolved.

Additional Inherited Members

Data Fields inherited from ResolverObject
ScopeResolver default_scope
 Default implementation of the grf scope.
CallbackID callback {}
 Callback being resolved.
uint32_t callback_param1 = 0
 First parameter (var 10) of the callback.
uint32_t callback_param2 = 0
 Second parameter (var 18) of the callback.
uint32_t last_value = 0
 Result of most recent DeterministicSpriteGroup (including procedure calls).
std::array< uint32_t, VSG_END > reseed
 Collects bits to rerandomise while triggering triggers.
const GRFFilegrffile = nullptr
 GRFFile the resolved SpriteGroup belongs to.
const SpriteGrouproot_spritegroup = nullptr
 Root SpriteGroup to use for resolving.
Protected Attributes inherited from ResolverObject
uint32_t waiting_random_triggers = 0
 Waiting triggers to be used by any rerandomisation. (scope independent).
uint32_t used_random_triggers = 0
 Subset of cur_triggers, which actually triggered some rerandomisation. (scope independent).

Detailed Description

template<class RandomTriggers>
struct SpecializedResolverObject< RandomTriggers >

Specialization of ResolverObject with type-safe access to RandomTriggers.

Definition at line 476 of file newgrf_spritegroup.h.

Member Function Documentation

◆ GetUsedRandomTriggers()

template<class RandomTriggers>
RandomTriggers SpecializedResolverObject< RandomTriggers >::GetUsedRandomTriggers ( ) const
inline

Get the triggers, which were "consumed" by some rerandomisation.

This is scope independent, even though this is broken-by-design in most cases.

Definition at line 492 of file newgrf_spritegroup.h.

References ResolverObject::used_random_triggers.

◆ ResolverObject()

template<class RandomTriggers>
ResolverObject::ResolverObject ( const GRFFile * grffile,
CallbackID callback = CBID_NO_CALLBACK,
uint32_t callback_param1 = 0,
uint32_t callback_param2 = 0 )
inline

Resolver constructor.

Parameters
grffileNewGRF file associated with the object (or nullptr if none).
callbackCallback code being resolved (default value is CBID_NO_CALLBACK).
callback_param1First parameter (var 10) of the callback (only used when callback is also set).
callback_param2Second parameter (var 18) of the callback (only used when callback is also set).

Definition at line 326 of file newgrf_spritegroup.h.

◆ SetWaitingRandomTriggers()

template<class RandomTriggers>
void SpecializedResolverObject< RandomTriggers >::SetWaitingRandomTriggers ( RandomTriggers triggers)
inline

Set waiting triggers for rerandomisation.

This is scope independent, even though this is broken-by-design in most cases.

Definition at line 483 of file newgrf_spritegroup.h.

References ResolverObject::waiting_random_triggers.


The documentation for this struct was generated from the following file: