OpenTTD Source 20250509-master-ga45f23686d
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 463 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 479 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 313 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 470 of file newgrf_spritegroup.h.

References ResolverObject::waiting_random_triggers.


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