/*
Copyright (C) 1997-2001 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 the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
//
// qfiles.h: quake file formats
// This file must be identical in the quake and utils directories
//
/*
========================================================================
The .pak files are just a linear collapse of a directory tree
========================================================================
*/
typedef struct dpackfile_t;
typedef struct dpackheader_t;
/*
========================================================================
PCX files are used for as many images as possible
========================================================================
*/
typedef struct pcx_t;
/*
========================================================================
.MD2 triangle model file format
========================================================================
*/
typedef struct dstvert_t;
typedef struct dskin_t;
typedef struct dtriangle_t;
typedef struct dtrivertx_t;
typedef struct daliasframe_t;
// the glcmd format:
// a positive integer starts a tristrip command, followed by that many
// vertex structures.
// a negative integer starts a trifan command, followed by -x vertexes
// a zero indicates the end of the command list.
// a vertex consists of a floating point s, a floating point t,
// and an integer vertex index.
typedef struct dmdl_t;
/*
========================================================================
.SP2 sprite file format
========================================================================
*/
// little-endian "IDS2"
typedef struct dsprframe_t;
typedef struct dsprite_t;
/*
==============================================================================
.WAL texture file format
==============================================================================
*/
typedef struct miptex_s miptex_t;
/*
==============================================================================
.BSP file format
==============================================================================
*/
// little-endian "IBSP"
// upper design bounds
// leaffaces, leafbrushes, planes, and verts are still bounded by
// 16 bit short limits
// key / value pair sizes
//=============================================================================
typedef struct lump_t;
typedef struct dheader_t;
typedef struct dmodel_t;
typedef struct dvertex_t;
// 0-2 are axial planes
// 3-5 are non-axial planes snapped to the nearest
// planes (x&~1) and (x&~1)+1 are always opposites
typedef struct dplane_t;
// contents flags are seperate bits
// a given brush can contribute multiple content bits
// multiple brushes can be in a single leaf
// these definitions also need to be in q_shared.h!
// lower bits are stronger, and will eat weaker brushes completely
// remaining contents are non-visible, and don't eat brushes
// currents can be added to any other contents, and may be mixed
typedef struct dnode_t;
typedef struct texinfo_s texinfo_t;
// note that edge 0 is never used, because negative edge nums are used for
// counterclockwise use of the edge in a face
typedef struct dedge_t;
typedef struct dface_t;
typedef struct dleaf_t;
typedef struct dbrushside_t;
typedef struct dbrush_t;
// the visibility lump consists of a header with a count, then
// byte offsets for the PVS and PHS of each cluster, then the raw
// compressed bit vectors
typedef struct dvis_t;
// each area has a list of portals that lead into other areas
// when portals are closed, other areas may not be visible or
// hearable even if the vis info says that it should be
typedef struct dareaportal_t;
typedef struct darea_t;