OpenTTD: ResolverObject Struct Reference

OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

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:

## Public Member Functions
| ResolverObject (const GRFFile *grffile, CallbackID callback=CBID_NO_CALLBACK, uint32 callback_param1=0, uint32 callback_param2=0)
| Resolver constructor.
const SpriteGroup * | Resolve ()
| Resolve SpriteGroup.
uint16 | ResolveCallback ()
| 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, byte relative=0)
| Get a resolver for the scope.
uint32 | GetRemainingTriggers () const
| Returns the waiting triggers that did not trigger any rerandomisation.
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.
uint32 | last_value
| Result of most recent DeterministicSpriteGroup (including procedure calls)
uint32 | waiting_triggers
| Waiting triggers to be used by any rerandomisation. (scope independent)
uint32 | used_triggers
| Subset of cur_triggers, which actually triggered some rerandomisation. (scope independent)
uint32 | reseed [VSG_END]
| Collects bits to rerandomise while triggering triggers.
const GRFFile * | grffile
| GRFFile the resolved SpriteGroup belongs to.
const SpriteGroup * | root_spritegroup
| Root SpriteGroup to use for resolving.

## 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 310 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`
| ) |  |
| inline

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 318 of file newgrf_spritegroup.h.

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 377 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 ObjectResolverObject, VehicleResolverObject, StationResolverObject, HouseResolverObject, GenericResolverObject, AirportResolverObject, IndustriesResolverObject, AirportTileResolverObject, TownResolverObject, IndustryTileResolverObject, RailTypeResolverObject, and CanalResolverObject.

Definition at line 142 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 390 of file newgrf_spritegroup.h.

References last_value, reseed, used_triggers, and waiting_triggers.

Referenced by ResolverObject().

const SpriteGroup* ResolverObject::Resolve | ( |  | ) |
| inline

Resolve SpriteGroup.

Returns
  Result spritegroup.

Definition at line 345 of file newgrf_spritegroup.h.

References root_spritegroup.

Referenced by ResolveCallback().

uint16 ResolverObject::ResolveCallback | ( |  | ) |
| inline

Resolve callback.

Returns
  Callback result.

Definition at line 354 of file newgrf_spritegroup.h.

References CALLBACK_FAILED, and Resolve().

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 StationResolverObject, VehicleResolverObject, GenericResolverObject, AirportResolverObject, RailTypeResolverObject, CanalResolverObject, and CargoResolverObject.

Definition at line 131 of file newgrf_spritegroup.cpp.

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

- src/newgrf_spritegroup.h
- src/newgrf_spritegroup.cpp