Files
@ r3737:eb79e5f07768
Branch filter:
Location: cpp/openttd-patchpack/source/sprite.h - annotation
r3737:eb79e5f07768
2.1 KiB
text/x-c
(svn r4719) - Newstations: instead of drawing nothing, fall back to the default sprite layout if a station layout specifies so.
r2186:5ee653b1b5e1 r2186:5ee653b1b5e1 r406:4f7c55e23b9d r406:4f7c55e23b9d r406:4f7c55e23b9d r406:4f7c55e23b9d r406:4f7c55e23b9d r406:4f7c55e23b9d r406:4f7c55e23b9d r406:4f7c55e23b9d r406:4f7c55e23b9d r408:e003dfb10972 r406:4f7c55e23b9d r406:4f7c55e23b9d r406:4f7c55e23b9d r406:4f7c55e23b9d r406:4f7c55e23b9d r406:4f7c55e23b9d r406:4f7c55e23b9d r406:4f7c55e23b9d r406:4f7c55e23b9d r2548:9570bbbdacab r406:4f7c55e23b9d r406:4f7c55e23b9d r3654:83eca8525ed0 r3654:83eca8525ed0 r3654:83eca8525ed0 r3654:83eca8525ed0 r3654:83eca8525ed0 r3654:83eca8525ed0 r3654:83eca8525ed0 r3654:83eca8525ed0 r3654:83eca8525ed0 r3654:83eca8525ed0 r3654:83eca8525ed0 r3654:83eca8525ed0 r3654:83eca8525ed0 r3654:83eca8525ed0 r3654:83eca8525ed0 r408:e003dfb10972 r406:4f7c55e23b9d r406:4f7c55e23b9d r406:4f7c55e23b9d r3664:2528e32a3d64 r3664:2528e32a3d64 r408:e003dfb10972 r408:e003dfb10972 r413:89e9c32c6b72 r413:89e9c32c6b72 r413:89e9c32c6b72 r2242:397d3342628f r413:89e9c32c6b72 r413:89e9c32c6b72 r408:e003dfb10972 r445:8bbc3f73289f r445:8bbc3f73289f r445:8bbc3f73289f r2242:397d3342628f r445:8bbc3f73289f r445:8bbc3f73289f r445:8bbc3f73289f r2242:397d3342628f r445:8bbc3f73289f r2436:963efe8b84cc | /* $Id$ */
#ifndef SPRITE_H
#define SPRITE_H
/* The following describes bunch of sprites to be drawn together in a single 3D
* bounding box. Used especially for various multi-sprite buildings (like
* depots or stations): */
typedef struct DrawTileSeqStruct {
int8 delta_x; // 0x80 is sequence terminator
int8 delta_y;
int8 delta_z;
byte width,height;
byte unk; // 'depth', just z-size; TODO: rename
uint32 image;
} DrawTileSeqStruct;
typedef struct DrawTileSprites {
SpriteID ground_sprite;
const DrawTileSeqStruct* seq;
} DrawTileSprites;
/**
* This structure is the same for both Industries and Houses.
* Buildings here reference a general type of construction
*/
typedef struct DrawBuildingsTileStruct {
SpriteID ground;
SpriteID building;
byte subtile_x:4;
byte subtile_y:4;
byte width:4;
byte height:4;
byte dz;
byte draw_proc; /* this allows to specify a special drawing procedure.*/
} DrawBuildingsTileStruct;
// Iterate through all DrawTileSeqStructs in DrawTileSprites.
#define foreach_draw_tile_seq(idx, list) for (idx = list; ((byte) idx->delta_x) != 0x80; idx++)
// XXX Temporary include while juggling about
#include "newgrf_spritegroup.h"
/* This takes value (probably of the variable specified in the group) and
* chooses corresponding SpriteGroup accordingly to the given
* DeterministicSpriteGroup. */
SpriteGroup *EvalDeterministicSpriteGroup(const DeterministicSpriteGroup *dsg, int value);
/* Get value of a common deterministic SpriteGroup variable. */
int GetDeterministicSpriteValue(byte var);
/* This takes randomized bitmask (probably associated with
* vehicle/station/whatever) and chooses corresponding SpriteGroup
* accordingly to the given RandomizedSpriteGroup. */
SpriteGroup *EvalRandomizedSpriteGroup(const RandomizedSpriteGroup *rsg, byte random_bits);
/* Triggers given RandomizedSpriteGroup with given bitmask and returns and-mask
* of random bits to be reseeded, or zero if there were no triggers matched
* (then they are |ed to @waiting_triggers instead). */
byte RandomizedSpriteGroupTriggeredBits(const RandomizedSpriteGroup *rsg, byte triggers, byte *waiting_triggers);
#endif /* SPRITE_H */
|