]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - spritegn.h
changed rtlight compiled cluster list/pvs to leaf list/pvs to enable slightly more...
[xonotic/darkplaces.git] / spritegn.h
index 007a8bb238e8df93a5c536e80c200f5cbc8e9fb2..9647311077e8ce5c382f8764366a1367fb0612bc 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,12 +45,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 // <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;
@@ -59,12 +64,46 @@ typedef struct {
        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;
@@ -85,6 +124,5 @@ typedef struct {
        spriteframetype_t       type;
 } dspriteframetype_t;
 
-#define IDSPRITEHEADER (('P'<<24)+('S'<<16)+('D'<<8)+'I')
-                                                                                                               // little-endian "IDSP"
+#endif