X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=spritegn.h;h=b2d2e3b1d05a678227a6a90ffbbf16e65a91b21f;hb=8e10530c0564b56ff02e689d3d6839b8fcb88553;hp=007a8bb238e8df93a5c536e80c200f5cbc8e9fb2;hpb=8dcce44300385b12c46d494c06aadcfa35a8bc14;p=xonotic%2Fdarkplaces.git diff --git a/spritegn.h b/spritegn.h index 007a8bb2..b2d2e3b1 100644 --- a/spritegn.h +++ b/spritegn.h @@ -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. // //------------------------------------------------------- -#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 dsprite_s +{ int ident; int version; int type; @@ -59,32 +64,68 @@ typedef struct { synctype_t synctype; } dsprite_t; +typedef struct dspritehl_s +{ + 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 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_OPAQUE 0 +#define SPRHL_ADDITIVE 1 +#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; -#define IDSPRITEHEADER (('P'<<24)+('S'<<16)+('D'<<8)+'I') - // little-endian "IDSP" +#endif