PROPERLY ignore sky brushes for minimap
authorRudolf Polzer <divverent@xonotic.org>
Fri, 9 Dec 2011 15:36:07 +0000 (16:36 +0100)
committerRudolf Polzer <divverent@xonotic.org>
Fri, 9 Dec 2011 15:36:07 +0000 (16:36 +0100)
tools/quake3/q3map2/light_ydnar.c
tools/quake3/q3map2/main.c
tools/quake3/q3map2/q3map2.h

index b01084dff1c598fa7e80e6cfb9af115f3d01a627..b777ee3565b93d1ea4455b5f77e74af54ae604d0 100644 (file)
@@ -3144,7 +3144,7 @@ SetupBrushes()
 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;
        qboolean                inside;
@@ -3191,7 +3191,7 @@ void SetupBrushes( void )
                }
                
                /* determine if this brush is opaque to light */
-               if( !(compileFlags & C_TRANSLUCENT) )
+               if( (compileFlags & mask) == test )
                {
                        opaqueBrushes[ b >> 3 ] |= (1 << (b & 7));
                        numOpaqueBrushes++;
@@ -3202,6 +3202,10 @@ void SetupBrushes( void )
        /* emit some statistics */
        Sys_FPrintf( SYS_VRB, "%9d opaque brushes\n", numOpaqueBrushes );
 }
+void SetupBrushes( void )
+{
+       SetupBrushesFlags(C_TRANSLUCENT, 0);
+}
 
 
 
index 09c3fefc01a3be34e5724bb53abbfcd61b90211b..f9017d5f938f1444e536979a3b0e9a4f6897885e 100644 (file)
@@ -361,67 +361,7 @@ determines solid non-sky brushes in the world
 
 void MiniMapSetupBrushes( void )
 {
-       int                             i, b, compileFlags;
-       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 );
+       SetupBrushesFlags(C_SOLID | C_SKY, C_SOLID);
 }
 
 qboolean MiniMapEvaluateSampleOffsets(int *bestj, int *bestk, float *bestval)
@@ -766,6 +706,7 @@ int MiniMapBSPMain( int argc, char **argv )
                float s, o;
 
                // TODO threads!
+               q = minimap.data1f;
                for(y = 0; y < minimap.height; ++y)
                        for(x = 0; x < minimap.width; ++x)
                        {
@@ -787,7 +728,7 @@ int MiniMapBSPMain( int argc, char **argv )
                minimap.brightness = minimap.brightness - minimap.contrast * o;
                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 );
        }
 
index 8c240ea899b6ac97463f9b569f7410c73d1c98fa..b89497688d94c4632cafb29c9f057ec2afc27ef6 100644 (file)
@@ -1807,6 +1807,7 @@ void                                              FloodLightRawLightmap( int num );
 void                                           IlluminateRawLightmap( int num );
 void                                           IlluminateVertexes( int num );
 
+void                                           SetupBrushesFlags( int mask, int test );
 void                                           SetupBrushes( void );
 void                                           SetupClusters( void );
 qboolean                                       ClusterVisible( int a, int b );