author | peter1138 |
Sun, 03 Aug 2008 17:35:08 +0000 | |
changeset 9834 | 7474149531c1 |
parent 9111 | 48ce04029fe4 |
child 10032 | 1f6c6f3bea28 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
9111
48ce04029fe4
(svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium
parents:
8571
diff
changeset
|
3 |
/** @file sprite.h Base for drawing complex sprites. */ |
6420
456c275f3313
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6248
diff
changeset
|
4 |
|
406
34cba651d9f8
(svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents:
405
diff
changeset
|
5 |
#ifndef SPRITE_H |
34cba651d9f8
(svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents:
405
diff
changeset
|
6 |
#define SPRITE_H |
34cba651d9f8
(svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents:
405
diff
changeset
|
7 |
|
8123
ce31d2843a95
(svn r11684) -Codechange: split gfx.h in a type and functional header.
rubidium
parents:
8113
diff
changeset
|
8 |
#include "gfx_type.h" |
ce31d2843a95
(svn r11684) -Codechange: split gfx.h in a type and functional header.
rubidium
parents:
8113
diff
changeset
|
9 |
|
8113
31b7784db761
(svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations.
rubidium
parents:
7606
diff
changeset
|
10 |
#define GENERAL_SPRITE_COLOR(color) ((color) + PALETTE_RECOLOR_START) |
31b7784db761
(svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations.
rubidium
parents:
7606
diff
changeset
|
11 |
#define PLAYER_SPRITE_COLOR(owner) (GENERAL_SPRITE_COLOR(_player_colors[owner])) |
31b7784db761
(svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations.
rubidium
parents:
7606
diff
changeset
|
12 |
|
31b7784db761
(svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations.
rubidium
parents:
7606
diff
changeset
|
13 |
/** |
31b7784db761
(svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations.
rubidium
parents:
7606
diff
changeset
|
14 |
* Whether a sprite comes from the original graphics files or a new grf file |
31b7784db761
(svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations.
rubidium
parents:
7606
diff
changeset
|
15 |
* (either supplied by OpenTTD or supplied by the user). |
31b7784db761
(svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations.
rubidium
parents:
7606
diff
changeset
|
16 |
* |
31b7784db761
(svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations.
rubidium
parents:
7606
diff
changeset
|
17 |
* @param sprite The sprite to check |
31b7784db761
(svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations.
rubidium
parents:
7606
diff
changeset
|
18 |
* @return True if it is a new sprite, or false if it is original. |
31b7784db761
(svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations.
rubidium
parents:
7606
diff
changeset
|
19 |
*/ |
31b7784db761
(svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations.
rubidium
parents:
7606
diff
changeset
|
20 |
#define IS_CUSTOM_SPRITE(sprite) ((sprite) >= SPR_SIGNALS_BASE) |
406
34cba651d9f8
(svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents:
405
diff
changeset
|
21 |
|
34cba651d9f8
(svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents:
405
diff
changeset
|
22 |
/* The following describes bunch of sprites to be drawn together in a single 3D |
34cba651d9f8
(svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents:
405
diff
changeset
|
23 |
* bounding box. Used especially for various multi-sprite buildings (like |
34cba651d9f8
(svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents:
405
diff
changeset
|
24 |
* depots or stations): */ |
34cba651d9f8
(svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents:
405
diff
changeset
|
25 |
|
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
5668
diff
changeset
|
26 |
struct DrawTileSeqStruct { |
408
48da21eb9ff2
(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
|
27 |
int8 delta_x; // 0x80 is sequence terminator |
406
34cba651d9f8
(svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents:
405
diff
changeset
|
28 |
int8 delta_y; |
34cba651d9f8
(svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents:
405
diff
changeset
|
29 |
int8 delta_z; |
4230
f4e93251e2f6
(svn r5787) Rename width, height and unk of struct DrawTileSeqStruct to size_{x,y,z}
tron
parents:
3865
diff
changeset
|
30 |
byte size_x; |
f4e93251e2f6
(svn r5787) Rename width, height and unk of struct DrawTileSeqStruct to size_{x,y,z}
tron
parents:
3865
diff
changeset
|
31 |
byte size_y; |
f4e93251e2f6
(svn r5787) Rename width, height and unk of struct DrawTileSeqStruct to size_{x,y,z}
tron
parents:
3865
diff
changeset
|
32 |
byte size_z; |
8570
f50de4804ff1
(svn r12148) -Codechange: Merge 'image' and 'pal' of DrawTileSeqStruct into one PalSpriteID
frosch
parents:
8123
diff
changeset
|
33 |
PalSpriteID image; |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
5668
diff
changeset
|
34 |
}; |
406
34cba651d9f8
(svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents:
405
diff
changeset
|
35 |
|
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
5668
diff
changeset
|
36 |
struct DrawTileSprites { |
8571
53c94d717e99
(svn r12149) -Codechange: Merge 'ground_sprite' and 'ground_pal' of DrawTileSprites into one PalSpriteID
frosch
parents:
8570
diff
changeset
|
37 |
PalSpriteID ground; |
7318
632cd0497770
(svn r10673) -Cleanup: some assorted style cleanups. Primarily type* var -> type *var.
rubidium
parents:
6420
diff
changeset
|
38 |
const DrawTileSeqStruct *seq; |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
5668
diff
changeset
|
39 |
}; |
406
34cba651d9f8
(svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents:
405
diff
changeset
|
40 |
|
3654
c09872510a61
(svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents:
3595
diff
changeset
|
41 |
/** |
c09872510a61
(svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents:
3595
diff
changeset
|
42 |
* This structure is the same for both Industries and Houses. |
c09872510a61
(svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents:
3595
diff
changeset
|
43 |
* Buildings here reference a general type of construction |
c09872510a61
(svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents:
3595
diff
changeset
|
44 |
*/ |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
5668
diff
changeset
|
45 |
struct DrawBuildingsTileStruct { |
5668
36b39f4a9032
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5475
diff
changeset
|
46 |
PalSpriteID ground; |
36b39f4a9032
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5475
diff
changeset
|
47 |
PalSpriteID building; |
7606
0e7c419b34e6
(svn r11133) -Fix (r11102) [FS#1245]: in some cases vehicles would be drawn over houses when they should be drawn behind the houses. Patch by frosch.
rubidium
parents:
7318
diff
changeset
|
48 |
byte subtile_x; |
0e7c419b34e6
(svn r11133) -Fix (r11102) [FS#1245]: in some cases vehicles would be drawn over houses when they should be drawn behind the houses. Patch by frosch.
rubidium
parents:
7318
diff
changeset
|
49 |
byte subtile_y; |
0e7c419b34e6
(svn r11133) -Fix (r11102) [FS#1245]: in some cases vehicles would be drawn over houses when they should be drawn behind the houses. Patch by frosch.
rubidium
parents:
7318
diff
changeset
|
50 |
byte width; |
0e7c419b34e6
(svn r11133) -Fix (r11102) [FS#1245]: in some cases vehicles would be drawn over houses when they should be drawn behind the houses. Patch by frosch.
rubidium
parents:
7318
diff
changeset
|
51 |
byte height; |
3654
c09872510a61
(svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents:
3595
diff
changeset
|
52 |
byte dz; |
c09872510a61
(svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents:
3595
diff
changeset
|
53 |
byte draw_proc; /* this allows to specify a special drawing procedure.*/ |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
5668
diff
changeset
|
54 |
}; |
3654
c09872510a61
(svn r4568) CodeChange : Bring definitions and uses of DrawTypesStructures toguether.
belugas
parents:
3595
diff
changeset
|
55 |
|
6420
456c275f3313
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6248
diff
changeset
|
56 |
/** Iterate through all DrawTileSeqStructs in DrawTileSprites. */ |
406
34cba651d9f8
(svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents:
405
diff
changeset
|
57 |
#define foreach_draw_tile_seq(idx, list) for (idx = list; ((byte) idx->delta_x) != 0x80; idx++) |
34cba651d9f8
(svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents:
405
diff
changeset
|
58 |
|
34cba651d9f8
(svn r603) -newgrf: Stupid TortoiseSVN converted the file to DOS newlines. Bah
darkvater
parents:
405
diff
changeset
|
59 |
|
2436
7d5df545bd5d
(svn r2962) - const correctness for all Get* functions and most Draw* functions that don't change their pointer parameters
Darkvater
parents:
2242
diff
changeset
|
60 |
#endif /* SPRITE_H */ |