OpenTTD Source: src/newgrf_spritegroup.h File Reference

OpenTTD Source 14.1

Data Structures | Typedefs | Enumerations | Functions | Variables
newgrf_spritegroup.h File Reference
`#include "town_type.h"`
`#include "engine_type.h"`
`#include "house_type.h"`
`#include "industry_type.h"`
`#include "newgrf_callbacks.h"`
`#include "newgrf_generic.h"`
`#include "newgrf_storage.h"`
`#include "newgrf_commons.h"`

Go to the source code of this file.

## Data Structures
struct | SpriteGroup
struct | RealSpriteGroup
struct | DeterministicSpriteGroupAdjust
struct | DeterministicSpriteGroupRange
struct | DeterministicSpriteGroup
struct | RandomizedSpriteGroup
struct | CallbackResultSpriteGroup
struct | ResultSpriteGroup
struct | TileLayoutSpriteGroup
| Action 2 sprite layout for houses, industry tiles, objects and airport tiles. More...
struct | IndustryProductionSpriteGroup
struct | ScopeResolver
| Interface to query and set values specific to a single VarSpriteGroupScope (action 2 scope). More...
struct | ResolverObject
| Interface for SpriteGroup-s to access the gamestate. More...

## Typedefs
typedef uint32_t | SpriteGroupID
typedef Pool< SpriteGroup, SpriteGroupID, 1024, 1U<< 30, PT_DATA > | SpriteGroupPool

## Enumerations
enum | SpriteGroupType { SGT_REAL, SGT_DETERMINISTIC, SGT_RANDOMIZED, SGT_CALLBACK, SGT_RESULT, SGT_TILELAYOUT, SGT_INDUSTRY_PRODUCTION }
enum | VarSpriteGroupScope { VSG_BEGIN, VSG_SCOPE_SELF = VSG_BEGIN, VSG_SCOPE_PARENT, VSG_SCOPE_RELATIVE, VSG_END }
enum | DeterministicSpriteGroupSize { DSG_SIZE_BYTE, DSG_SIZE_WORD, DSG_SIZE_DWORD }
enum | DeterministicSpriteGroupAdjustType { DSGA_TYPE_NONE, DSGA_TYPE_DIV, DSGA_TYPE_MOD }
enum | DeterministicSpriteGroupAdjustOperation { DSGA_OP_ADD, DSGA_OP_SUB, DSGA_OP_SMIN, DSGA_OP_SMAX, DSGA_OP_UMIN, DSGA_OP_UMAX, DSGA_OP_SDIV, DSGA_OP_SMOD, DSGA_OP_UDIV, DSGA_OP_UMOD, DSGA_OP_MUL, DSGA_OP_AND, DSGA_OP_OR, DSGA_OP_XOR, DSGA_OP_STO, DSGA_OP_RST, DSGA_OP_STOP, DSGA_OP_ROR, DSGA_OP_SCMP, DSGA_OP_UCMP, DSGA_OP_SHL, DSGA_OP_SHR, DSGA_OP_SAR }
enum | RandomizedSpriteGroupCompareMode { RSG_CMP_ANY, RSG_CMP_ALL }

## Functions
uint32_t | GetRegister (uint i)
| Gets the value of a so-called newgrf "register". More...

## Variables
SpriteGroupPool | _spritegroup_pool

## Detailed Description

Action 2 handling.

Definition in file newgrf_spritegroup.h.

## Enumeration Type Documentation

## ◆ DeterministicSpriteGroupAdjustOperation

enum DeterministicSpriteGroupAdjustOperation

Enumerator
DSGA_OP_ADD | a + b
DSGA_OP_SUB | a - b
DSGA_OP_SMIN | (signed) min(a, b)
DSGA_OP_SMAX | (signed) max(a, b)
DSGA_OP_UMIN | (unsigned) min(a, b)
DSGA_OP_UMAX | (unsigned) max(a, b)
DSGA_OP_SDIV | (signed) a / b
DSGA_OP_SMOD | (signed) a % b
DSGA_OP_UDIV | (unsigned) a / b
DSGA_OP_UMOD | (unsigned) a & b
DSGA_OP_MUL | a * b
DSGA_OP_AND | a & b
DSGA_OP_OR | a | b
DSGA_OP_XOR | a ^ b
DSGA_OP_STO | store a into temporary storage, indexed by b. return a
DSGA_OP_RST | return b
DSGA_OP_STOP | store a into persistent storage, indexed by b, return a
DSGA_OP_ROR | rotate a b positions to the right
DSGA_OP_SCMP | (signed) comparison (a < b -> 0, a == b = 1, a > b = 2)
DSGA_OP_UCMP | (unsigned) comparison (a < b -> 0, a == b = 1, a > b = 2)
DSGA_OP_SHL | a << b
DSGA_OP_SHR | (unsigned) a >> b
DSGA_OP_SAR | (signed) a >> b

Definition at line 120 of file newgrf_spritegroup.h.

## ◆ VarSpriteGroupScope

enum VarSpriteGroupScope

Enumerator
VSG_SCOPE_SELF | Resolved object itself.
VSG_SCOPE_PARENT | Related object of the resolved one.
VSG_SCOPE_RELATIVE | Relative position (vehicles only)

Definition at line 97 of file newgrf_spritegroup.h.

## Function Documentation

## ◆ GetRegister()

uint32_t GetRegister | ( | uint | i | ) |
| inline

Gets the value of a so-called newgrf "register".

Parameters

  i | index of the register

Precondition
  i < 0x110

Returns
  the value of the register

Definition at line 29 of file newgrf_spritegroup.h.

Referenced by GetCountAndDistanceOfClosestInstance(), VehicleResolverObject::GetScope(), TownScopeResolver::GetVariable(), and TownScopeResolver::StorePSA().