|
|
1.1 ! root 1: /* ! 2: Copyright (C) 1996-1997 Id Software, Inc. ! 3: ! 4: This program is free software; you can redistribute it and/or ! 5: modify it under the terms of the GNU General Public License ! 6: as published by the Free Software Foundation; either version 2 ! 7: of the License, or (at your option) any later version. ! 8: ! 9: This program is distributed in the hope that it will be useful, ! 10: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 11: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ! 12: ! 13: See the GNU General Public License for more details. ! 14: ! 15: You should have received a copy of the GNU General Public License ! 16: along with this program; if not, write to the Free Software ! 17: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! 18: ! 19: */ ! 20: // ! 21: // spritegn.h: header file for sprite generation program ! 22: // ! 23: ! 24: // ********************************************************** ! 25: // * This file must be identical in the spritegen directory * ! 26: // * and in the Quake directory, because it's used to * ! 27: // * pass data from one to the other via .spr files. * ! 28: // ********************************************************** ! 29: ! 30: //------------------------------------------------------- ! 31: // This program generates .spr sprite package files. ! 32: // The format of the files is as follows: ! 33: // ! 34: // dsprite_t file header structure ! 35: // <repeat dsprite_t.numframes times> ! 36: // <if spritegroup, repeat dspritegroup_t.numframes times> ! 37: // dspriteframe_t frame header structure ! 38: // sprite bitmap ! 39: // <else (single sprite frame)> ! 40: // dspriteframe_t frame header structure ! 41: // sprite bitmap ! 42: // <endrepeat> ! 43: //------------------------------------------------------- ! 44: ! 45: #ifdef INCLUDELIBS ! 46: ! 47: #include <stdlib.h> ! 48: #include <stdio.h> ! 49: #include <math.h> ! 50: #include <string.h> ! 51: ! 52: #include "cmdlib.h" ! 53: #include "scriplib.h" ! 54: #include "dictlib.h" ! 55: #include "trilib.h" ! 56: #include "lbmlib.h" ! 57: #include "mathlib.h" ! 58: ! 59: #endif ! 60: ! 61: #define SPRITE_VERSION 1 ! 62: ! 63: // must match definition in modelgen.h ! 64: #ifndef SYNCTYPE_T ! 65: #define SYNCTYPE_T ! 66: typedef enum {ST_SYNC=0, ST_RAND } synctype_t; ! 67: #endif ! 68: ! 69: // TODO: shorten these? ! 70: typedef struct { ! 71: int ident; ! 72: int version; ! 73: int type; ! 74: float boundingradius; ! 75: int width; ! 76: int height; ! 77: int numframes; ! 78: float beamlength; ! 79: synctype_t synctype; ! 80: } dsprite_t; ! 81: ! 82: #define SPR_VP_PARALLEL_UPRIGHT 0 ! 83: #define SPR_FACING_UPRIGHT 1 ! 84: #define SPR_VP_PARALLEL 2 ! 85: #define SPR_ORIENTED 3 ! 86: #define SPR_VP_PARALLEL_ORIENTED 4 ! 87: ! 88: typedef struct { ! 89: int origin[2]; ! 90: int width; ! 91: int height; ! 92: } dspriteframe_t; ! 93: ! 94: typedef struct { ! 95: int numframes; ! 96: } dspritegroup_t; ! 97: ! 98: typedef struct { ! 99: float interval; ! 100: } dspriteinterval_t; ! 101: ! 102: typedef enum { SPR_SINGLE=0, SPR_GROUP } spriteframetype_t; ! 103: ! 104: typedef struct { ! 105: spriteframetype_t type; ! 106: } dspriteframetype_t; ! 107: ! 108: #define IDSPRITEHEADER (('P'<<24)+('S'<<16)+('D'<<8)+'I') ! 109: // little-endian "IDSP" ! 110:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.