Main Page | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

l_bsp_q1.h File Reference

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Data Structures

struct  q1_dclipnode_t
struct  q1_dedge_t
struct  q1_dface_t
struct  q1_dheader_t
struct  q1_dleaf_t
struct  q1_dmiptexlump_t
struct  q1_dmodel_t
struct  q1_dnode_t
struct  q1_dplane_t
struct  q1_dvertex_t
struct  q1_lump_t
struct  q1_miptex_s
struct  q1_texinfo_s

Defines

#define AMBIENT_LAVA   3
#define AMBIENT_SKY   1
#define AMBIENT_SLIME   2
#define AMBIENT_WATER   0
#define MAX_KEY   32
#define MAX_VALUE   1024
#define MAXLIGHTMAPS   4
#define MIPLEVELS   4
#define NUM_AMBIENTS   4
#define PLANE_ANYX   3
#define PLANE_ANYY   4
#define PLANE_ANYZ   5
#define PLANE_X   0
#define PLANE_Y   1
#define PLANE_Z   2
#define Q1_BSPVERSION   29
#define Q1_CONTENTS_EMPTY   -1
#define Q1_CONTENTS_LAVA   -5
#define Q1_CONTENTS_SKY   -6
#define Q1_CONTENTS_SLIME   -4
#define Q1_CONTENTS_SOLID   -2
#define Q1_CONTENTS_WATER   -3
#define Q1_HEADER_LUMPS   15
#define Q1_LUMP_CLIPNODES   9
#define Q1_LUMP_EDGES   12
#define Q1_LUMP_ENTITIES   0
#define Q1_LUMP_FACES   7
#define Q1_LUMP_LEAFS   10
#define Q1_LUMP_LIGHTING   8
#define Q1_LUMP_MARKSURFACES   11
#define Q1_LUMP_MODELS   14
#define Q1_LUMP_NODES   5
#define Q1_LUMP_PLANES   1
#define Q1_LUMP_SURFEDGES   13
#define Q1_LUMP_TEXINFO   6
#define Q1_LUMP_TEXTURES   2
#define Q1_LUMP_VERTEXES   3
#define Q1_LUMP_VISIBILITY   4
#define Q1_MAX_MAP_BRUSHES   4096
#define Q1_MAX_MAP_CLIPNODES   32767
#define Q1_MAX_MAP_EDGES   256000
#define Q1_MAX_MAP_ENTITIES   1024
#define Q1_MAX_MAP_ENTSTRING   65536
#define Q1_MAX_MAP_FACES   65535
#define Q1_MAX_MAP_HULLS   4
#define Q1_MAX_MAP_LEAFS   32767
#define Q1_MAX_MAP_LIGHTING   0x100000
#define Q1_MAX_MAP_MARKSURFACES   65535
#define Q1_MAX_MAP_MIPTEX   0x200000
#define Q1_MAX_MAP_MODELS   256
#define Q1_MAX_MAP_NODES   32767
#define Q1_MAX_MAP_PLANES   8192
#define Q1_MAX_MAP_SURFEDGES   512000
#define Q1_MAX_MAP_TEXINFO   4096
#define Q1_MAX_MAP_VERTS   65535
#define Q1_MAX_MAP_VISIBILITY   0x100000
#define TEX_SPECIAL   1

Typedefs

typedef q1_miptex_s q1_miptex_t
typedef q1_texinfo_s q1_texinfo_t

Functions

void Q1_AllocMaxBSP (void)
void Q1_FreeMaxBSP (void)
void Q1_LoadBSPFile (char *filename, int offset, int length)
void Q1_ParseEntities (void)
void Q1_PrintBSPFileSizes (void)
void Q1_UnparseEntities (void)
void Q1_WriteBSPFile (char *filename)

Variables

q1_dclipnode_tq1_dclipnodes
q1_dedge_tq1_dedges
char * q1_dentdata
q1_dface_tq1_dfaces
q1_dleaf_tq1_dleafs
byteq1_dlightdata
unsigned short * q1_dmarksurfaces
q1_dmodel_tq1_dmodels
q1_dnode_tq1_dnodes
q1_dplane_tq1_dplanes
int * q1_dsurfedges
byteq1_dtexdata
q1_dvertex_tq1_dvertexes
byteq1_dvisdata
int q1_entdatasize
int q1_lightdatasize
int q1_numclipnodes
int q1_numedges
int q1_numfaces
int q1_numleafs
int q1_nummarksurfaces
int q1_nummodels
int q1_numnodes
int q1_numplanes
int q1_numsurfedges
int q1_numtexinfo
int q1_numvertexes
int q1_texdatasize
q1_texinfo_tq1_texinfo
int q1_visdatasize


