l_bsp_sin.h (3443B)
1 /* 2 =========================================================================== 3 Copyright (C) 1999-2005 Id Software, Inc. 4 5 This file is part of Quake III Arena source code. 6 7 Quake III Arena source code is free software; you can redistribute it 8 and/or modify it under the terms of the GNU General Public License as 9 published by the Free Software Foundation; either version 2 of the License, 10 or (at your option) any later version. 11 12 Quake III Arena source code is distributed in the hope that it will be 13 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with Foobar; if not, write to the Free Software 19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 =========================================================================== 21 */ 22 23 #include "sinfiles.h" 24 25 #define SINGAME_BSPHEADER (('P'<<24)+('S'<<16)+('B'<<8)+'R') //RBSP 26 #define SINGAME_BSPVERSION 1 27 28 #define SIN_BSPHEADER (('P'<<24)+('S'<<16)+('B'<<8)+'I') //IBSP 29 #define SIN_BSPVERSION 41 30 31 32 extern int sin_nummodels; 33 extern sin_dmodel_t *sin_dmodels;//[MAX_MAP_MODELS]; 34 35 extern int sin_visdatasize; 36 extern byte *sin_dvisdata;//[MAX_MAP_VISIBILITY]; 37 extern sin_dvis_t *sin_dvis;// = (dvis_t *)sin_sin_dvisdata; 38 39 extern int sin_lightdatasize; 40 extern byte *sin_dlightdata;//[MAX_MAP_LIGHTING]; 41 42 extern int sin_entdatasize; 43 extern char *sin_dentdata;//[MAX_MAP_ENTSTRING]; 44 45 extern int sin_numleafs; 46 extern sin_dleaf_t *sin_dleafs;//[MAX_MAP_LEAFS]; 47 48 extern int sin_numplanes; 49 extern sin_dplane_t *sin_dplanes;//[MAX_MAP_PLANES]; 50 51 extern int sin_numvertexes; 52 extern sin_dvertex_t *sin_dvertexes;//[MAX_MAP_VERTS]; 53 54 extern int sin_numnodes; 55 extern sin_dnode_t *sin_dnodes;//[MAX_MAP_NODES]; 56 57 extern int sin_numtexinfo; 58 extern sin_texinfo_t *sin_texinfo;//[MAX_MAP_sin_texinfo]; 59 60 extern int sin_numfaces; 61 extern sin_dface_t *sin_dfaces;//[MAX_MAP_FACES]; 62 63 extern int sin_numedges; 64 extern sin_dedge_t *sin_dedges;//[MAX_MAP_EDGES]; 65 66 extern int sin_numleaffaces; 67 extern unsigned short *sin_dleaffaces;//[MAX_MAP_LEAFFACES]; 68 69 extern int sin_numleafbrushes; 70 extern unsigned short *sin_dleafbrushes;//[MAX_MAP_LEAFBRUSHES]; 71 72 extern int sin_numsurfedges; 73 extern int *sin_dsurfedges;//[MAX_MAP_SURFEDGES]; 74 75 extern int sin_numbrushes; 76 extern sin_dbrush_t *sin_dbrushes;//[MAX_MAP_BRUSHES]; 77 78 extern int sin_numbrushsides; 79 extern sin_dbrushside_t *sin_dbrushsides;//[MAX_MAP_BRUSHSIDES]; 80 81 extern int sin_numareas; 82 extern sin_darea_t *sin_dareas;//[MAX_MAP_AREAS]; 83 84 extern int sin_numareaportals; 85 extern sin_dareaportal_t *sin_dareaportals;//[MAX_MAP_AREAPORTALS]; 86 87 extern int sin_numlightinfo; 88 extern sin_lightvalue_t *sin_lightinfo;//[MAX_MAP_LIGHTINFO]; 89 90 extern byte sin_dpop[256]; 91 92 extern char sin_dbrushsidetextured[SIN_MAX_MAP_BRUSHSIDES]; 93 94 void Sin_AllocMaxBSP(void); 95 void Sin_FreeMaxBSP(void); 96 97 void Sin_DecompressVis(byte *in, byte *decompressed); 98 int Sin_CompressVis(byte *vis, byte *dest); 99 100 void Sin_LoadBSPFile (char *filename, int offset, int length); 101 void Sin_LoadBSPFileTexinfo (char *filename); // just for qdata 102 void Sin_WriteBSPFile (char *filename); 103 void Sin_PrintBSPFileSizes (void); 104 void Sin_ParseEntities(void); 105 void Sin_UnparseEntities(void); 106