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.
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 319 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 associated 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 144 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 345 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 173 of file newgrf_spritegroup.cpp.

References default_scope.

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 358 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 162 of file newgrf_spritegroup.cpp.


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