OpenTTD
Data Structures | Typedefs | Enumerations | Functions | Variables
newgrf_spritegroup.h File Reference

Action 2 handling. More...

#include "town_type.h"
#include "engine_type.h"
#include "house_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 SpriteGroupID
typedef Pool< SpriteGroup,
SpriteGroupID, 1024, 1
<< 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

static uint32 GetRegister (uint i)
 Gets the value of a so-called newgrf "register".

Variables

SpriteGroupPool _spritegroup_pool

Detailed Description

Action 2 handling.

Definition in file newgrf_spritegroup.h.

Enumeration Type Documentation

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

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

Function Documentation

static uint32 GetRegister ( uint  i)
inlinestatic