Define Documentation

#define AMBIENT_LAVA   3
 

Definition at line 195 of file l_bsp_q1.h.

#define AMBIENT_SKY   1
 

Definition at line 193 of file l_bsp_q1.h.

#define AMBIENT_SLIME   2
 

Definition at line 194 of file l_bsp_q1.h.

#define AMBIENT_WATER   0
 

Definition at line 192 of file l_bsp_q1.h.

#define MAX_KEY   32
 

Definition at line 49 of file l_bsp_q1.h.

#define MAX_VALUE   1024
 

Definition at line 50 of file l_bsp_q1.h.

#define MAXLIGHTMAPS   4
 

Definition at line 175 of file l_bsp_q1.h.

#define MIPLEVELS   4
 

Definition at line 101 of file l_bsp_q1.h.

#define NUM_AMBIENTS   4
 

Definition at line 197 of file l_bsp_q1.h.

#define PLANE_ANYX   3
 

Definition at line 122 of file l_bsp_q1.h.

#define PLANE_ANYY   4
 

Definition at line 123 of file l_bsp_q1.h.

#define PLANE_ANYZ   5
 

Definition at line 124 of file l_bsp_q1.h.

#define PLANE_X   0
 

Definition at line 117 of file l_bsp_q1.h.

#define PLANE_Y   1
 

Definition at line 118 of file l_bsp_q1.h.

#define PLANE_Z   2
 

Definition at line 119 of file l_bsp_q1.h.

#define Q1_BSPVERSION   29
 

Definition at line 55 of file l_bsp_q1.h.

Referenced by Q1_LoadBSPFile(), and Q1_WriteBSPFile().

#define Q1_CONTENTS_EMPTY   -1
 

Definition at line 135 of file l_bsp_q1.h.

Referenced by Q1_CreateBrushes_r(), and Q1_SolidTree_r().

#define Q1_CONTENTS_LAVA   -5
 

Definition at line 139 of file l_bsp_q1.h.

Referenced by Q1_CreateBrushes_r(), and Q1_SolidTree_r().

#define Q1_CONTENTS_SKY   -6
 

Definition at line 140 of file l_bsp_q1.h.

Referenced by Q1_CreateBrushes_r(), and Q1_SolidTree_r().

#define Q1_CONTENTS_SLIME   -4
 

Definition at line 138 of file l_bsp_q1.h.

Referenced by Q1_CreateBrushes_r(), and Q1_SolidTree_r().

#define Q1_CONTENTS_SOLID   -2
 

Definition at line 136 of file l_bsp_q1.h.

Referenced by Q1_CreateBrushes_r(), and Q1_SolidTree_r().

#define Q1_CONTENTS_WATER   -3
 

Definition at line 137 of file l_bsp_q1.h.

Referenced by Q1_CreateBrushes_r(), and Q1_SolidTree_r().

#define Q1_HEADER_LUMPS   15
 

Definition at line 78 of file l_bsp_q1.h.

#define Q1_LUMP_CLIPNODES   9
 

Definition at line 71 of file l_bsp_q1.h.

Referenced by Q1_LoadBSPFile(), and Q1_WriteBSPFile().

#define Q1_LUMP_EDGES   12
 

Definition at line 74 of file l_bsp_q1.h.

Referenced by Q1_LoadBSPFile(), and Q1_WriteBSPFile().

#define Q1_LUMP_ENTITIES   0
 

Definition at line 62 of file l_bsp_q1.h.

Referenced by Q1_LoadBSPFile(), and Q1_WriteBSPFile().

#define Q1_LUMP_FACES   7
 

Definition at line 69 of file l_bsp_q1.h.

Referenced by Q1_LoadBSPFile(), and Q1_WriteBSPFile().

#define Q1_LUMP_LEAFS   10
 

Definition at line 72 of file l_bsp_q1.h.

Referenced by Q1_LoadBSPFile(), and Q1_WriteBSPFile().

#define Q1_LUMP_LIGHTING   8
 

Definition at line 70 of file l_bsp_q1.h.

Referenced by Q1_LoadBSPFile(), and Q1_WriteBSPFile().

#define Q1_LUMP_MARKSURFACES   11
 

