summaryrefslogtreecommitdiff
path: root/sprite.h
diff options
context:
space:
mode:
authordarkvater <darkvater@openttd.org>2004-11-14 16:42:08 +0000
committerdarkvater <darkvater@openttd.org>2004-11-14 16:42:08 +0000
commite656a91736a02badd26b6674081c0adac64dd83c (patch)
treee6059ce764e14f6e5dc3014688a574c4f499e9d4 /sprite.h
parenta415b8ecced3e8939d858d5b49acf337b26ef17e (diff)
downloadopenttd-e656a91736a02badd26b6674081c0adac64dd83c.tar.xz
(svn r602) -newgrf: Move DrawTileSeqStruct & co and struct SpriteGroup to sprite.h (pasky)
Diffstat (limited to 'sprite.h')
-rw-r--r--sprite.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/sprite.h b/sprite.h
new file mode 100644
index 000000000..cfc51265d
--- /dev/null
+++ b/sprite.h
@@ -0,0 +1,46 @@
+#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;
+ 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;
+ DrawTileSeqStruct const *seq;
+} DrawTileSprites;
+
+#define foreach_draw_tile_seq(idx, list) for (idx = list; ((byte) idx->delta_x) != 0x80; idx++)
+
+
+/* This is for custom sprites: */
+
+struct SpriteGroup {
+ // XXX: Would anyone ever need more than 16 spritesets? Maybe we should
+ // use even less, now we take whole 8kb for custom sprites table, oh my!
+ byte sprites_per_set; // means number of directions - 4 or 8
+
+ // Loaded = in motion, loading = not moving
+ // Each group contains several spritesets, for various loading stages
+
+ // XXX: For stations the meaning is different - loaded is for stations
+ // with small amount of cargo whilst loading is for stations with a lot
+ // of da stuff.
+
+ byte loaded_count;
+ uint16 loaded[16]; // sprite ids
+ byte loading_count;
+ uint16 loading[16]; // sprite ids
+};
+
+#endif