Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5131 clevermous 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
// 
36
//   
37
//     dspriteframe_t frame header structure
38
//     sprite bitmap
39
//   
40
//     dspriteframe_t frame header structure
41
//     sprite bitmap
42
// 
43
//-------------------------------------------------------
44
 
45
#ifdef INCLUDELIBS
46
 
47
#include 
48
#include 
49
#include 
50
#include 
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