// cut the portal into two portals, one on each side of the cut plane
//
ClipWindingEpsilon (p->winding, plane->normal, plane->dist,
- SPLIT_WINDING_EPSILON, &frontwinding, &backwinding);
+ SPLIT_WINDING_EPSILON, &frontwinding, &backwinding); /* not strict, we want to always keep one of them even if coplanar */
if (frontwinding && WindingIsTiny(frontwinding))
{
=============
*/
-qboolean FloodEntities( tree_t *tree )
+int FloodEntities( tree_t *tree )
{
int i, s;
vec3_t origin, offset, scale, angles;
Sys_FPrintf( SYS_VRB, "%9d flooded leafs\n", c_floodedleafs );
if( !inside )
+ {
Sys_FPrintf( SYS_VRB, "no entities in open -- no filling\n" );
- else if( tree->outside_node.occupied )
- Sys_FPrintf( SYS_VRB, "entity reached from outside -- no filling\n" );
+ return FLOODENTITIES_EMPTY;
+ }
+ if( tree->outside_node.occupied )
+ {
+ Sys_FPrintf( SYS_VRB, "entity reached from outside -- leak detected\n" );
+ return FLOODENTITIES_LEAKED;
+ }
- return (qboolean) (inside && !tree->outside_node.occupied);
+ return FLOODENTITIES_GOOD;
}
/*