Definition at line 73 of file l_bsp_q1.h.

Referenced by Q1_LoadBSPFile(), and Q1_WriteBSPFile().

#define Q1_LUMP_MODELS   14
 

Definition at line 76 of file l_bsp_q1.h.

Referenced by Q1_LoadBSPFile(), and Q1_WriteBSPFile().

#define Q1_LUMP_NODES   5
 

Definition at line 67 of file l_bsp_q1.h.

Referenced by Q1_LoadBSPFile(), and Q1_WriteBSPFile().

#define Q1_LUMP_PLANES   1
 

Definition at line 63 of file l_bsp_q1.h.

Referenced by Q1_LoadBSPFile(), and Q1_WriteBSPFile().

#define Q1_LUMP_SURFEDGES   13
 

Definition at line 75 of file l_bsp_q1.h.

Referenced by Q1_LoadBSPFile(), and Q1_WriteBSPFile().

#define Q1_LUMP_TEXINFO   6
 

Definition at line 68 of file l_bsp_q1.h.

Referenced by Q1_LoadBSPFile(), and Q1_WriteBSPFile().

#define Q1_LUMP_TEXTURES   2
 

Definition at line 64 of file l_bsp_q1.h.

Referenced by Q1_LoadBSPFile(), and Q1_WriteBSPFile().

#define Q1_LUMP_VERTEXES   3
 

Definition at line 65 of file l_bsp_q1.h.

Referenced by Q1_LoadBSPFile(), and Q1_WriteBSPFile().

#define Q1_LUMP_VISIBILITY   4
 

Definition at line 66 of file l_bsp_q1.h.

Referenced by Q1_LoadBSPFile(), and Q1_WriteBSPFile().

#define Q1_MAX_MAP_BRUSHES   4096
 

Definition at line 29 of file l_bsp_q1.h.

#define Q1_MAX_MAP_CLIPNODES   32767
 

Definition at line 35 of file l_bsp_q1.h.

Referenced by Q1_AllocMaxBSP(), and Q1_LoadBSPFile().

#define Q1_MAX_MAP_EDGES   256000
 

Definition at line 41 of file l_bsp_q1.h.

Referenced by Q1_AllocMaxBSP(), and Q1_LoadBSPFile().

#define Q1_MAX_MAP_ENTITIES   1024
 

Definition at line 30 of file l_bsp_q1.h.

#define Q1_MAX_MAP_ENTSTRING   65536
 

Definition at line 31 of file l_bsp_q1.h.

Referenced by Q1_AllocMaxBSP(), and Q1_LoadBSPFile().

#define Q1_MAX_MAP_FACES   65535
 

Definition at line 38 of file l_bsp_q1.h.

Referenced by Q1_AllocMaxBSP(), and Q1_LoadBSPFile().

#define Q1_MAX_MAP_HULLS   4
 

Definition at line 26 of file l_bsp_q1.h.

#define Q1_MAX_MAP_LEAFS   32767
 

Definition at line 36 of file l_bsp_q1.h.

Referenced by Q1_AllocMaxBSP(), and Q1_LoadBSPFile().

#define Q1_MAX_MAP_LIGHTING   0x100000
 

Definition at line 44 of file l_bsp_q1.h.

Referenced by Q1_AllocMaxBSP(), and Q1_LoadBSPFile().

#define Q1_MAX_MAP_MARKSURFACES   65535
 

Definition at line 39 of file l_bsp_q1.h.

Referenced by Q1_AllocMaxBSP(), and Q1_LoadBSPFile().

#define Q1_MAX_MAP_MIPTEX   0x200000
 

Definition at line 43 of file l_bsp_q1.h.

Referenced by Q1_AllocMaxBSP(), and Q1_LoadBSPFile().

#define Q1_MAX_MAP_MODELS   256
 

Definition at line 28 of file l_bsp_q1.h.

Referenced by Q1_AllocMaxBSP(), and Q1_LoadBSPFile().

#define Q1_MAX_MAP_NODES   32767
 

Definition at line 34 of file l_bsp_q1.h.

Referenced by Q1_AllocMaxBSP(), and Q1_LoadBSPFile().

#define Q1_MAX_MAP_PLANES   8192
 

Definition at line 33 of file l_bsp_q1.h.

Referenced by Q1_AllocMaxBSP(), and Q1_LoadBSPFile().

#define Q1_MAX_MAP_SURFEDGES   512000
 

