]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - collision.c
chthon lightning no longer uses beam polygons
[xonotic/darkplaces.git] / collision.c
index a22c8fb9a988487542ee9053e29b1907499e463f..7ed1291eaf18c06a3ecce7840bd6c11529c0716c 100644 (file)
@@ -165,7 +165,6 @@ loc0:
        return HULLCHECKSTATE_DONE;
 }
 
-/*
 // used if start and end are the same
 static void RecursiveHullCheckPoint (RecursiveHullCheckTraceInfo_t *t, int num)
 {
@@ -204,7 +203,6 @@ static void RecursiveHullCheckPoint (RecursiveHullCheckTraceInfo_t *t, int num)
                }
        }
 }
-*/
 
 void Collision_RoundUpToHullSize(const model_t *cmodel, const vec3_t inmins, const vec3_t inmaxs, vec3_t outmins, vec3_t outmaxs)
 {
@@ -378,10 +376,11 @@ void Collision_ClipTrace (trace_t *trace, const void *cent, const model_t *cmode
                VectorCopy(endd, rhc.end);
                VectorCopy(rhc.end, rhc.trace->endpos);
                VectorSubtract(rhc.end, rhc.start, rhc.dist);
-               //if (DotProduct(rhc.dist, rhc.dist) > 0.00001)
+               if (rhc.dist[0] || rhc.dist[1] || rhc.dist[2])
                        RecursiveHullCheck (&rhc, rhc.hull->firstclipnode, 0, 1, rhc.start, rhc.end);
-               //else
-               //      RecursiveHullCheckPoint (&rhc, rhc.hull->firstclipnode);
+               else
+                       RecursiveHullCheckPoint (&rhc, rhc.hull->firstclipnode);
+               if (rhc.trace->fraction < 0 || rhc.trace->fraction > 1) Con_Printf("fraction out of bounds %f %s:%d\n", rhc.trace->fraction, __LINE__, __FILE__);
 
                // if we hit, unrotate endpos and normal, and store the entity we hit
                if (rhc.trace->fraction != 1)
@@ -420,10 +419,11 @@ void Collision_ClipTrace (trace_t *trace, const void *cent, const model_t *cmode
                VectorSubtract(end, offset, rhc.end);
                VectorCopy(rhc.end, rhc.trace->endpos);
                VectorSubtract(rhc.end, rhc.start, rhc.dist);
-               //if (DotProduct(rhc.dist, rhc.dist) > 0.00001)
+               if (rhc.dist[0] || rhc.dist[1] || rhc.dist[2])
                        RecursiveHullCheck (&rhc, rhc.hull->firstclipnode, 0, 1, rhc.start, rhc.end);
-               //else
-               //      RecursiveHullCheckPoint (&rhc, rhc.hull->firstclipnode);
+               else
+                       RecursiveHullCheckPoint (&rhc, rhc.hull->firstclipnode);
+               if (rhc.trace->fraction < 0 || rhc.trace->fraction > 1) Con_Printf("fraction out of bounds %f %s:%d\n", rhc.trace->fraction, __LINE__, __FILE__);
 
                // if we hit, store the entity we hit
                if (rhc.trace->fraction != 1)