X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=collision.c;h=7ed1291eaf18c06a3ecce7840bd6c11529c0716c;hb=5a2506c15b552f73998d5cb90326d6c7185e3ef7;hp=de405720a73ee0a1cf891862159b490ea9660274;hpb=ea7c24e1fb41f3b1df984ac0eed6881c9fde16f5;p=xonotic%2Fdarkplaces.git diff --git a/collision.c b/collision.c index de405720..7ed1291e 100644 --- a/collision.c +++ b/collision.c @@ -376,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); + 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) @@ -418,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); + 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)