Definition at line 42 of file l_bsp_q1.h.

Referenced by Q1_AllocMaxBSP(), and Q1_LoadBSPFile().

#define Q1_MAX_MAP_TEXINFO   4096
 

Definition at line 40 of file l_bsp_q1.h.

Referenced by Q1_AllocMaxBSP(), and Q1_LoadBSPFile().

#define Q1_MAX_MAP_VERTS   65535
 

Definition at line 37 of file l_bsp_q1.h.

Referenced by Q1_AllocMaxBSP(), and Q1_LoadBSPFile().

#define Q1_MAX_MAP_VISIBILITY   0x100000
 

Definition at line 45 of file l_bsp_q1.h.

Referenced by Q1_AllocMaxBSP(), and Q1_LoadBSPFile().

#define TEX_SPECIAL   1
 

Definition at line 166 of file l_bsp_q1.h.


Typedef Documentation

typedef struct q1_miptex_s q1_miptex_t
 

Referenced by Q1_TextureBrushes().

typedef struct q1_texinfo_s q1_texinfo_t
 

Referenced by Q1_AllocMaxBSP(), Q1_LoadBSPFile(), Q1_PrintBSPFileSizes(), and Q1_WriteBSPFile().


Function Documentation

void Q1_AllocMaxBSP void   ) 
 

Definition at line 83 of file l_bsp_q1.c.

References byte, GetMemory(), Log_Print(), PrintMemorySize(), q1_allocatedbspmem, q1_dclipnodes, q1_dedges, q1_dentdata, q1_dfaces, q1_dleafs, q1_dlightdata, q1_dmarksurfaces, q1_dmodels, q1_dnodes, q1_dplanes, q1_dsurfedges, q1_dtexdata, q1_dvertexes, q1_dvisdata, q1_entdatasize, q1_lightdatasize, Q1_MAX_MAP_CLIPNODES, Q1_MAX_MAP_EDGES, Q1_MAX_MAP_ENTSTRING, Q1_MAX_MAP_FACES, Q1_MAX_MAP_LEAFS, Q1_MAX_MAP_LIGHTING, Q1_MAX_MAP_MARKSURFACES, Q1_MAX_MAP_MIPTEX, Q1_MAX_MAP_MODELS, Q1_MAX_MAP_NODES, Q1_MAX_MAP_PLANES, Q1_MAX_MAP_SURFEDGES, Q1_MAX_MAP_TEXINFO, Q1_MAX_MAP_VERTS, Q1_MAX_MAP_VISIBILITY, q1_numclipnodes, q1_numedges, q1_numfaces, q1_numleafs, q1_nummarksurfaces, q1_nummodels, q1_numnodes, q1_numplanes, q1_numsurfedges, q1_numtexinfo, q1_numvertexes, q1_texdatasize, q1_texinfo, q1_texinfo_t, and q1_visdatasize.

Referenced by LoadMapFromBSP().

