|
OpenTTD Source 20251104-master-g3befbdd52f
|
Specialization of ResolverObject with type-safe access to RandomTriggers. More...
#include <newgrf_spritegroup.h>
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) | |
Specialization of ResolverObject with type-safe access to RandomTriggers.
Definition at line 450 of file newgrf_spritegroup.h.
|
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.
|
inline |
Resolver constructor.
| 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.
|
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.