|
|
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.