]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - spritegn.h
Configure all of the CL_MeshEntities* meshes the same, the material flags decide...
[xonotic/darkplaces.git] / spritegn.h
index 79c18d0ead72084718336478676eb099c803112e..b2d2e3b1d05a678227a6a90ffbbf16e65a91b21f 100644 (file)
@@ -8,7 +8,7 @@ of the License, or (at your option) any later version.
 
 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.
 
@@ -27,6 +27,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 // * 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:
@@ -42,11 +45,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 // <endrepeat>
 //-------------------------------------------------------
 
-#define SPRITE_VERSION 1
+#define SPRITE_VERSION         1
 #define SPRITEHL_VERSION       2
 #define SPRITE32_VERSION       32
 
-typedef struct
+#define SPRITE2_VERSION                2
+
+typedef struct dsprite_s
 {
        int                     ident;
        int                     version;
@@ -59,7 +64,7 @@ typedef struct
        synctype_t      synctype;
 } dsprite_t;
 
-typedef struct
+typedef struct dspritehl_s
 {
        int                     ident;
        int                     version;
@@ -73,34 +78,54 @@ typedef struct
        synctype_t      synctype;
 } dspritehl_t;
 
+typedef struct dsprite2frame_s
+{
+       int             width, height;
+       int             origin_x, origin_y;             // raster coordinates inside pic
+       char    name[64];                               // name of pcx file
+} dsprite2frame_t;
+
+typedef struct dsprite2_s
+{
+       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 SPR_LABEL                      5
+#define SPR_LABEL_SCALE                6
+#define SPR_OVERHEAD                           7
 
-#define SPRHL_NORMAL   0
+#define SPRHL_OPAQUE   0
 #define SPRHL_ADDITIVE 1
-// no idea how to handle these two rendering modes
 #define SPRHL_INDEXALPHA       2
 #define SPRHL_ALPHATEST        3
 
-typedef struct {
+typedef struct dspriteframe_s {
        int                     origin[2];
        int                     width;
        int                     height;
 } dspriteframe_t;
 
-typedef struct {
+typedef struct dspritegroup_s {
        int                     numframes;
 } dspritegroup_t;
 
-typedef struct {
+typedef struct dspriteinterval_s {
        float   interval;
 } dspriteinterval_t;
 
-typedef enum { SPR_SINGLE=0, SPR_GROUP } spriteframetype_t;
+typedef enum spriteframetype_e { SPR_SINGLE=0, SPR_GROUP } spriteframetype_t;
 
-typedef struct {
+typedef struct dspriteframetype_s {
        spriteframetype_t       type;
 } dspriteframetype_t;
+
+#endif
+