00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "sinfiles.h"
00024
00025 #define SINGAME_BSPHEADER (('P'<<24)+('S'<<16)+('B'<<8)+'R') //RBSP
00026 #define SINGAME_BSPVERSION 1
00027
00028 #define SIN_BSPHEADER (('P'<<24)+('S'<<16)+('B'<<8)+'I') //IBSP
00029 #define SIN_BSPVERSION 41
00030
00031
00032 extern int sin_nummodels;
00033 extern sin_dmodel_t *sin_dmodels;
00034
00035 extern int sin_visdatasize;
00036 extern byte *sin_dvisdata;
00037 extern sin_dvis_t *sin_dvis;
00038
00039 extern int sin_lightdatasize;
00040 extern byte *sin_dlightdata;
00041
00042 extern int sin_entdatasize;
00043 extern char *sin_dentdata;
00044
00045 extern int sin_numleafs;
00046 extern sin_dleaf_t *sin_dleafs;
00047
00048 extern int sin_numplanes;
00049 extern sin_dplane_t *sin_dplanes;
00050
00051 extern int sin_numvertexes;
00052 extern sin_dvertex_t *sin_dvertexes;
00053
00054 extern int sin_numnodes;
00055 extern sin_dnode_t *sin_dnodes;
00056
00057 extern int sin_numtexinfo;
00058 extern sin_texinfo_t *sin_texinfo;
00059
00060 extern int sin_numfaces;
00061 extern sin_dface_t *sin_dfaces;
00062
00063 extern int sin_numedges;
00064 extern sin_dedge_t *sin_dedges;
00065
00066 extern int sin_numleaffaces;
00067 extern unsigned short *sin_dleaffaces;
00068
00069 extern int sin_numleafbrushes;
00070 extern unsigned short *sin_dleafbrushes;
00071
00072 extern int sin_numsurfedges;
00073 extern int *sin_dsurfedges;
00074
00075 extern int sin_numbrushes;
00076 extern sin_dbrush_t *sin_dbrushes;
00077
00078 extern int sin_numbrushsides;
00079 extern sin_dbrushside_t *sin_dbrushsides;
00080
00081 extern int sin_numareas;
00082 extern sin_darea_t *sin_dareas;
00083
00084 extern int sin_numareaportals;
00085 extern sin_dareaportal_t *sin_dareaportals;
00086
00087 extern int sin_numlightinfo;
00088 extern sin_lightvalue_t *sin_lightinfo;
00089
00090 extern byte sin_dpop[256];
00091
00092 extern char sin_dbrushsidetextured[SIN_MAX_MAP_BRUSHSIDES];
00093
00094 void Sin_AllocMaxBSP(void);
00095 void Sin_FreeMaxBSP(void);
00096
00097 void Sin_DecompressVis(byte *in, byte *decompressed);
00098 int Sin_CompressVis(byte *vis, byte *dest);
00099
00100 void Sin_LoadBSPFile (char *filename, int offset, int length);
00101 void Sin_LoadBSPFileTexinfo (char *filename);
00102 void Sin_WriteBSPFile (char *filename);
00103 void Sin_PrintBSPFileSizes (void);
00104 void Sin_ParseEntities(void);
00105 void Sin_UnparseEntities(void);
00106