diff --git a/tools/quake3/common/scriplib.cpp b/tools/quake3/common/scriplib.cpp index 0aa465a6..ed4bf85a 100644 --- a/tools/quake3/common/scriplib.cpp +++ b/tools/quake3/common/scriplib.cpp @@ -39,7 +39,8 @@ struct script_t { char filename[1024]; - char *buffer,*script_p,*end_p; + char *buffer; + const char *script_p, *end_p; int line; }; diff --git a/tools/quake3/q3map2/autopk3.cpp b/tools/quake3/q3map2/autopk3.cpp index da684efa..72f2dd1a 100644 --- a/tools/quake3/q3map2/autopk3.cpp +++ b/tools/quake3/q3map2/autopk3.cpp @@ -95,7 +95,7 @@ static void parseBspFile( const char *bspPath, StrList& outShaders, StrList& out /* load the bsp */ Sys_Printf( "Loading %s\n", bspPath ); - LoadBSPFile( bspPath ); + LoadBSPFilePartially( bspPath ); ParseEntities(); { /* add visible bspShaders */ @@ -171,18 +171,6 @@ static void parseBspFile( const char *bspPath, StrList& outShaders, StrList& out res2list( outShaders, s ); for( const auto& s : pk3Sounds ) res2list( outSounds, s ); - - /* free partially loaded bsp data */ - bspDrawSurfaces.clear(); - - entities.clear(); - numBSPEntities = 0; - - bspShaders.clear(); - - bspEntData.clear(); - - bspFogs.clear(); } diff --git a/tools/quake3/q3map2/bspfile_abstract.cpp b/tools/quake3/q3map2/bspfile_abstract.cpp index 897f1ab4..f3fbe50c 100644 --- a/tools/quake3/q3map2/bspfile_abstract.cpp +++ b/tools/quake3/q3map2/bspfile_abstract.cpp @@ -204,12 +204,11 @@ void LoadBSPFile( const char *filename ){ } /* - PartialLoadBSPFile() - partially loads a bsp file into memory - for autopacker + LoadBSPFilePartially() + loads bsp file parts meaningful for autopacker */ -void PartialLoadBSPFile( const char *filename ){ +void LoadBSPFilePartially( const char *filename ){ /* dummy check */ if ( g_game == NULL || g_game->load == NULL ) { Error( "LoadBSPFile: unsupported BSP file format" ); @@ -217,7 +216,7 @@ void PartialLoadBSPFile( const char *filename ){ /* load it, then byte swap the in-memory version */ //g_game->load( filename ); - PartialLoadIBSPFile( filename ); + LoadIBSPorRBSPFilePartially( filename ); SwapBSPFile(); } diff --git a/tools/quake3/q3map2/bspfile_ibsp.cpp b/tools/quake3/q3map2/bspfile_ibsp.cpp index fee09ab5..848c41ae 100644 --- a/tools/quake3/q3map2/bspfile_ibsp.cpp +++ b/tools/quake3/q3map2/bspfile_ibsp.cpp @@ -262,11 +262,11 @@ void LoadIBSPFile( const char *filename ){ } /* - PartialLoadIBSPFile() - loads a part of quake 3 bsp file, required by packer, into memory + LoadIBSPorRBSPFilePartially() + loads bsp file parts meaningful for autopacker */ -void PartialLoadIBSPFile( const char *filename ){ +void LoadIBSPorRBSPFilePartially( const char *filename ){ ibspHeader_t *header; @@ -286,7 +286,11 @@ void PartialLoadIBSPFile( const char *filename ){ /* load/convert lumps */ CopyLump( (bspHeader_t*) header, LUMP_SHADERS, bspShaders ); - CopyLump( (bspHeader_t*) header, LUMP_SURFACES, bspDrawSurfaces ); + if( g_game->load == LoadIBSPFile ) + CopyLump( (bspHeader_t*) header, LUMP_SURFACES, bspDrawSurfaces ); + else + CopyLump( (bspHeader_t*) header, LUMP_SURFACES, bspDrawSurfaces ); + CopyLump( (bspHeader_t*) header, LUMP_FOGS, bspFogs ); CopyLump( (bspHeader_t*) header, LUMP_ENTITIES, bspEntData ); diff --git a/tools/quake3/q3map2/bspfile_ibsp.h b/tools/quake3/q3map2/bspfile_ibsp.h index e5fd384c..0d289599 100644 --- a/tools/quake3/q3map2/bspfile_ibsp.h +++ b/tools/quake3/q3map2/bspfile_ibsp.h @@ -3,4 +3,4 @@ void LoadIBSPFile( const char *filename ); void WriteIBSPFile( const char *filename ); -void PartialLoadIBSPFile( const char *filename ); +void LoadIBSPorRBSPFilePartially( const char *filename ); diff --git a/tools/quake3/q3map2/q3map2.h b/tools/quake3/q3map2/q3map2.h index 0b0ac0b7..447f7061 100644 --- a/tools/quake3/q3map2/q3map2.h +++ b/tools/quake3/q3map2/q3map2.h @@ -1844,7 +1844,7 @@ shaderInfo_t *ShaderInfoForShaderNull( const char *shader ); void SwapBlock( int *block, int size ); void LoadBSPFile( const char *filename ); -void PartialLoadBSPFile( const char *filename ); +void LoadBSPFilePartially( const char *filename ); void WriteBSPFile( const char *filename ); void PrintBSPFileSizes( void );