00084 {
00085     //models
00086     q1_nummodels = 0;
00087     q1_dmodels = (q1_dmodel_t *) GetMemory(Q1_MAX_MAP_MODELS * sizeof(q1_dmodel_t));
00088     q1_allocatedbspmem = Q1_MAX_MAP_MODELS * sizeof(q1_dmodel_t);
00089     //visibility
00090     q1_visdatasize = 0;
00091     q1_dvisdata = (byte *) GetMemory(Q1_MAX_MAP_VISIBILITY * sizeof(byte));
00092     q1_allocatedbspmem += Q1_MAX_MAP_VISIBILITY * sizeof(byte);
00093     //light data
00094     q1_lightdatasize = 0;
00095     q1_dlightdata = (byte *) GetMemory(Q1_MAX_MAP_LIGHTING * sizeof(byte));
00096     q1_allocatedbspmem += Q1_MAX_MAP_LIGHTING * sizeof(byte);
00097     //texture data
00098     q1_texdatasize = 0;
00099     q1_dtexdata = (byte *) GetMemory(Q1_MAX_MAP_MIPTEX * sizeof(byte)); // (dmiptexlump_t)
00100     q1_allocatedbspmem += Q1_MAX_MAP_MIPTEX * sizeof(byte);
00101     //entities
00102     q1_entdatasize = 0;
00103     q1_dentdata = (char *) GetMemory(Q1_MAX_MAP_ENTSTRING * sizeof(char));
00104     q1_allocatedbspmem += Q1_MAX_MAP_ENTSTRING * sizeof(char);
00105     //leaves
00106     q1_numleafs = 0;
00107     q1_dleafs = (q1_dleaf_t *) GetMemory(Q1_MAX_MAP_LEAFS * sizeof(q1_dleaf_t));
00108     q1_allocatedbspmem += Q1_MAX_MAP_LEAFS * sizeof(q1_dleaf_t);
00109     //planes
00110     q1_numplanes = 0;
00111     q1_dplanes = (q1_dplane_t *) GetMemory(Q1_MAX_MAP_PLANES * sizeof(q1_dplane_t));
00112     q1_allocatedbspmem += Q1_MAX_MAP_PLANES * sizeof(q1_dplane_t);
00113     //vertexes
00114     q1_numvertexes = 0;
00115     q1_dvertexes = (q1_dvertex_t *) GetMemory(Q1_MAX_MAP_VERTS * sizeof(q1_dvertex_t));
00116     q1_allocatedbspmem += Q1_MAX_MAP_VERTS * sizeof(q1_dvertex_t);
00117     //nodes
00118     q1_numnodes = 0;
00119     q1_dnodes = (q1_dnode_t *) GetMemory(Q1_MAX_MAP_NODES * sizeof(q1_dnode_t));
00120     q1_allocatedbspmem += Q1_MAX_MAP_NODES * sizeof(q1_dnode_t);
00121     //texture info
00122     q1_numtexinfo = 0;
00123     q1_texinfo = (q1_texinfo_t *) GetMemory(Q1_MAX_MAP_TEXINFO * sizeof(q1_texinfo_t));
00124     q1_allocatedbspmem += Q1_MAX_MAP_TEXINFO * sizeof(q1_texinfo_t);
00125     //faces
00126     q1_numfaces = 0;
00127     q1_dfaces = (q1_dface_t *) GetMemory(Q1_MAX_MAP_FACES * sizeof(q1_dface_t));
00128     q1_allocatedbspmem += Q1_MAX_MAP_FACES * sizeof(q1_dface_t);
00129     //clip nodes
00130     q1_numclipnodes = 0;
00131     q1_dclipnodes = (q1_dclipnode_t *) GetMemory(Q1_MAX_MAP_CLIPNODES * sizeof(q1_dclipnode_t));
00132     q1_allocatedbspmem += Q1_MAX_MAP_CLIPNODES * sizeof(q1_dclipnode_t);
00133     //edges
00134     q1_numedges = 0;
00135     q1_dedges = (q1_dedge_t *) GetMemory(Q1_MAX_MAP_EDGES * sizeof(q1_dedge_t));
00136     q1_allocatedbspmem += Q1_MAX_MAP_EDGES, sizeof(q1_dedge_t);
00137     //mark surfaces
00138     q1_nummarksurfaces = 0;
00139     q1_dmarksurfaces = (unsigned short *) GetMemory(Q1_MAX_MAP_MARKSURFACES * sizeof(unsigned short));
00140     q1_allocatedbspmem += Q1_MAX_MAP_MARKSURFACES * sizeof(unsigned short);
00141     //surface edges
00142     q1_numsurfedges = 0;
00143     q1_dsurfedges = (int *) GetMemory(Q1_MAX_MAP_SURFEDGES * sizeof(int));
00144     q1_allocatedbspmem += Q1_MAX_MAP_SURFEDGES * sizeof(int);
00145     //print allocated memory
00146     Log_Print("allocated ");
00147     PrintMemorySize(q1_allocatedbspmem);
00148     Log_Print(" of BSP memory\n");
00149 } //end of the function Q1_AllocMaxBSP

Here is the call graph for this function:

void Q1_FreeMaxBSP void   ) 
 

Definition at line 151 of file l_bsp_q1.c.

References FreeMemory(), Log_Print(), PrintMemorySize(), q1_allocatedbspmem, q1_dclipnodes, q1_dedges, q1_dentdata, q1_dfaces, q1_dleafs, q1_dlightdata, q1_dmarksurfaces, q1_dmodels, q1_dnodes, q1_dplanes, q1_dsurfedges, q1_dtexdata, q1_dvertexes, q1_dvisdata, q1_entdatasize, q1_lightdatasize, q1_numclipnodes, q1_numedges, q1_numfaces, q1_numleafs, q1_nummarksurfaces, q1_nummodels, q1_numnodes, q1_numplanes, q1_numsurfedges, q1_numtexinfo, q1_numvertexes, q1_texdatasize, q1_texinfo, and q1_visdatasize.

