OpenTTD Source 20250509-master-ga45f23686d
|
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. | |
![]() | |
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 | |
![]() | |
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. | |
![]() | |
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 463 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 479 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 313 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 470 of file newgrf_spritegroup.h.
References ResolverObject::waiting_random_triggers.