also select the best entity when a leak was found
authorRudolf Polzer <divverent@xonotic.org>
Tue, 14 Feb 2012 12:24:05 +0000 (13:24 +0100)
committerRudolf Polzer <divverent@xonotic.org>
Tue, 14 Feb 2012 12:24:05 +0000 (13:24 +0100)
tools/quake3/q3map2/portals.c

index bb70e1ac348c9d682178c48ed302298c63276a7f..e3fc635baa8642b66977b8b98b7f1aa9d7745258 100644 (file)
@@ -665,10 +665,11 @@ int FloodEntities( tree_t *tree )
 {
        int                     i, s;
        vec3_t          origin, offset, scale, angles;
-       qboolean        r, inside, tripped, skybox;
+       qboolean        r, inside, skybox;
        node_t          *headnode;
-       entity_t        *e;
+       entity_t        *e, *tripped;
        const char      *value;
+       int             tripcount;
        
        
        headnode = tree->headnode;
@@ -746,12 +747,18 @@ int FloodEntities( tree_t *tree )
                {
                        Sys_Printf( "Entity %i, Brush %i: Entity in solid\n", e->mapEntityNum, 0);
                }
-               else if( tree->outside_node.occupied && !tripped )
+               else if( tree->outside_node.occupied )
                {
-                       xml_Select( "Entity leaked", e->mapEntityNum, 0, qfalse );
-                       tripped = qtrue;
+                       if(!tripped || tree->outside_node.occupied < tripcount)
+                       {
+                               tripped = e;
+                               tripcount = tree->outside_node.occupied;
+                       }
                }
        }
+
+       if(tripped)
+               xml_Select( "Entity leaked", e->mapEntityNum, 0, qfalse );
        
        Sys_FPrintf( SYS_VRB, "%9d flooded leafs\n", c_floodedleafs );