This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
// * pass data from one to the other via .spr files. *
// **********************************************************
+#ifndef SPRITEGEN_H
+#define SPRITEGEN_H
+
//-------------------------------------------------------
// This program generates .spr sprite package files.
// The format of the files is as follows:
// <endrepeat>
//-------------------------------------------------------
-#define SPRITE_VERSION 1
-#define HALFLIFESPRITE_VERSION 2
+#define SPRITE_VERSION 1
+#define SPRITEHL_VERSION 2
#define SPRITE32_VERSION 32
-// TODO: shorten these?
-typedef struct {
+#define SPRITE2_VERSION 2
+
+typedef struct
+{
int ident;
int version;
int type;
synctype_t synctype;
} dsprite_t;
+typedef struct
+{
+ int ident;
+ int version;
+ int type;
+ int rendermode;
+ float boundingradius;
+ int width;
+ int height;
+ int numframes;
+ float beamlength;
+ synctype_t synctype;
+} dspritehl_t;
+
+typedef struct
+{
+ int width, height;
+ int origin_x, origin_y; // raster coordinates inside pic
+ char name[64]; // name of pcx file
+} dsprite2frame_t;
+
+typedef struct
+{
+ int ident;
+ int version;
+ int numframes;
+ dsprite2frame_t frames[1]; // variable sized
+} dsprite2_t;
+
#define SPR_VP_PARALLEL_UPRIGHT 0
#define SPR_FACING_UPRIGHT 1
#define SPR_VP_PARALLEL 2
#define SPR_ORIENTED 3
#define SPR_VP_PARALLEL_ORIENTED 4
+#define SPRHL_OPAQUE 0
+#define SPRHL_ADDITIVE 1
+#define SPRHL_INDEXALPHA 2
+#define SPRHL_ALPHATEST 3
+
typedef struct {
int origin[2];
int width;
spriteframetype_t type;
} dspriteframetype_t;
-#define IDSPRITEHEADER (('P'<<24)+('S'<<16)+('D'<<8)+'I')
- // little-endian "IDSP"
+#endif