Referenced by LoadMapFromBSP().

00152 {
00153     //models
00154     q1_nummodels = 0;
00155     FreeMemory(q1_dmodels);
00156     q1_dmodels = NULL;
00157     //visibility
00158     q1_visdatasize = 0;
00159     FreeMemory(q1_dvisdata);
00160     q1_dvisdata = NULL;
00161     //light data
00162     q1_lightdatasize = 0;
00163     FreeMemory(q1_dlightdata);
00164     q1_dlightdata = NULL;
00165     //texture data
00166     q1_texdatasize = 0;
00167     FreeMemory(q1_dtexdata);
00168     q1_dtexdata = NULL;
00169     //entities
00170     q1_entdatasize = 0;
00171     FreeMemory(q1_dentdata);
00172     q1_dentdata = NULL;
00173     //leaves
00174     q1_numleafs = 0;
00175     FreeMemory(q1_dleafs);
00176     q1_dleafs = NULL;
00177     //planes
00178     q1_numplanes = 0;
00179     FreeMemory(q1_dplanes);
00180     q1_dplanes = NULL;
00181     //vertexes
00182     q1_numvertexes = 0;
00183     FreeMemory(q1_dvertexes);
00184     q1_dvertexes = NULL;
00185     //nodes
00186     q1_numnodes = 0;
00187     FreeMemory(q1_dnodes);
00188     q1_dnodes = NULL;
00189     //texture info
00190     q1_numtexinfo = 0;
00191     FreeMemory(q1_texinfo);
00192     q1_texinfo = NULL;
00193     //faces
00194     q1_numfaces = 0;
00195     FreeMemory(q1_dfaces);
00196     q1_dfaces = NULL;
00197     //clip nodes
00198     q1_numclipnodes = 0;
00199     FreeMemory(q1_dclipnodes);
00200     q1_dclipnodes = NULL;
00201     //edges
00202     q1_numedges = 0;
00203     FreeMemory(q1_dedges);
00204     q1_dedges = NULL;
00205     //mark surfaces
00206     q1_nummarksurfaces = 0;
00207     FreeMemory(q1_dmarksurfaces);
00208     q1_dmarksurfaces = NULL;
00209     //surface edges
00210     q1_numsurfedges = 0;
00211     FreeMemory(q1_dsurfedges);
00212     q1_dsurfedges = NULL;
00213     //
00214     Log_Print("freed ");
00215     PrintMemorySize(q1_allocatedbspmem);
00216     Log_Print(" of BSP memory\n");
00217     q1_allocatedbspmem = 0;
00218 } //end of the function Q1_FreeMaxBSP

Here is the call graph for this function:

void Q1_LoadBSPFile char *  filename,
int  offset,
int  length
 

Definition at line 417 of file l_bsp_q1.c.

References Error(), FreeMemory(), i, length(), LittleLong(), LoadFile(), offset, Q1_BSPVERSION, Q1_CopyLump(), q1_dclipnodes, q1_dedges, q1_dentdata, q1_dfaces, q1_dleafs, q1_dlightdata, q1_dmarksurfaces, q1_dmodels, q1_dnodes, q1_dplanes, q1_dsurfedges, q1_dtexdata, q1_dvertexes, q1_dvisdata, q1_entdatasize, q1_fileLength, q1_header, q1_lightdatasize, Q1_LUMP_CLIPNODES, Q1_LUMP_EDGES, Q1_LUMP_ENTITIES, Q1_LUMP_FACES, Q1_LUMP_LEAFS, Q1_LUMP_LIGHTING, Q1_LUMP_MARKSURFACES, Q1_LUMP_MODELS, Q1_LUMP_NODES, Q1_LUMP_PLANES, Q1_LUMP_SURFEDGES, Q1_LUMP_TEXINFO, Q1_LUMP_TEXTURES, Q1_LUMP_VERTEXES, Q1_LUMP_VISIBILITY, Q1_MAX_MAP_CLIPNODES, Q1_MAX_MAP_EDGES, Q1_MAX_MAP_ENTSTRING, Q1_MAX_MAP_FACES, Q1_MAX_MAP_LEAFS, Q1_MAX_MAP_LIGHTING, Q1_MAX_MAP_MARKSURFACES, Q1_MAX_MAP_MIPTEX, Q1_MAX_MAP_MODELS, Q1_MAX_MAP_NODES, Q1_MAX_MAP_PLANES, Q1_MAX_MAP_SURFEDGES, Q1_MAX_MAP_TEXINFO, Q1_MAX_MAP_VERTS, Q1_MAX_MAP_VISIBILITY, q1_numclipnodes, q1_numedges, q1_numfaces, q1_numleafs, q1_nummarksurfaces, q1_nummodels, q1_numnodes, q1_numplanes, q1_numsurfedges, q1_numtexinfo, q1_numvertexes, Q1_SwapBSPFile(), q1_texdatasize, q1_texinfo, q1_texinfo_t, q1_visdatasize, and q1_dheader_t::version.

