changed BaseWindingForPlane to construct the polygon using
[xonotic/netradiant.git] / tools / quake3 / common / polylib.c
index 558242992c3bf0038ad40a74e8827bad91c051e8..21067ca2e49731f393f1aab87480a425c9d58cad 100644 (file)
@@ -249,8 +249,11 @@ winding_t *BaseWindingForPlane (vec3_t normal, vec_t dist)
        
        CrossProduct (vup, normal, vright);
        
-       VectorScale (vup, MAX_WORLD_COORD, vup);
-       VectorScale (vright, MAX_WORLD_COORD, vright);
+       // LordHavoc: this has to use *2 because otherwise some created points may
+       // be inside the world (think of a diagonal case), and any brush with such
+       // points should be removed, failure to detect such cases is disasterous
+       VectorScale (vup, MAX_WORLD_COORD*2, vup);
+       VectorScale (vright, MAX_WORLD_COORD*2, vright);
 
   // project a really big      axis aligned box onto the plane
        w = AllocWinding (4);