OpenTTD Source 20260206-master-g4d4e37dbf1
TownResolverObject Struct Reference

Resolver of town properties. More...

#include <newgrf_town.h>

Inheritance diagram for TownResolverObject:
ResolverObject

Public Member Functions

 TownResolverObject (const struct GRFFile *grffile, Town *t, bool readonly)
 Resolver for a town.
ScopeResolverGetScope (VarSpriteGroupScope scope=VSG_SCOPE_SELF, uint8_t relative=0) override
 Get a resolver for the scope.
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.
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.

Data Fields

TownScopeResolver town_scope
 Scope resolver specific for towns.
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.

Additional Inherited Members

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

Resolver of town properties.

Definition at line 42 of file newgrf_town.h.

Constructor & Destructor Documentation

◆ TownResolverObject()

TownResolverObject::TownResolverObject ( const struct GRFFile * grffile,
Town * t,
bool readonly )

Resolver for a town.

Parameters
grffileNewGRF file associated with the town.
tTown of the scope.
readonlyScope may change persistent storage of the town.

Definition at line 170 of file newgrf_town.cpp.

References ResolverObject::grffile, ResolverObject::ResolverObject(), and town_scope.

Member Function Documentation

◆ GetScope()

ScopeResolver * TownResolverObject::GetScope ( VarSpriteGroupScope scope = VSG_SCOPE_SELF,
uint8_t relative = 0 )
inlineoverridevirtual

Get a resolver for the scope.

Parameters
scopeThe scope to resolve.
relativeThe relative in case of a VSG_SCOPE_RELATIVE.
Returns
The resolver for the requested scope.

Reimplemented from ResolverObject.

Definition at line 47 of file newgrf_town.h.

References ResolverObject::GetScope(), town_scope, and VSG_SCOPE_SELF.

Referenced by NIHTown::Resolve().

Field Documentation

◆ town_scope

TownScopeResolver TownResolverObject::town_scope

Scope resolver specific for towns.

Definition at line 43 of file newgrf_town.h.

Referenced by GetScope(), and TownResolverObject().


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