Referenced by Q1_LoadMapFromBSP().

00418 {
00419     int         i;
00420     
00421 //
00422 // load the file header
00423 //
00424     q1_fileLength = LoadFile(filename, (void **)&q1_header, offset, length);
00425 
00426 // swap the header
00427     for (i=0 ; i< sizeof(q1_dheader_t)/4 ; i++)
00428         ((int *)q1_header)[i] = LittleLong ( ((int *)q1_header)[i]);
00429 
00430     if (q1_header->version != Q1_BSPVERSION)
00431         Error ("%s is version %i, not %i", filename, i, Q1_BSPVERSION);
00432 
00433     q1_nummodels = Q1_CopyLump (Q1_LUMP_MODELS, q1_dmodels, sizeof(q1_dmodel_t), Q1_MAX_MAP_MODELS );
00434     q1_numvertexes = Q1_CopyLump (Q1_LUMP_VERTEXES, q1_dvertexes, sizeof(q1_dvertex_t), Q1_MAX_MAP_VERTS );
00435     q1_numplanes = Q1_CopyLump (Q1_LUMP_PLANES, q1_dplanes, sizeof(q1_dplane_t), Q1_MAX_MAP_PLANES );
00436     q1_numleafs = Q1_CopyLump (Q1_LUMP_LEAFS, q1_dleafs, sizeof(q1_dleaf_t), Q1_MAX_MAP_LEAFS );
00437     q1_numnodes = Q1_CopyLump (Q1_LUMP_NODES, q1_dnodes, sizeof(q1_dnode_t), Q1_MAX_MAP_NODES );
00438     q1_numtexinfo = Q1_CopyLump (Q1_LUMP_TEXINFO, q1_texinfo, sizeof(q1_texinfo_t), Q1_MAX_MAP_TEXINFO );
00439     q1_numclipnodes = Q1_CopyLump (Q1_LUMP_CLIPNODES, q1_dclipnodes, sizeof(q1_dclipnode_t), Q1_MAX_MAP_CLIPNODES );
00440     q1_numfaces = Q1_CopyLump (Q1_LUMP_FACES, q1_dfaces, sizeof(q1_dface_t), Q1_MAX_MAP_FACES );
00441     q1_nummarksurfaces = Q1_CopyLump (Q1_LUMP_MARKSURFACES, q1_dmarksurfaces, sizeof(q1_dmarksurfaces[0]), Q1_MAX_MAP_MARKSURFACES );
00442     q1_numsurfedges = Q1_CopyLump (Q1_LUMP_SURFEDGES, q1_dsurfedges, sizeof(q1_dsurfedges[0]), Q1_MAX_MAP_SURFEDGES );
00443     q1_numedges = Q1_CopyLump (Q1_LUMP_EDGES, q1_dedges, sizeof(q1_dedge_t), Q1_MAX_MAP_EDGES );
00444 
00445     q1_texdatasize = Q1_CopyLump (Q1_LUMP_TEXTURES, q1_dtexdata, 1, Q1_MAX_MAP_MIPTEX );
00446     q1_visdatasize = Q1_CopyLump (Q1_LUMP_VISIBILITY, q1_dvisdata, 1, Q1_MAX_MAP_VISIBILITY );
00447     q1_lightdatasize = Q1_CopyLump (Q1_LUMP_LIGHTING, q1_dlightdata, 1, Q1_MAX_MAP_LIGHTING );
00448     q1_entdatasize = Q1_CopyLump (Q1_LUMP_ENTITIES, q1_dentdata, 1, Q1_MAX_MAP_ENTSTRING );
00449 
00450     FreeMemory(q1_header);      // everything has been copied out
00451         
00452 //
00453 // swap everything
00454 //  
00455     Q1_SwapBSPFile (false);
00456 }

