Public Member Functions | Data Fields

ResolverObject Struct Reference

Interface for SpriteGroup-s to access the gamestate. More...

#include <newgrf_spritegroup.h>

Inheritance diagram for ResolverObject:
AirportResolverObject AirportTileResolverObject CanalResolverObject CargoResolverObject GenericResolverObject HouseResolverObject IndustriesResolverObject IndustryTileResolverObject ObjectResolverObject RailTypeResolverObject StationResolverObject TownResolverObject VehicleResolverObject

Public Member Functions

 ResolverObject (const GRFFile *grffile, CallbackID callback=CBID_NO_CALLBACK, uint32 callback_param1=0, uint32 callback_param2=0)
 Resolver constructor.
virtual const SpriteGroupResolveReal (const RealSpriteGroup *group) const
 Get the real sprites of the grf.
virtual ScopeResolverGetScope (VarSpriteGroupScope scope=VSG_SCOPE_SELF, byte relative=0)
 Get a resolver for the scope.
uint32 GetReseedSum () const
 Returns the OR-sum of all bits that need reseeding independent of the scope they were accessed with.
void ResetState ()
 Resets the dynamic state of the resolver object.

Data Fields

ScopeResolver default_scope
 Default implementation of the grf scope.
CallbackID callback
 Callback being resolved.
uint32 callback_param1
 First parameter (var 10) of the callback.
uint32 callback_param2
 Second parameter (var 18) of the callback.
byte trigger
uint32 last_value
 Result of most recent DeterministicSpriteGroup (including procedure calls).
uint32 reseed [VSG_END]
 Collects bits to rerandomise while triggering triggers.
VarSpriteGroupScope scope
 Scope of currently resolved DeterministicSpriteGroup resp. RandomizedSpriteGroup.
byte count
 Additional scope for RandomizedSpriteGroup.
const GRFFilegrffile
 GRFFile the resolved SpriteGroup belongs to.

Detailed Description

Interface for SpriteGroup-s to access the gamestate.

Using this interface SpriteGroup-chains (action 1-2-3 chains) can be resolved, to get the results of callbacks, rerandomisations or normal sprite lookups.

Definition at line 332 of file newgrf_spritegroup.h.


Constructor & Destructor Documentation

ResolverObject::ResolverObject ( const GRFFile grffile,
CallbackID  callback = CBID_NO_CALLBACK,
uint32  callback_param1 = 0,
uint32  callback_param2 = 0 
)

Resolver constructor.

Parameters:
grffile NewGRF file asscoiated with the object (or NULL 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 125 of file newgrf_spritegroup.cpp.

References ResetState().


Member Function Documentation

uint32 ResolverObject::GetReseedSum (  )  const [inline]

Returns the OR-sum of all bits that need reseeding independent of the scope they were accessed with.

Returns:
OR-sum of the bits.

Definition at line 361 of file newgrf_spritegroup.h.

References reseed.

ScopeResolver * ResolverObject::GetScope ( VarSpriteGroupScope  scope = VSG_SCOPE_SELF,
byte  relative = 0 
) [virtual]

Get a resolver for the scope.

Parameters:
scope Scope to return.
relative Additional parameter for VSG_SCOPE_RELATIVE.
Returns:
The resolver for the requested scope.

Reimplemented in AirportResolverObject, AirportTileResolverObject, CanalResolverObject, VehicleResolverObject, GenericResolverObject, HouseResolverObject, IndustriesResolverObject, IndustryTileResolverObject, ObjectResolverObject, RailTypeResolverObject, StationResolverObject, and TownResolverObject.

Definition at line 154 of file newgrf_spritegroup.cpp.

References default_scope.

Referenced by DeterministicSpriteGroup::Resolve().

void ResolverObject::ResetState (  )  [inline]

Resets the dynamic state of the resolver object.

To be called before resolving an Action-1-2-3 chain.

Definition at line 374 of file newgrf_spritegroup.h.

References last_value, and reseed.

Referenced by ResolverObject().

const SpriteGroup * ResolverObject::ResolveReal ( const RealSpriteGroup group  )  const [virtual]

Get the real sprites of the grf.

Parameters:
group Group to get.
Returns:
The available sprite group.

Reimplemented in AirportResolverObject, CanalResolverObject, CargoResolverObject, VehicleResolverObject, GenericResolverObject, RailTypeResolverObject, and StationResolverObject.

Definition at line 143 of file newgrf_spritegroup.cpp.


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