mirror of
https://github.com/TTimo/GtkRadiant.git
synced 2024-11-10 07:11:54 +00:00
PROPERLY ignore sky brushes for minimap
This commit is contained in:
parent
4d47b8ed5b
commit
e089323ef2
3 changed files with 15 additions and 67 deletions
|
@ -2774,7 +2774,8 @@ void IlluminateVertexes( int num ){
|
||||||
determines opaque brushes in the world and find sky shaders for sunlight calculations
|
determines opaque brushes in the world and find sky shaders for sunlight calculations
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void SetupBrushes( void ){
|
void SetupBrushesFlags( int mask, int test )
|
||||||
|
{
|
||||||
int i, j, b, compileFlags;
|
int i, j, b, compileFlags;
|
||||||
qboolean inside;
|
qboolean inside;
|
||||||
bspBrush_t *brush;
|
bspBrush_t *brush;
|
||||||
|
@ -2822,8 +2823,9 @@ void SetupBrushes( void ){
|
||||||
}
|
}
|
||||||
|
|
||||||
/* determine if this brush is opaque to light */
|
/* determine if this brush is opaque to light */
|
||||||
if ( !( compileFlags & C_TRANSLUCENT ) ) {
|
if( (compileFlags & mask) == test )
|
||||||
opaqueBrushes[ b >> 3 ] |= ( 1 << ( b & 7 ) );
|
{
|
||||||
|
opaqueBrushes[ b >> 3 ] |= (1 << (b & 7));
|
||||||
numOpaqueBrushes++;
|
numOpaqueBrushes++;
|
||||||
maxOpaqueBrush = i;
|
maxOpaqueBrush = i;
|
||||||
}
|
}
|
||||||
|
@ -2832,6 +2834,10 @@ void SetupBrushes( void ){
|
||||||
/* emit some statistics */
|
/* emit some statistics */
|
||||||
Sys_FPrintf( SYS_VRB, "%9d opaque brushes\n", numOpaqueBrushes );
|
Sys_FPrintf( SYS_VRB, "%9d opaque brushes\n", numOpaqueBrushes );
|
||||||
}
|
}
|
||||||
|
void SetupBrushes( void )
|
||||||
|
{
|
||||||
|
SetupBrushesFlags(C_TRANSLUCENT, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -389,67 +389,7 @@ determines solid non-sky brushes in the world
|
||||||
|
|
||||||
void MiniMapSetupBrushes( void )
|
void MiniMapSetupBrushes( void )
|
||||||
{
|
{
|
||||||
int i, b, compileFlags;
|
SetupBrushesFlags(C_SOLID | C_SKY, C_SOLID);
|
||||||
bspBrush_t *brush;
|
|
||||||
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 ];
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* 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;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
shader = &bspShaders[ brush->shaderNum ];
|
|
||||||
si = ShaderInfoForShader( shader->shader );
|
|
||||||
if( si == NULL )
|
|
||||||
compileFlags = 0;
|
|
||||||
else
|
|
||||||
compileFlags = si->compileFlags;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* 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 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
qboolean MiniMapEvaluateSampleOffsets(int *bestj, int *bestk, float *bestval)
|
qboolean MiniMapEvaluateSampleOffsets(int *bestj, int *bestk, float *bestval)
|
||||||
|
@ -794,6 +734,7 @@ int MiniMapBSPMain( int argc, char **argv )
|
||||||
float s, o;
|
float s, o;
|
||||||
|
|
||||||
// TODO threads!
|
// TODO threads!
|
||||||
|
q = minimap.data1f;
|
||||||
for(y = 0; y < minimap.height; ++y)
|
for(y = 0; y < minimap.height; ++y)
|
||||||
for(x = 0; x < minimap.width; ++x)
|
for(x = 0; x < minimap.width; ++x)
|
||||||
{
|
{
|
||||||
|
@ -815,7 +756,7 @@ int MiniMapBSPMain( int argc, char **argv )
|
||||||
minimap.brightness = minimap.brightness - minimap.contrast * o;
|
minimap.brightness = minimap.brightness - minimap.contrast * o;
|
||||||
minimap.contrast *= s;
|
minimap.contrast *= s;
|
||||||
|
|
||||||
Sys_Printf( "Auto level: Brightness changed to %f\n", minimap.boost );
|
Sys_Printf( "Auto level: Brightness changed to %f\n", minimap.brightness );
|
||||||
Sys_Printf( "Auto level: Contrast changed to %f\n", minimap.contrast );
|
Sys_Printf( "Auto level: Contrast changed to %f\n", minimap.contrast );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1764,6 +1764,7 @@ void DirtyRawLightmap( int num );
|
||||||
void IlluminateRawLightmap( int num );
|
void IlluminateRawLightmap( int num );
|
||||||
void IlluminateVertexes( int num );
|
void IlluminateVertexes( int num );
|
||||||
|
|
||||||
|
void SetupBrushesFlags( int mask, int test );
|
||||||
void SetupBrushes( void );
|
void SetupBrushes( void );
|
||||||
void SetupClusters( void );
|
void SetupClusters( void );
|
||||||
qboolean ClusterVisible( int a, int b );
|
qboolean ClusterVisible( int a, int b );
|
||||||
|
|
Loading…
Reference in a new issue