mirror of
https://github.com/TTimo/GtkRadiant.git
synced 2025-01-10 12:01:10 +00:00
ignore nonsolid brushes
git-svn-id: svn://svn.icculus.org/netradiant/trunk@333 61c419a2-8eb2-4b30-bcec-8cead039b335
This commit is contained in:
parent
858727133f
commit
1b926fe925
1 changed files with 65 additions and 1 deletions
|
@ -342,6 +342,68 @@ void MiniMapMakeMinsMaxs()
|
||||||
Sys_Printf("size_texcoords %f %f %f %f %f %f\n", mins[0], mins[1], mins[2], maxs[0], maxs[1], maxs[2]);
|
Sys_Printf("size_texcoords %f %f %f %f %f %f\n", mins[0], mins[1], mins[2], maxs[0], maxs[1], maxs[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
MiniMapSetupBrushes()
|
||||||
|
determines solid non-sky brushes in the world
|
||||||
|
*/
|
||||||
|
|
||||||
|
void MiniMapSetupBrushes( void )
|
||||||
|
{
|
||||||
|
int i, j, b, compileFlags;
|
||||||
|
bspBrush_t *brush;
|
||||||
|
bspBrushSide_t *side;
|
||||||
|
bspShader_t *shader;
|
||||||
|
shaderInfo_t *si;
|
||||||
|
|
||||||
|
|
||||||
|
/* note it */
|
||||||
|
Sys_FPrintf( SYS_VRB, "--- MiniMapSetupBrushes ---\n" );
|
||||||
|
|
||||||
|
/* allocate */
|
||||||
|
if( opaqueBrushes == NULL )
|
||||||
|
opaqueBrushes = safe_malloc( numBSPBrushes / 8 + 1 );
|
||||||
|
|
||||||
|
/* clear */
|
||||||
|
memset( opaqueBrushes, 0, numBSPBrushes / 8 + 1 );
|
||||||
|
numOpaqueBrushes = 0;
|
||||||
|
|
||||||
|
/* walk the list of worldspawn brushes */
|
||||||
|
for( i = 0; i < minimap.model->numBSPBrushes; i++ )
|
||||||
|
{
|
||||||
|
/* get brush */
|
||||||
|
b = minimap.model->firstBSPBrush + i;
|
||||||
|
brush = &bspBrushes[ b ];
|
||||||
|
|
||||||
|
/* check all sides */
|
||||||
|
compileFlags = 0;
|
||||||
|
for( j = 0; j < brush->numSides; j++ )
|
||||||
|
{
|
||||||
|
/* do bsp shader calculations */
|
||||||
|
side = &bspBrushSides[ brush->firstSide + j ];
|
||||||
|
shader = &bspShaders[ side->shaderNum ];
|
||||||
|
|
||||||
|
/* get shader info */
|
||||||
|
si = ShaderInfoForShader( shader->shader );
|
||||||
|
if( si == NULL )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
/* or together compile flags */
|
||||||
|
compileFlags |= si->compileFlags;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* determine if this brush is solid */
|
||||||
|
if( (compileFlags & (C_SOLID | C_SKY)) == C_SOLID )
|
||||||
|
{
|
||||||
|
opaqueBrushes[ b >> 3 ] |= (1 << (b & 7));
|
||||||
|
numOpaqueBrushes++;
|
||||||
|
maxOpaqueBrush = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* emit some statistics */
|
||||||
|
Sys_FPrintf( SYS_VRB, "%9d solid brushes\n", numOpaqueBrushes );
|
||||||
|
}
|
||||||
|
|
||||||
int MiniMapBSPMain( int argc, char **argv )
|
int MiniMapBSPMain( int argc, char **argv )
|
||||||
{
|
{
|
||||||
char minimapFilename[1024];
|
char minimapFilename[1024];
|
||||||
|
@ -366,6 +428,8 @@ int MiniMapBSPMain( int argc, char **argv )
|
||||||
StripExtension( source );
|
StripExtension( source );
|
||||||
DefaultExtension( source, ".bsp" );
|
DefaultExtension( source, ".bsp" );
|
||||||
Sys_Printf( "Loading %s\n", source );
|
Sys_Printf( "Loading %s\n", source );
|
||||||
|
BeginMapShaderFile( source );
|
||||||
|
LoadShaderInfo();
|
||||||
LoadBSPFile( source );
|
LoadBSPFile( source );
|
||||||
|
|
||||||
minimap.model = &bspModels[0];
|
minimap.model = &bspModels[0];
|
||||||
|
@ -456,7 +520,7 @@ int MiniMapBSPMain( int argc, char **argv )
|
||||||
if(minimapSharpen >= 0)
|
if(minimapSharpen >= 0)
|
||||||
minimap.sharpendata1f = safe_malloc(minimap.width * minimap.height * sizeof(*minimap.data1f));
|
minimap.sharpendata1f = safe_malloc(minimap.width * minimap.height * sizeof(*minimap.data1f));
|
||||||
|
|
||||||
SetupBrushes();
|
MiniMapSetupBrushes();
|
||||||
|
|
||||||
if(minimap.samples <= 1)
|
if(minimap.samples <= 1)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue