OpenTTD Source: SpecializedResolverObject< RandomTriggers > Struct Template Reference

OpenTTD Source 15.3

Public Member Functions
SpecializedResolverObject< RandomTriggers > Struct Template Reference

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

`#include <newgrf_spritegroup.h>`

Inheritance diagram for SpecializedResolverObject< RandomTriggers >:

## 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 SpriteGroup * | ResolveReal (const RealSpriteGroup &group) const
| Get the real sprites of the grf.
virtual ScopeResolver * | GetScope (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 GRFFile * | grffile = nullptr
| GRFFile the resolved SpriteGroup belongs to.
const SpriteGroup * | root_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 450 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 466 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

  grffile | NewGRF file associated with the object (or `nullptr` if none).
  callback | Callback code being resolved (default value is CBID_NO_CALLBACK).
  callback_param1 | First parameter (var 10) of the callback (only used when callback is also set).
  callback_param2 | Second parameter (var 18) of the callback (only used when callback is also set).

Definition at line 300 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 457 of file newgrf_spritegroup.h.

References ResolverObject::waiting_random_triggers.

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

- src/newgrf_spritegroup.h