std::vector<bspFog_t> bspFogs
This commit is contained in:
parent
4642753564
commit
ce0dd55cc5
|
|
@ -296,8 +296,8 @@ int pk3BSPMain( Args& args ){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for( i = 0; i < numBSPFogs; ++i ){
|
for( const bspFog_t& fog : bspFogs ){
|
||||||
res2list( pk3Shaders, bspFogs[i].shader );
|
res2list( pk3Shaders, fog.shader );
|
||||||
}
|
}
|
||||||
|
|
||||||
//levelshot
|
//levelshot
|
||||||
|
|
@ -959,8 +959,8 @@ int repackBSPMain( Args& args ){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for( i = 0; i < numBSPFogs; ++i ){
|
for( const bspFog_t& fog : bspFogs ){
|
||||||
res2list( pk3Shaders, bspFogs[i].shader );
|
res2list( pk3Shaders, fog.shader );
|
||||||
}
|
}
|
||||||
|
|
||||||
//levelshot
|
//levelshot
|
||||||
|
|
@ -986,7 +986,7 @@ int repackBSPMain( Args& args ){
|
||||||
|
|
||||||
bspEntData.clear();
|
bspEntData.clear();
|
||||||
|
|
||||||
numBSPFogs = 0;
|
bspFogs.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
if( analyze )
|
if( analyze )
|
||||||
|
|
|
||||||
|
|
@ -164,10 +164,10 @@ void SwapBSPFile( void ){
|
||||||
SwapBlock( bspDrawSurfaces );
|
SwapBlock( bspDrawSurfaces );
|
||||||
|
|
||||||
/* fogs */
|
/* fogs */
|
||||||
for ( i = 0; i < numBSPFogs; i++ )
|
for ( bspFog_t& fog : bspFogs )
|
||||||
{
|
{
|
||||||
bspFogs[ i ].brushNum = LittleLong( bspFogs[ i ].brushNum );
|
fog.brushNum = LittleLong( fog.brushNum );
|
||||||
bspFogs[ i ].visibleSide = LittleLong( bspFogs[ i ].visibleSide );
|
fog.visibleSide = LittleLong( fog.visibleSide );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* advertisements */
|
/* advertisements */
|
||||||
|
|
@ -381,8 +381,8 @@ void PrintBSPFileSizes( void ){
|
||||||
bspBrushes.size(), bspBrushes.size() * sizeof( bspBrushes[0] ) );
|
bspBrushes.size(), bspBrushes.size() * sizeof( bspBrushes[0] ) );
|
||||||
Sys_Printf( "%9zu brushsides %9zu *\n",
|
Sys_Printf( "%9zu brushsides %9zu *\n",
|
||||||
bspBrushSides.size(), bspBrushSides.size() * sizeof( bspBrushSides[0] ) );
|
bspBrushSides.size(), bspBrushSides.size() * sizeof( bspBrushSides[0] ) );
|
||||||
Sys_Printf( "%9d fogs %9d\n",
|
Sys_Printf( "%9zu fogs %9zu\n",
|
||||||
numBSPFogs, (int) ( numBSPFogs * sizeof( bspFog_t ) ) );
|
bspFogs.size(), bspFogs.size() * sizeof( bspFogs[0] ) );
|
||||||
Sys_Printf( "%9zu planes %9zu\n",
|
Sys_Printf( "%9zu planes %9zu\n",
|
||||||
bspPlanes.size(), bspPlanes.size() * sizeof( bspPlanes[0] ) );
|
bspPlanes.size(), bspPlanes.size() * sizeof( bspPlanes[0] ) );
|
||||||
Sys_Printf( "%9zu entdata %9zu\n",
|
Sys_Printf( "%9zu entdata %9zu\n",
|
||||||
|
|
|
||||||
|
|
@ -253,7 +253,7 @@ void LoadIBSPFile( const char *filename ){
|
||||||
|
|
||||||
CopyLump<bspDrawSurface_t, ibspDrawSurface_t>( (bspHeader_t*) header, LUMP_SURFACES, bspDrawSurfaces );
|
CopyLump<bspDrawSurface_t, ibspDrawSurface_t>( (bspHeader_t*) header, LUMP_SURFACES, bspDrawSurfaces );
|
||||||
|
|
||||||
numBSPFogs = CopyLump( (bspHeader_t*) header, LUMP_FOGS, bspFogs, sizeof( bspFog_t ) ); // TODO fix overflow
|
CopyLump( (bspHeader_t*) header, LUMP_FOGS, bspFogs );
|
||||||
|
|
||||||
CopyLump( (bspHeader_t*) header, LUMP_DRAWINDEXES, bspDrawIndexes );
|
CopyLump( (bspHeader_t*) header, LUMP_DRAWINDEXES, bspDrawIndexes );
|
||||||
|
|
||||||
|
|
@ -305,7 +305,7 @@ void PartialLoadIBSPFile( const char *filename ){
|
||||||
|
|
||||||
CopyLump<bspDrawSurface_t, ibspDrawSurface_t>( (bspHeader_t*) header, LUMP_SURFACES, bspDrawSurfaces );
|
CopyLump<bspDrawSurface_t, ibspDrawSurface_t>( (bspHeader_t*) header, LUMP_SURFACES, bspDrawSurfaces );
|
||||||
|
|
||||||
numBSPFogs = CopyLump( (bspHeader_t*) header, LUMP_FOGS, bspFogs, sizeof( bspFog_t ) ); // TODO fix overflow
|
CopyLump( (bspHeader_t*) header, LUMP_FOGS, bspFogs );
|
||||||
|
|
||||||
CopyLump( (bspHeader_t*) header, LUMP_ENTITIES, bspEntData );
|
CopyLump( (bspHeader_t*) header, LUMP_ENTITIES, bspEntData );
|
||||||
|
|
||||||
|
|
@ -362,7 +362,7 @@ void WriteIBSPFile( const char *filename ){
|
||||||
AddLump( file, header->lumps[LUMP_LIGHTMAPS], bspLightBytes );
|
AddLump( file, header->lumps[LUMP_LIGHTMAPS], bspLightBytes );
|
||||||
AddLump( file, header->lumps[LUMP_LIGHTGRID], std::vector<ibspGridPoint_t>( bspGridPoints.begin(), bspGridPoints.end() ) );
|
AddLump( file, header->lumps[LUMP_LIGHTGRID], std::vector<ibspGridPoint_t>( bspGridPoints.begin(), bspGridPoints.end() ) );
|
||||||
AddLump( file, header->lumps[LUMP_ENTITIES], bspEntData );
|
AddLump( file, header->lumps[LUMP_ENTITIES], bspEntData );
|
||||||
AddLump( file, (bspHeader_t*) header, LUMP_FOGS, bspFogs, numBSPFogs * sizeof( bspFog_t ) );
|
AddLump( file, header->lumps[LUMP_FOGS], bspFogs );
|
||||||
AddLump( file, header->lumps[LUMP_DRAWINDEXES], bspDrawIndexes );
|
AddLump( file, header->lumps[LUMP_DRAWINDEXES], bspDrawIndexes );
|
||||||
|
|
||||||
/* advertisements */
|
/* advertisements */
|
||||||
|
|
|
||||||
|
|
@ -219,7 +219,7 @@ void LoadRBSPFile( const char *filename ){
|
||||||
|
|
||||||
CopyLump( (bspHeader_t*) header, LUMP_SURFACES, bspDrawSurfaces );
|
CopyLump( (bspHeader_t*) header, LUMP_SURFACES, bspDrawSurfaces );
|
||||||
|
|
||||||
numBSPFogs = CopyLump( (bspHeader_t*) header, LUMP_FOGS, bspFogs, sizeof( bspFogs[ 0 ] ) );
|
CopyLump( (bspHeader_t*) header, LUMP_FOGS, bspFogs );
|
||||||
|
|
||||||
CopyLump( (bspHeader_t*) header, LUMP_DRAWINDEXES, bspDrawIndexes );
|
CopyLump( (bspHeader_t*) header, LUMP_DRAWINDEXES, bspDrawIndexes );
|
||||||
|
|
||||||
|
|
@ -286,7 +286,7 @@ void WriteRBSPFile( const char *filename ){
|
||||||
AddLump( file, header->lumps[LUMP_LIGHTMAPS], bspLightBytes );
|
AddLump( file, header->lumps[LUMP_LIGHTMAPS], bspLightBytes );
|
||||||
AddLightGridLumps( file, header );
|
AddLightGridLumps( file, header );
|
||||||
AddLump( file, header->lumps[LUMP_ENTITIES], bspEntData );
|
AddLump( file, header->lumps[LUMP_ENTITIES], bspEntData );
|
||||||
AddLump( file, (bspHeader_t*) header, LUMP_FOGS, bspFogs, numBSPFogs * sizeof( bspFog_t ) );
|
AddLump( file, header->lumps[LUMP_FOGS], bspFogs );
|
||||||
AddLump( file, header->lumps[LUMP_DRAWINDEXES], bspDrawIndexes );
|
AddLump( file, header->lumps[LUMP_DRAWINDEXES], bspDrawIndexes );
|
||||||
|
|
||||||
/* emit bsp size */
|
/* emit bsp size */
|
||||||
|
|
|
||||||
|
|
@ -300,7 +300,7 @@ static void write_json( const char *directory ){
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
doc.RemoveAllMembers();
|
doc.RemoveAllMembers();
|
||||||
for_indexed( auto&& fog : Span( bspFogs, numBSPFogs ) ){
|
for_indexed( const auto& fog : bspFogs ){
|
||||||
rapidjson::Value value( rapidjson::kObjectType );
|
rapidjson::Value value( rapidjson::kObjectType );
|
||||||
value.AddMember( "shader", rapidjson::StringRef( fog.shader ), all );
|
value.AddMember( "shader", rapidjson::StringRef( fog.shader ), all );
|
||||||
value.AddMember( "brushNum", fog.brushNum, all );
|
value.AddMember( "brushNum", fog.brushNum, all );
|
||||||
|
|
@ -501,15 +501,12 @@ static void read_json( const char *directory ){
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
const auto doc = load_json( StringOutputStream( 256 )( directory, "fogs.json" ) );
|
const auto doc = load_json( StringOutputStream( 256 )( directory, "fogs.json" ) );
|
||||||
static std::vector<bspFog_t> items;
|
|
||||||
for( auto&& obj : doc.GetObj() ){
|
for( auto&& obj : doc.GetObj() ){
|
||||||
auto&& item = items.emplace_back();
|
auto&& item = bspFogs.emplace_back();
|
||||||
strcpy( item.shader, obj.value["shader"].GetString() );
|
strcpy( item.shader, obj.value["shader"].GetString() );
|
||||||
item.brushNum = obj.value["brushNum"].GetInt();
|
item.brushNum = obj.value["brushNum"].GetInt();
|
||||||
item.visibleSide = obj.value["visibleSide"].GetInt();
|
item.visibleSide = obj.value["visibleSide"].GetInt();
|
||||||
}
|
}
|
||||||
std::copy( items.begin(), items.end(), bspFogs );
|
|
||||||
numBSPFogs = items.size();
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
const auto doc = load_json( StringOutputStream( 256 )( directory, "DrawIndexes.json" ) );
|
const auto doc = load_json( StringOutputStream( 256 )( directory, "DrawIndexes.json" ) );
|
||||||
|
|
|
||||||
|
|
@ -2359,8 +2359,7 @@ Q_EXTERN std::vector<int> bspDrawIndexes;
|
||||||
|
|
||||||
Q_EXTERN std::vector<bspDrawSurface_t> bspDrawSurfaces; // MAX_MAP_DRAW_SURFS
|
Q_EXTERN std::vector<bspDrawSurface_t> bspDrawSurfaces; // MAX_MAP_DRAW_SURFS
|
||||||
|
|
||||||
Q_EXTERN int numBSPFogs Q_ASSIGN( 0 );
|
Q_EXTERN std::vector<bspFog_t> bspFogs; // MAX_MAP_FOGS
|
||||||
Q_EXTERN bspFog_t bspFogs[ MAX_MAP_FOGS ];
|
|
||||||
|
|
||||||
Q_EXTERN int numBSPAds Q_ASSIGN( 0 );
|
Q_EXTERN int numBSPAds Q_ASSIGN( 0 );
|
||||||
Q_EXTERN bspAdvertisement_t bspAds[ MAX_MAP_ADVERTISEMENTS ];
|
Q_EXTERN bspAdvertisement_t bspAds[ MAX_MAP_ADVERTISEMENTS ];
|
||||||
|
|
|
||||||
|
|
@ -411,17 +411,13 @@ void EmitBrushes( brushlist_t& brushes, int *firstBrush, int *numBrushes ){
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void EmitFogs( void ){
|
void EmitFogs( void ){
|
||||||
/* setup */
|
|
||||||
numBSPFogs = numMapFogs;
|
|
||||||
|
|
||||||
/* walk list */
|
/* walk list */
|
||||||
for ( int i = 0; i < numMapFogs; i++ )
|
for ( int i = 0; i < numMapFogs; i++ )
|
||||||
{
|
{
|
||||||
const fog_t& fog = mapFogs[i];
|
const fog_t& fog = mapFogs[i];
|
||||||
bspFog_t& bspFog = bspFogs[i];
|
bspFog_t& bspFog = bspFogs.emplace_back();
|
||||||
/* set shader */
|
/* set shader */
|
||||||
// copy and clear the rest of memory
|
strcpy( bspFog.shader, fog.si->shader );
|
||||||
strncpy( bspFog.shader, fog.si->shader, sizeof( bspFog.shader ) );
|
|
||||||
|
|
||||||
/* global fog doesn't have an associated brush */
|
/* global fog doesn't have an associated brush */
|
||||||
if ( fog.brush == NULL ) {
|
if ( fog.brush == NULL ) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user