sprite.h
author truelight
Sat, 27 May 2006 18:17:10 +0000
changeset 3903 d6f4f6b63ffc
parent 3865 a0bf688e6f85
child 4230 cd86b1c47f33
permissions -rw-r--r--
(svn r4991) -Fix: don't compile UNITTEST by default, it isn't needed
-Fix: do not use hardcoded names for things like 'strip', keep it configurable!!
2186
461a2aff3486 (svn r2701) Insert Id tags into all source files
tron
parents: 1883
diff changeset
     1
/* $Id$ */
461a2aff3486 (svn r2701) Insert Id tags into all source files
tron
parents: 1883
diff changeset
     2
406
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
     3
#ifndef SPRITE_H
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
     4
#define SPRITE_H
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
     5
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
     6
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
     7
/* The following describes bunch of sprites to be drawn together in a single 3D
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
     8
 * bounding box. Used especially for various multi-sprite buildings (like
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
     9
 * depots or stations): */
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
    10
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
    11
typedef struct DrawTileSeqStruct {
408
63a8c0505aab (svn r605) -newgrf: Framework for supporting variational spritegroups . Deterministic only at the moment, but random ones support shouldn't be that difficult now It doesn't do anything, but makes these actions actually possible (pasky).
darkvater
parents: 406
diff changeset
    12
	int8 delta_x; // 0x80 is sequence terminator
406
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
    13
	int8 delta_y;
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
    14
	int8 delta_z;
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
    15
	byte width,height;
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
    16
	byte unk; // 'depth', just z-size; TODO: rename
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
    17
	uint32 image;
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
    18
} DrawTileSeqStruct;
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
    19
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
    20
typedef struct DrawTileSprites {
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
    21
	SpriteID ground_sprite;
2548
97ada3bd2702 (svn r3077) static, const, bracing, indentation, 0 -> '\0'/NULL, typos in comments, excess empty lines, minor other changes
tron
parents: 2491
diff changeset
    22
	const DrawTileSeqStruct* seq;
406
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
    23
} DrawTileSprites;
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
    24
3654
4a3f8056a61c (svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents: 3595
diff changeset
    25
/**
4a3f8056a61c (svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents: 3595
diff changeset
    26
 * This structure is the same for both Industries and Houses.
4a3f8056a61c (svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents: 3595
diff changeset
    27
 * Buildings here reference a general type of construction
4a3f8056a61c (svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents: 3595
diff changeset
    28
 */
4a3f8056a61c (svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents: 3595
diff changeset
    29
typedef struct DrawBuildingsTileStruct {
4a3f8056a61c (svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents: 3595
diff changeset
    30
	SpriteID ground;
4a3f8056a61c (svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents: 3595
diff changeset
    31
	SpriteID building;
4a3f8056a61c (svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents: 3595
diff changeset
    32
	byte subtile_x:4;
4a3f8056a61c (svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents: 3595
diff changeset
    33
	byte subtile_y:4;
4a3f8056a61c (svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents: 3595
diff changeset
    34
	byte width:4;
4a3f8056a61c (svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents: 3595
diff changeset
    35
	byte height:4;
4a3f8056a61c (svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents: 3595
diff changeset
    36
	byte dz;
4a3f8056a61c (svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents: 3595
diff changeset
    37
	byte draw_proc;  /* this allows to specify a special drawing procedure.*/
4a3f8056a61c (svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents: 3595
diff changeset
    38
} DrawBuildingsTileStruct;
4a3f8056a61c (svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents: 3595
diff changeset
    39
408
63a8c0505aab (svn r605) -newgrf: Framework for supporting variational spritegroups . Deterministic only at the moment, but random ones support shouldn't be that difficult now It doesn't do anything, but makes these actions actually possible (pasky).
darkvater
parents: 406
diff changeset
    40
// Iterate through all DrawTileSeqStructs in DrawTileSprites.
406
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
    41
#define foreach_draw_tile_seq(idx, list) for (idx = list; ((byte) idx->delta_x) != 0x80; idx++)
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
    42
29f813f556a6 (svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents: 405
diff changeset
    43
2436
177cb6a8339f (svn r2962) - const correctness for all Get* functions and most Draw* functions that don't change their pointer parameters
Darkvater
parents: 2242
diff changeset
    44
#endif /* SPRITE_H */