Here is the call graph for this function:

void Q1_ParseEntities void   ) 
 

Definition at line 563 of file l_bsp_q1.c.

References FreeScript(), LoadScriptMemory(), num_entities, ParseEntity(), q1_dentdata, q1_entdatasize, SCFL_NOSTRINGESCAPECHARS, SCFL_NOSTRINGWHITESPACES, script, and SetScriptFlags().

Referenced by Q1_LoadMapFromBSP().

00564 {
00565     script_t *script;
00566 
00567     num_entities = 0;
00568     script = LoadScriptMemory(q1_dentdata, q1_entdatasize, "*Quake1 bsp file");
00569     SetScriptFlags(script, SCFL_NOSTRINGWHITESPACES |
00570                                     SCFL_NOSTRINGESCAPECHARS);
00571 
00572     while(ParseEntity(script))
00573     {
00574     } //end while
00575 
00576     FreeScript(script);
00577 } //end of the function Q1_ParseEntities

Here is the call graph for this function:

void Q1_PrintBSPFileSizes void   ) 
 

Definition at line 524 of file l_bsp_q1.c.

References nummiptex, printf(), q1_dmarksurfaces, q1_dtexdata, q1_entdatasize, q1_lightdatasize, q1_numclipnodes, q1_numedges, q1_numfaces, q1_numleafs, q1_nummarksurfaces, q1_numnodes, q1_numplanes, q1_numsurfedges, q1_numtexinfo, q1_numvertexes, q1_texdatasize, q1_texinfo_t, and q1_visdatasize.

00525 {
00526     printf ("%5i planes       %6i\n"
00527         ,q1_numplanes, (int)(q1_numplanes*sizeof(q1_dplane_t)));
00528     printf ("%5i vertexes     %6i\n"
00529         ,q1_numvertexes, (int)(q1_numvertexes*sizeof(q1_dvertex_t)));
00530     printf ("%5i nodes        %6i\n"
00531         ,q1_numnodes, (int)(q1_numnodes*sizeof(q1_dnode_t)));
00532     printf ("%5i texinfo      %6i\n"
00533         ,q1_numtexinfo, (int)(q1_numtexinfo*sizeof(q1_texinfo_t)));
00534     printf ("%5i faces        %6i\n"
00535         ,q1_numfaces, (int)(q1_numfaces*sizeof(q1_dface_t)));
00536     printf ("%5i clipnodes    %6i\n"
00537         ,q1_numclipnodes, (int)(q1_numclipnodes*sizeof(q1_dclipnode_t)));
00538     printf ("%5i leafs        %6i\n"
00539         ,q1_numleafs, (int)(q1_numleafs*sizeof(q1_dleaf_t)));
00540     printf ("%5i marksurfaces %6i\n"
00541         ,q1_nummarksurfaces, (int)(q1_nummarksurfaces*sizeof(q1_dmarksurfaces[0])));
00542     printf ("%5i surfedges    %6i\n"
00543         ,q1_numsurfedges, (int)(q1_numsurfedges*sizeof(q1_dmarksurfaces[0])));
00544     printf ("%5i edges        %6i\n"
00545         ,q1_numedges, (int)(q1_numedges*sizeof(q1_dedge_t)));
00546     if (!q1_texdatasize)
00547         printf ("    0 textures          0\n");
00548     else
00549         printf ("%5i textures     %6i\n",((q1_dmiptexlump_t*)q1_dtexdata)->nummiptex, q1_texdatasize);
00550     printf ("      lightdata    %6i\n", q1_lightdatasize);
00551     printf ("      visdata      %6i\n", q1_visdatasize);
00552     printf ("      entdata      %6i\n", q1_entdatasize);
00553 } //end of the function Q1_PrintBSPFileSizes

Here is the call graph for this function:

void Q1_UnparseEntities void   ) 
 

Definition at line 587 of file l_bsp_q1.c.

References entities, epair_t, entity_t::epairs, Error(), i, epair_s::key, line, epair_s::next, q1_entdatasize, sprintf(), strcat(), strlen(), and epair_s::value.

00588 {
00589     char *buf, *end;
00590     epair_t *ep;
00591     char line[2048];
00592     int i;
00593     
00594     buf = q1_dentdata;
00595     end = buf;
00596     *end = 0;
00597     
00598     for (i=0 ; i<num_entities ; i++)
00599     {
00600         ep = entities[i].epairs;
00601         if (!ep)
00602             continue;