nuke commdef.h and clean up the results by putting its contents where they

belong.
also, merge model.h and friends (MINUS render.h). this needed moving efrags_t
from render.h to model.h.
This commit is contained in:
Bill Currie 2001-04-10 06:55:28 +00:00
parent b7a4c80b94
commit a96536c896
62 changed files with 101 additions and 994 deletions

View file

@ -39,20 +39,25 @@
#define MAX_MAP_ENTITIES 1024
#define MAX_MAP_ENTSTRING 65536
#define MAX_MAP_PLANES 8192
#define MAX_MAP_PLANES 32767
//#define MAX_MAP_PLANES 8192
#define MAX_MAP_NODES 32767 // because negative shorts are contents
#define MAX_MAP_CLIPNODES 32767 //
#define MAX_MAP_LEAFS 32767 //
#define MAX_MAP_LEAFS 32767 //
//#define MAX_MAP_LEAFS 8192
#define MAX_MAP_VERTS 65535
#define MAX_MAP_FACES 65535
#define MAX_MAP_MARKSURFACES 65535
#define MAX_MAP_TEXINFO 4096
#define MAX_MAP_EDGES 256000
#define MAX_MAP_SURFEDGES 512000
#define MAX_MAP_TEXTURES 512
#define MAX_MAP_MIPTEX 0x200000
#define MAX_MAP_LIGHTING 0x100000
#define MAX_MAP_VISIBILITY 0x100000
#define MAX_MAP_PORTALS 65536
// key / value pair sizes
#define MAX_KEY 32
@ -63,6 +68,7 @@
#define BSPVERSION 29
#define TOOLVERSION 2
typedef struct {
int fileofs;
@ -140,6 +146,16 @@ typedef struct {
#define CONTENTS_SLIME -4
#define CONTENTS_LAVA -5
#define CONTENTS_SKY -6
#define CONTENTS_ORIGIN -7 // removed at csg time
#define CONTENTS_CLIP -8 // changed to contents_solid
#define CONTENTS_CURRENT_0 -9
#define CONTENTS_CURRENT_90 -10
#define CONTENTS_CURRENT_180 -11
#define CONTENTS_CURRENT_270 -12
#define CONTENTS_CURRENT_UP -13
#define CONTENTS_CURRENT_DOWN -14
// !!! if this is changed, it must be changed in asm_i386.h too !!!
typedef struct {
@ -212,6 +228,9 @@ typedef struct {
#ifndef QUAKE_GAME
#define ANGLE_UP -1
#define ANGLE_DOWN -2
// the utilities get to be lazy and just use large static arrays
extern int nummodels;
@ -259,6 +278,8 @@ extern unsigned short dmarksurfaces[MAX_MAP_MARKSURFACES];
extern int numsurfedges;
extern int dsurfedges[MAX_MAP_SURFEDGES];
void DecompressVis (byte *in, byte *decompressed);
int CompressVis (byte *vis, byte *dest);
void LoadBSPFile (char *filename);
void WriteBSPFile (char *filename);

View file

@ -30,10 +30,9 @@
#define _MODEL_H
#include "QF/qtypes.h"
#include "render.h"
#include "bspfile.h"
#include "spritegn.h"
#include "modelgen.h"
#include "QF/bspfile.h"
#include "QF/spritegn.h"
#include "QF/modelgen.h"
#include "QF/zone.h"
/*
@ -62,6 +61,14 @@ BRUSH MODELS
==============================================================================
*/
typedef struct efrag_s
{
struct mleaf_s *leaf;
struct efrag_s *leafnext;
struct entity_s *entity;
struct efrag_s *entnext;
} efrag_t;
//
// in memory representation

View file

@ -1,7 +1,7 @@
/*
modelgen.h
@description@
header file for model generation program
Copyright (C) 1996-1997 Id Software, Inc.
@ -26,28 +26,17 @@
$Id$
*/
// *********************************************************
// * This file must be identical in the modelgen directory *
// * and in the Quake directory, because it's used to *
// * pass data from one to the other via model files. *
// *********************************************************
#ifdef INCLUDELIBS
#ifndef _MODELGEN_H
#define _MODELGEN_H
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include "cmdlib.h"
#include "scriplib.h"
#include "trilib.h"
#include "lbmlib.h"
#include "QF/mathlib.h"
#endif
#define ALIAS_VERSION 6
#define ALIAS_ONSEAM 0x0020
@ -137,4 +126,4 @@ typedef struct {
#define IDPOLYHEADER (('O'<<24)+('P'<<16)+('D'<<8)+'I')
// little-endian "IDPO"
#endif // _MODELGEN_H

View file

@ -31,6 +31,8 @@
#include "QF/gcc_attr.h"
extern struct cvar_s *sys_nostdout;
int Sys_FileTime (const char *path);
void Sys_mkdir (const char *path);

View file

@ -1,338 +0,0 @@
/*
bspfile.h
@description@
Copyright (C) 1996-1997 Id Software, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
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.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to:
Free Software Foundation, Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307, USA
$Id$
*/
#ifndef __bspfile_h
#define __bspfile_h
#include "QF/qtypes.h"
// upper design bounds
#define MAX_MAP_HULLS 4
#define MAX_MAP_MODELS 256
#define MAX_MAP_BRUSHES 4096
#define MAX_MAP_ENTITIES 1024
#define MAX_MAP_ENTSTRING 65536
#define MAX_MAP_PLANES 32767
#define MAX_MAP_NODES 32767 // because negative shorts are contents
#define MAX_MAP_CLIPNODES 32767 //
#define MAX_MAP_LEAFS 8192
#define MAX_MAP_VERTS 65535
#define MAX_MAP_FACES 65535
#define MAX_MAP_MARKSURFACES 65535
#define MAX_MAP_TEXINFO 4096
#define MAX_MAP_EDGES 256000
#define MAX_MAP_SURFEDGES 512000
#define MAX_MAP_TEXTURES 512
#define MAX_MAP_MIPTEX 0x200000
#define MAX_MAP_LIGHTING 0x100000
#define MAX_MAP_VISIBILITY 0x100000
#define MAX_MAP_PORTALS 65536
// key / value pair sizes
#define MAX_KEY 32
#define MAX_VALUE 1024
//=============================================================================
#define BSPVERSION 29
#define TOOLVERSION 2
typedef struct
{
int fileofs, filelen;
} lump_t;
#define LUMP_ENTITIES 0
#define LUMP_PLANES 1
#define LUMP_TEXTURES 2
#define LUMP_VERTEXES 3
#define LUMP_VISIBILITY 4
#define LUMP_NODES 5
#define LUMP_TEXINFO 6
#define LUMP_FACES 7
#define LUMP_LIGHTING 8
#define LUMP_CLIPNODES 9
#define LUMP_LEAFS 10
#define LUMP_MARKSURFACES 11
#define LUMP_EDGES 12
#define LUMP_SURFEDGES 13
#define LUMP_MODELS 14
#define HEADER_LUMPS 15
typedef struct
{
float mins[3], maxs[3];
float origin[3];
int headnode[MAX_MAP_HULLS];
int visleafs; // not including the solid leaf 0
int firstface, numfaces;
} dmodel_t;
typedef struct
{
int version;
lump_t lumps[HEADER_LUMPS];
} dheader_t;
typedef struct
{
int nummiptex;
int dataofs[4]; // [nummiptex]
} dmiptexlump_t;
#define MIPLEVELS 4
typedef struct miptex_s
{
char name[16];
unsigned width, height;
unsigned offsets[MIPLEVELS]; // four mip maps stored
} miptex_t;
typedef struct
{
float point[3];
} dvertex_t;
// 0-2 are axial planes
#define PLANE_X 0
#define PLANE_Y 1
#define PLANE_Z 2
// 3-5 are non-axial planes snapped to the nearest
#define PLANE_ANYX 3
#define PLANE_ANYY 4
#define PLANE_ANYZ 5
typedef struct
{
float normal[3];
float dist;
int type; // PLANE_X - PLANE_ANYZ ?remove? trivial to regenerate
} dplane_t;
#define CONTENTS_EMPTY -1
#define CONTENTS_SOLID -2
#define CONTENTS_WATER -3
#define CONTENTS_SLIME -4
#define CONTENTS_LAVA -5
#define CONTENTS_SKY -6
#define CONTENTS_ORIGIN -7 // removed at csg time
#define CONTENTS_CLIP -8 // changed to contents_solid
#define CONTENTS_CURRENT_0 -9
#define CONTENTS_CURRENT_90 -10
#define CONTENTS_CURRENT_180 -11
#define CONTENTS_CURRENT_270 -12
#define CONTENTS_CURRENT_UP -13
#define CONTENTS_CURRENT_DOWN -14
// !!! if this is changed, it must be changed in asm_ia32.h too !!!
typedef struct
{
int planenum;
short children[2]; // negative numbers are -(leafs+1), not nodes
short mins[3]; // for sphere culling
short maxs[3];
unsigned short firstface;
unsigned short numfaces; // counting both sides
} dnode_t;
typedef struct
{
int planenum;
short children[2]; // negative numbers are contents
} dclipnode_t;
typedef struct texinfo_s
{
float vecs[2][4]; // [s/t][xyz offset]
int miptex;
int flags;
} texinfo_t;
#define TEX_SPECIAL 1 // sky or slime, no lightmap or 256 subdivision
// note that edge 0 is never used, because negative edge nums are used for
// counterclockwise use of the edge in a face
typedef struct
{
unsigned short v[2]; // vertex numbers
} dedge_t;
#define MAXLIGHTMAPS 4
typedef struct
{
short planenum;
short side;
int firstedge; // we must support > 64k edges
short numedges;
short texinfo;
// lighting info
byte styles[MAXLIGHTMAPS];
int lightofs; // start of [numstyles*surfsize] samples
} dface_t;
#define AMBIENT_WATER 0
#define AMBIENT_SKY 1
#define AMBIENT_SLIME 2
#define AMBIENT_LAVA 3
#define NUM_AMBIENTS 4 // automatic ambient sounds
// leaf 0 is the generic CONTENTS_SOLID leaf, used for all solid areas
// all other leafs need visibility info
typedef struct
{
int contents;
int visofs; // -1 = no visibility info
short mins[3]; // for frustum culling
short maxs[3];
unsigned short firstmarksurface;
unsigned short nummarksurfaces;
byte ambient_level[NUM_AMBIENTS];
} dleaf_t;
//============================================================================
#ifndef QUAKE_GAME
#define ANGLE_UP -1
#define ANGLE_DOWN -2
// the utilities get to be lazy and just use large static arrays
extern int nummodels;
extern dmodel_t dmodels[MAX_MAP_MODELS];
extern int visdatasize;
extern byte dvisdata[MAX_MAP_VISIBILITY];
extern int lightdatasize;
extern byte dlightdata[MAX_MAP_LIGHTING];
extern int texdatasize;
extern byte dtexdata[MAX_MAP_MIPTEX]; // (dmiptexlump_t)
extern int entdatasize;
extern char dentdata[MAX_MAP_ENTSTRING];
extern int numleafs;
extern dleaf_t dleafs[MAX_MAP_LEAFS];
extern int numplanes;
extern dplane_t dplanes[MAX_MAP_PLANES];
extern int numvertexes;
extern dvertex_t dvertexes[MAX_MAP_VERTS];
extern int numnodes;
extern dnode_t dnodes[MAX_MAP_NODES];
extern int numtexinfo;
extern texinfo_t texinfo[MAX_MAP_TEXINFO];
extern int numfaces;
extern dface_t dfaces[MAX_MAP_FACES];
extern int numclipnodes;
extern dclipnode_t dclipnodes[MAX_MAP_CLIPNODES];
extern int numedges;
extern dedge_t dedges[MAX_MAP_EDGES];
extern int nummarksurfaces;
extern unsigned short dmarksurfaces[MAX_MAP_MARKSURFACES];
extern int numsurfedges;
extern int dsurfedges[MAX_MAP_SURFEDGES];
void DecompressVis (byte *in, byte *decompressed);
int CompressVis (byte *vis, byte *dest);
void LoadBSPFile (char *filename);
void WriteBSPFile (char *filename);
void PrintBSPFileSizes (void);
//===============
/*
typedef struct epair_s
{
struct epair_s *next;
char *key;
char *value;
} epair_t;
typedef struct
{
vec3_t origin;
int firstbrush;
int numbrushes;
epair_t *epairs;
} entity_t;
extern int num_entities;
extern entity_t entities[MAX_MAP_ENTITIES];
void ParseEntities (void);
void UnparseEntities (void);
void SetKeyValue (entity_t *ent, char *key, char *value);
char *ValueForKey (entity_t *ent, char *key);
// will return "" if not present
vec_t FloatForKey (entity_t *ent, char *key);
void GetVectorForKey (entity_t *ent, char *key, vec3_t vec);
epair_t *ParseEpair (void);
*/
#endif
#endif // __bspfile_h

View file

@ -35,7 +35,7 @@
#include "QF/mathlib.h"
#include "protocol.h"
#include "net.h"
#include "model.h"
#include "QF/model.h"
#include "sound.h"
#include "render.h"
#include "QF/cvar.h"

View file

@ -29,7 +29,8 @@
#ifndef __d_iface_h
#define __d_iface_h
#include "model.h"
#include "QF/model.h"
#include "render.h"
#define WARP_WIDTH 320
#define WARP_HEIGHT 200
@ -118,7 +119,7 @@ typedef struct
int color;
} zpointdesc_t;
extern cvar_t *r_drawflat;
extern struct cvar_s *r_drawflat;
extern int d_spanpixcount;
extern int r_framecount; // sequence # of current frame since Quake
// started

View file

@ -43,7 +43,6 @@
#include <GL/gl.h>
#include "QF/qtypes.h"
#include "model.h"
#include "d_iface.h"
void GL_BeginRendering (int *x, int *y, int *width, int *height);

View file

@ -1,446 +0,0 @@
/*
model.h
(description)
Copyright (C) 1996-1997 Id Software, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
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.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to:
Free Software Foundation, Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307, USA
$Id$
*/
#ifndef _MODEL_H
#define _MODEL_H
#include "QF/qtypes.h"
#include "render.h"
#include "bspfile.h"
#include "spritegn.h"
#include "modelgen.h"
#include "QF/zone.h"
/*
d*_t structures are on-disk representations
m*_t structures are in-memory
*/
// entity effects
#define EF_BRIGHTFIELD 1
#define EF_MUZZLEFLASH 2
#define EF_BRIGHTLIGHT 4
#define EF_DIMLIGHT 8
#define EF_FLAG1 16
#define EF_FLAG2 32
#define EF_BLUE 64
#define EF_RED 128
/*
==============================================================================
BRUSH MODELS
==============================================================================
*/
//
// in memory representation
//
// !!! if this is changed, it must be changed in asm_draw.h too !!!
typedef struct
{
vec3_t position;
} mvertex_t;
typedef struct texture_s
{
char name[16];
unsigned width, height;
int gl_texturenum;
int gl_fb_texturenum;
struct msurface_s *texturechain; // for gl_texsort drawing
int anim_total; // total tenths in sequence ( 0 = no)
int anim_min, anim_max; // time for this frame min <=time< max
struct texture_s *anim_next; // in the animation sequence
struct texture_s *alternate_anims; // bmodels in frame 1 use these
unsigned offsets[MIPLEVELS]; // four mip maps stored
} texture_t;
#define SURF_PLANEBACK 2
#define SURF_DRAWSKY 4
#define SURF_DRAWSPRITE 8
#define SURF_DRAWTURB 0x10
#define SURF_DRAWTILED 0x20
#define SURF_DRAWBACKGROUND 0x40
#define SURF_UNDERWATER 0x80
#define SURF_DONTWARP 0x100
// !!! if this is changed, it must be changed in asm_draw.h too !!!
typedef struct
{
unsigned short v[2];
unsigned int cachededgeoffset;
} medge_t;
typedef struct
{
float vecs[2][4];
float mipadjust;
texture_t *texture;
int flags;
} mtexinfo_t;
#define VERTEXSIZE 7
typedef struct glpoly_s
{
struct glpoly_s *next;
struct glpoly_s *chain;
struct glpoly_s *fb_chain;
int numverts;
int flags; // for SURF_UNDERWATER
float verts[4][VERTEXSIZE]; // variable sized (xyz s1t1 s2t2)
} glpoly_t;
typedef struct msurface_s
{
int visframe; // should be drawn when node is crossed
mplane_t *plane;
int flags;
int firstedge; // look up in model->surfedges[], negative numbers
int numedges; // are backwards edges
struct surfcache_s *cachespots[MIPLEVELS];
short texturemins[2];
short extents[2];
int light_s, light_t; // gl lightmap coordinates
glpoly_t *polys; // multiple if warped
struct msurface_s *texturechain;
mtexinfo_t *texinfo;
// lighting info
int dlightframe;
int dlightbits;
int lightmaptexturenum;
byte styles[MAXLIGHTMAPS];
int cached_light[MAXLIGHTMAPS]; // values currently used in lightmap
qboolean cached_dlight; // true if dynamic light in cache
byte *samples; // [numstyles*surfsize]
} msurface_t;
typedef struct mnode_s
{
// common with leaf
int contents; // 0, to differentiate from leafs
int visframe; // node needs to be traversed if current
float minmaxs[6]; // for bounding box culling
struct mnode_s *parent;
// node specific
mplane_t *plane;
struct mnode_s *children[2];
unsigned short firstsurface;
unsigned short numsurfaces;
} mnode_t;
typedef struct mleaf_s
{
// common with node
int contents; // wil be a negative contents number
int visframe; // node needs to be traversed if current
float minmaxs[6]; // for bounding box culling
struct mnode_s *parent;
// leaf specific
byte *compressed_vis;
efrag_t *efrags;
msurface_t **firstmarksurface;
int nummarksurfaces;
int key; // BSP sequence number for leaf's contents
byte ambient_sound_level[NUM_AMBIENTS];
} mleaf_t;
// !!! if this is changed, it must be changed in asm_ia32.h too !!!
typedef struct
{
dclipnode_t *clipnodes;
mplane_t *planes;
int firstclipnode;
int lastclipnode;
vec3_t clip_mins;
vec3_t clip_maxs;
} hull_t;
/*
==============================================================================
SPRITE MODELS
==============================================================================
*/
// FIXME: shorten these?
typedef struct mspriteframe_s
{
int width;
int height;
float up, down, left, right;
byte pixels[4];
int gl_texturenum;
} mspriteframe_t;
typedef struct
{
int numframes;
float *intervals;
mspriteframe_t *frames[1];
} mspritegroup_t;
typedef struct
{
spriteframetype_t type;
mspriteframe_t *frameptr;
} mspriteframedesc_t;
typedef struct
{
int type;
int maxwidth;
int maxheight;
int numframes;
float beamlength; // remove?
void *cachespot; // remove?
mspriteframedesc_t frames[1];
} msprite_t;
/*
==============================================================================
ALIAS MODELS
Alias models are position independent, so the cache manager can move them.
==============================================================================
*/
/* NOTE: the first three lines must match maliasgroupframedesc_t */
typedef struct
{
trivertx_t bboxmin;
trivertx_t bboxmax;
int frame;
aliasframetype_t type;
int firstpose;
int numposes;
float interval;
char name[16];
} maliasframedesc_t;
typedef struct
{
aliasskintype_t type;
int skin;
} maliasskindesc_t;
typedef struct
{
trivertx_t bboxmin;
trivertx_t bboxmax;
int frame;
} maliasgroupframedesc_t;
typedef struct
{
int numframes;
int intervals;
maliasgroupframedesc_t frames[1];
} maliasgroup_t;
typedef struct
{
int numskins;
int intervals;
maliasskindesc_t skindescs[1];
} maliasskingroup_t;
// !!! if this is changed, it must be changed in asm_draw.h too !!!
typedef struct mtriangle_s {
int facesfront;
int vertindex[3];
} mtriangle_t;
#define MAX_SKINS 32
typedef struct {
int model;
int stverts;
int skindesc;
int triangles;
mdl_t mdl;
int numposes;
int poseverts;
int posedata; // numposes*poseverts trivert_t
int commands; // gl command list with embedded s/t
int gl_texturenum[MAX_SKINS][4];
int gl_fb_texturenum[MAX_SKINS][4];
int texels[MAX_SKINS]; // only for player skins
maliasframedesc_t frames[1];
} aliashdr_t;
#define MAXALIASVERTS 1024
#define MAXALIASFRAMES 256
#define MAXALIASTRIS 2048
extern aliashdr_t *pheader;
extern stvert_t stverts[MAXALIASVERTS];
extern mtriangle_t triangles[MAXALIASTRIS];
extern trivertx_t *poseverts[MAXALIASFRAMES];
//===================================================================
//
// Whole model
//
typedef enum {mod_brush, mod_sprite, mod_alias} modtype_t;
#define EF_ROCKET 1 // leave a trail
#define EF_GRENADE 2 // leave a trail
#define EF_GIB 4 // leave a trail
#define EF_ROTATE 8 // rotate (bonus items)
#define EF_TRACER 16 // green split trail
#define EF_ZOMGIB 32 // small blood trail
#define EF_TRACER2 64 // orange split trail + rotate
#define EF_TRACER3 128 // purple trail
typedef struct model_s
{
char name[MAX_QPATH];
qboolean needload; // bmodels and sprites don't cache normally
qboolean hasfullbrights;
modtype_t type;
int numframes;
synctype_t synctype;
int flags;
//
// volume occupied by the model graphics
//
vec3_t mins, maxs;
float radius;
//
// solid volume for clipping
//
qboolean clipbox;
vec3_t clipmins, clipmaxs;
//
// brush model
//
int firstmodelsurface, nummodelsurfaces;
int numsubmodels;
dmodel_t *submodels;
int numplanes;
mplane_t *planes;
int numleafs; // number of visible leafs, not counting 0
mleaf_t *leafs;
int numvertexes;
mvertex_t *vertexes;
int numedges;
medge_t *edges;
int numnodes;
mnode_t *nodes;
int numtexinfo;
mtexinfo_t *texinfo;
int numsurfaces;
msurface_t *surfaces;
int numsurfedges;
int *surfedges;
int numclipnodes;
dclipnode_t *clipnodes;
int nummarksurfaces;
msurface_t **marksurfaces;
hull_t hulls[MAX_MAP_HULLS];
int numtextures;
texture_t **textures;
byte *visdata;
byte *lightdata;
char *entities;
unsigned checksum;
unsigned checksum2;
//
// additional model data
//
cache_user_t cache; // only access through Mod_Extradata
} model_t;
//============================================================================
void Mod_Init (void);
void Mod_ClearAll (void);
model_t *Mod_ForName (char *name, qboolean crash);
void *Mod_Extradata (model_t *mod); // handles caching
void Mod_TouchModel (char *name);
mleaf_t *Mod_PointInLeaf (float *p, model_t *model);
byte *Mod_LeafPVS (mleaf_t *leaf, model_t *model);
model_t *Mod_FindName (char *name);
#endif // _MODEL_H

View file

@ -41,15 +41,6 @@
//=============================================================================
typedef struct efrag_s
{
struct mleaf_s *leaf;
struct efrag_s *leafnext;
struct entity_s *entity;
struct efrag_s *entnext;
} efrag_t;
typedef struct entity_s
{
qboolean forcelink; // model changed

View file

@ -35,7 +35,7 @@
#include "net.h"
#include "QF/cvar.h"
#include "protocol.h"
#include "model.h"
#include "QF/model.h"
#include "sv_progs.h"
#include "QF/sizebuf.h"
#include "QF/info.h"

View file

@ -1,116 +0,0 @@
/*
spritegn.h
@description@
Copyright (C) 1996-1997 Id Software, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
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.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to:
Free Software Foundation, Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307, USA
$Id$
*/
// **********************************************************
// * This file must be identical in the spritegen directory *
// * and in the Quake directory, because it's used to *
// * pass data from one to the other via .spr files. *
// **********************************************************
//-------------------------------------------------------
// This program generates .spr sprite package files.
// The format of the files is as follows:
//
// dsprite_t file header structure
// <repeat dsprite_t.numframes times>
// <if spritegroup, repeat dspritegroup_t.numframes times>
// dspriteframe_t frame header structure
// sprite bitmap
// <else (single sprite frame)>
// dspriteframe_t frame header structure
// sprite bitmap
// <endrepeat>
//-------------------------------------------------------
#ifdef INCLUDELIBS
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include "cmdlib.h"
#include "scriplib.h"
#include "dictlib.h"
#include "trilib.h"
#include "lbmlib.h"
#include "QF/mathlib.h"
#endif
#define SPRITE_VERSION 1
// must match definition in modelgen.h
#ifndef SYNCTYPE_T
#define SYNCTYPE_T
typedef enum {ST_SYNC=0, ST_RAND } synctype_t;
#endif
// TODO: shorten these?
typedef struct {
int ident;
int version;
int type;
float boundingradius;
int width;
int height;
int numframes;
float beamlength;
synctype_t synctype;
} dsprite_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
typedef struct {
int origin[2];
int width;
int height;
} dspriteframe_t;
typedef struct {
int numframes;
} dspritegroup_t;
typedef struct {
float interval;
} dspriteinterval_t;
typedef enum { SPR_SINGLE=0, SPR_GROUP } spriteframetype_t;
typedef struct {
spriteframetype_t type;
} dspriteframetype_t;
#define IDSPRITEHEADER (('P'<<24)+('S'<<16)+('D'<<8)+'I')
// little-endian "IDSP"

View file

@ -37,7 +37,6 @@
#endif
#include "QF/compat.h"
#include "bspfile.h" // needed by: glquake.h
#include "vid.h"
#include "QF/sys.h"
#include "QF/mathlib.h" // needed by: protocol.h, render.h,
@ -53,7 +52,6 @@
#include "render.h" // needed by: client.h, model.h,
// glquake.h
#include "client.h" // need cls in this file
#include "model.h" // needed by: glquake.h
#include "QF/console.h"
#include "glquake.h"
#include "view.h"

View file

@ -40,7 +40,7 @@
#include "QF/console.h"
#include "QF/mdfour.h"
#include "model.h"
#include "QF/model.h"
#include "QF/quakefs.h"
/*

View file

@ -31,7 +31,7 @@
#endif
#include "render.h"
#include "model.h"
#include "QF/model.h"
#include "client.h"
#include "QF/sys.h"
#include "QF/console.h"

View file

@ -43,7 +43,7 @@
#include "game.h"
#include "glquake.h"
#include "client.h"
#include "model.h"
#include "QF/model.h"
#include "render.h"
#include "QF/sys.h"
#include "chase.h"

View file

@ -36,7 +36,6 @@
#include <strings.h>
#endif
#include "bspfile.h" // needed by: glquake.h
#include "vid.h"
#include "QF/sys.h"
#include "QF/mathlib.h" // needed by: protocol.h, render.h,
@ -52,7 +51,7 @@
#include "render.h" // needed by: client.h, gl_model.h,
// glquake.h
#include "client.h" // need cls in this file
#include "model.h" // needed by: glquake.h
#include "QF/model.h" // needed by: glquake.h
#include "QF/console.h"
#include "glquake.h"
#include "r_local.h"

View file

@ -39,7 +39,6 @@
#include "QF/compat.h"
#include "r_local.h"
#include "QF/qargs.h"
#include "bspfile.h" // needed by: glquake.h
#include "vid.h"
#include "QF/sys.h"
#include "QF/mathlib.h" // needed by: protocol.h, render.h,
@ -55,7 +54,7 @@
#include "render.h" // needed by: client.h, gl_model.h,
// glquake.h
#include "client.h" // need cls in this file
#include "model.h" // needed by: glquake.h
#include "QF/model.h" // needed by: glquake.h
#include "QF/console.h"
#include "glquake.h"

View file

@ -39,7 +39,6 @@
#include "QF/compat.h"
#include "input.h"
#include "QF/qendian.h"
#include "bspfile.h" // needed by: glquake.h
#include "vid.h"
#include "QF/sys.h"
#include "QF/mathlib.h" // needed by: protocol.h, render.h,
@ -58,7 +57,7 @@
#include "render.h" // needed by: client.h, gl_model.h,
// glquake.h
#include "client.h" // need cls in this file
#include "model.h" // needed by: glquake.h
#include "QF/model.h" // needed by: glquake.h
#include "QF/console.h"
#include "glquake.h"
#include "view.h"

View file

@ -40,7 +40,7 @@
#include "QF/qtypes.h"
#include "QF/console.h"
#include "model.h"
#include "QF/model.h"
#include "QF/quakefs.h"
#include "glquake.h"
#include "QF/sys.h"

View file

@ -38,7 +38,7 @@
#include "QF/va.h"
#include "screen.h"
#include "QF/msg.h"
#include "model.h"
#include "QF/model.h"
#include "QF/console.h"
#include "QF/keys.h"
#include "QF/sys.h"

View file

@ -42,7 +42,7 @@
#include "QF/cmd.h"
#include "QF/console.h"
#include "host.h"
#include "model.h"
#include "QF/model.h"
#include "QF/qargs.h"
#include "QF/sys.h"
#include "sound.h"

View file

@ -32,7 +32,7 @@
#endif
#include "world.h"
#include "model.h"
#include "QF/model.h"
#include "server.h"
#include "QF/sys.h"
#include "QF/console.h"

View file

@ -354,6 +354,8 @@ extern char *server_version; // version of server we connected to
extern qboolean allowskybox;
extern double realtime;
//=============================================================================

View file

@ -30,7 +30,8 @@
#define _D_IFACE_H
#include "QF/mathlib.h"
#include "model.h"
#include "QF/model.h"
#include "render.h"
#define WARP_WIDTH 320
#define WARP_HEIGHT 200

View file

@ -41,7 +41,7 @@
#include "client.h"
#include "QF/cvar.h"
#include "model.h"
#include "QF/model.h"
#include "render.h"
#include "qfgl_ext.h"
#include "wad.h"

View file

@ -29,7 +29,6 @@
#ifndef _QUAKEDEF_H
#define _QUAKEDEF_H
#include "commdef.h"
#include "QF/gcc_attr.h"
#include "QF/qtypes.h"
@ -69,4 +68,16 @@ void Host_Quit_f (void);
void Host_ClientCommands (char *fmt, ...) __attribute__((format(printf,1,2)));
void Host_ShutdownServer (qboolean crash);
typedef struct
{
int argc;
char **argv;
void *membase;
int memsize;
} quakeparms_t;
/* Host */
extern quakeparms_t host_parms;
#endif // _QUAKEDEH_H

View file

@ -31,7 +31,7 @@
#include "protocol.h"
#include "QF/mathlib.h"
#include "model.h"
#include "QF/model.h"
#define STOP_EPSILON 0.1

View file

@ -33,7 +33,7 @@
#include "QF/cvar.h"
#include "vid.h"
#include "client.h"
#include "model.h"
#include "QF/model.h"
#include "pmove.h"
#include "r_shared.h"

View file

@ -33,7 +33,7 @@
#include "QF/mathlib.h"
#include "QF/cvar.h"
#include "model.h"
#include "QF/model.h"
#include "d_iface.h"
#define MAXVERTS 16 // max points in a surface polygon

View file

@ -30,6 +30,7 @@
#define _RENDER_H
#include "QF/mathlib.h"
#include "QF/model.h"
#include "QF/cvar.h"
#include "vid.h"
//#include "model.h"
@ -41,14 +42,6 @@
//=============================================================================
typedef struct efrag_s
{
struct mleaf_s *leaf;
struct efrag_s *leafnext;
struct entity_s *entity;
struct efrag_s *entnext;
} efrag_t;
// LordHavoc: reindented this after 'Endy was here', also added scale.
typedef struct entity_s
{

View file

@ -31,11 +31,11 @@
#define _SERVER_H
#include "QF/gcc_attr.h"
#include "commdef.h"
#include "host.h"
#include "net.h"
#include "QF/cvar.h"
#include "protocol.h"
#include "model.h"
#include "QF/model.h"
#include "QF/progs.h"
#include "QF/sizebuf.h"
#include "QF/info.h"
@ -397,6 +397,7 @@ extern QFile *sv_logfile;
extern QFile *sv_fraglogfile;
extern double sv_frametime;
extern double realtime;
extern progs_t sv_pr_state;

View file

@ -31,7 +31,7 @@
#define _WORLD_H
#include "QF/mathlib.h"
#include "model.h"
#include "QF/model.h"
#include "QF/progs.h"
typedef struct

View file

@ -45,7 +45,6 @@
#include "cl_cam.h"
#include "client.h"
#include "commdef.h"
#include "QF/console.h"
#include "QF/msg.h"
#include "pmove.h"

View file

@ -80,7 +80,7 @@
#include "host.h"
#include "input.h"
#include "QF/keys.h"
#include "model.h"
#include "QF/model.h"
#include "QF/msg.h"
#include "net.h"
#include "pmove.h"

View file

@ -35,7 +35,6 @@
#include "bothdefs.h"
#include "cl_ents.h"
#include "client.h"
#include "commdef.h"
#include "QF/console.h"
#include "QF/cvar.h"
#include "pmove.h"

View file

@ -54,7 +54,6 @@
#include "cl_slist.h"
#include "client.h"
#include "QF/cmd.h"
#include "commdef.h"
#include "QF/console.h"
#include "QF/quakefs.h"
#include "QF/sys.h"

View file

@ -45,7 +45,7 @@
#include "client.h"
#include "QF/console.h"
#include "host.h"
#include "model.h"
#include "QF/model.h"
#include "QF/msg.h"
#include "r_dynamic.h"
#include "sound.h"

View file

@ -40,7 +40,6 @@
#include "client.h"
#include "QF/cmd.h"
#include "commdef.h"
#include "QF/console.h"
#include "draw.h"
#include "input.h"

View file

@ -60,7 +60,6 @@
# include <X11/extensions/xf86vmode.h>
#endif
#include "commdef.h"
#include "QF/console.h"
#include "context_x11.h"
#include "QF/cvar.h"

View file

@ -40,7 +40,7 @@
#include "QF/console.h"
#include "QF/mdfour.h"
#include "model.h"
#include "QF/model.h"
#include "QF/quakefs.h"
/*

View file

@ -41,7 +41,7 @@
#include "QF/console.h"
#include "glquake.h"
#include "model.h"
#include "QF/model.h"
#include "QF/qendian.h"
#include "server.h"
#include "skin.h"

View file

@ -41,7 +41,7 @@
#include "QF/console.h"
#include "glquake.h"
#include "model.h"
#include "QF/model.h"
#include "QF/qendian.h"
#include "QF/quakefs.h"

View file

@ -40,7 +40,7 @@
#endif
#include "glquake.h"
#include "model.h"
#include "QF/model.h"
#include "QF/qendian.h"
extern model_t *loadmodel;

View file

@ -44,7 +44,6 @@
#include "cl_cam.h"
#include "cl_main.h"
#include "cl_parse.h" //FIXME CL_NewTranslation
#include "commdef.h"
#include "QF/compat.h"
#include "QF/console.h"
#include "locs.h"

View file

@ -40,7 +40,7 @@
#endif
#include "QF/cvar.h"
#include "model.h"
#include "QF/model.h"
#include "QF/qendian.h"
#include "QF/quakefs.h"
#include "server.h"

View file

@ -43,7 +43,7 @@
#include "client.h"
#include "QF/crc.h"
#include "QF/info.h"
#include "model.h"
#include "QF/model.h"
#include "QF/msg.h"
#include "QF/qendian.h"
#include "QF/quakefs.h"

View file

@ -44,8 +44,9 @@
#include "QF/checksum.h"
#include "QF/cvar.h"
#include "model.h"
#include "QF/model.h"
#include "QF/qendian.h"
#include "render.h"
#include "server.h"
extern model_t *loadmodel;

View file

@ -33,7 +33,7 @@
# include "config.h"
#endif
#include "model.h"
#include "QF/model.h"
#include "server.h"
#include "QF/qendian.h"

View file

@ -45,7 +45,7 @@
#include <stdarg.h>
#include "client.h"
#include "commdef.h"
//#include "commdef.h"
#include "QF/console.h"
#include "QF/cvar.h"
#include "QF/msg.h"

View file

@ -38,7 +38,7 @@
#include "QF/compat.h"
#include "QF/console.h"
#include "model.h"
#include "QF/model.h"
#include "pmove.h"
#include "QF/qtypes.h"
#include "QF/sys.h"

View file

@ -43,7 +43,6 @@
#include "client.h"
#include "QF/cmd.h"
#include "QF/compat.h"
#include "commdef.h"
#include "draw.h"
#include "QF/msg.h"
#include "sbar.h"

View file

@ -42,7 +42,7 @@
#include "QF/cmd.h"
#include "QF/console.h"
#include "host.h"
#include "model.h"
#include "QF/model.h"
#include "QF/qargs.h"
#include "QF/sys.h"
#include "sound.h"

View file

@ -44,7 +44,7 @@
#include "QF/cmd.h"
#include "QF/compat.h"
#include "game.h"
#include "model.h"
#include "QF/model.h"
#include "net.h"
#include "QF/msg.h"
#include "pmove.h"

View file

@ -32,7 +32,7 @@
#endif
#include "QF/cvar.h"
#include "model.h"
#include "QF/model.h"
const int mod_lightmap_bytes = 1;
mplane_t frustum[4];

View file

@ -38,6 +38,7 @@
#include <time.h>
#include "bothdefs.h"
#include "QF/console.h"
#include "QF/msg.h"
#include "server.h"
#include "sv_progs.h"

View file

@ -42,7 +42,7 @@
#include "QF/checksum.h"
#include "d_iface.h"
#include "model.h"
#include "QF/model.h"
#include "QF/qendian.h"
#include "server.h"
#include "QF/sys.h"

View file

@ -39,7 +39,7 @@
# include <strings.h>
#endif
#include "model.h"
#include "QF/model.h"
extern model_t *loadmodel;
extern char loadname[];

View file

@ -40,7 +40,7 @@
#endif
#include "d_iface.h"
#include "model.h"
#include "QF/model.h"
#include "QF/qendian.h"
#include "server.h"

View file

@ -43,7 +43,7 @@
#include "QF/cmd.h"
#include "client.h"
#include "locs.h"
#include "model.h"
#include "QF/model.h"
#include "QF/sys.h"
#include "teamplay.h"

View file

@ -38,7 +38,6 @@
#include <stdio.h>
#include "commdef.h"
#include "QF/console.h"
#include "QF/crc.h"
#include "server.h"