]> de.git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
audited trace.endpos code
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Sun, 4 Oct 2009 00:32:47 +0000 (00:32 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Sun, 4 Oct 2009 00:32:47 +0000 (00:32 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9295 d7cf8633-e32d-0410-b094-e92efae38249

collision.c

index 6583d34d990487382ab0e13ebfed2990cb6e76f9..4411e8979f8f276911f5b6181e371ebab4d59230 100644 (file)
@@ -1537,7 +1537,6 @@ void Collision_ClipToGenericEntity(trace_t *trace, dp_model_t *model, int frame,
 
        memset(trace, 0, sizeof(*trace));
        trace->fraction = trace->realfraction = 1;
 
        memset(trace, 0, sizeof(*trace));
        trace->fraction = trace->realfraction = 1;
-       VectorCopy(end, trace->endpos);
 
        Matrix4x4_Transform(inversematrix, start, starttransformed);
        Matrix4x4_Transform(inversematrix, end, endtransformed);
 
        Matrix4x4_Transform(inversematrix, start, starttransformed);
        Matrix4x4_Transform(inversematrix, end, endtransformed);
@@ -1575,7 +1574,6 @@ void Collision_ClipLineToGenericEntity(trace_t *trace, dp_model_t *model, int fr
 
        memset(trace, 0, sizeof(*trace));
        trace->fraction = trace->realfraction = 1;
 
        memset(trace, 0, sizeof(*trace));
        trace->fraction = trace->realfraction = 1;
-       VectorCopy(end, trace->endpos);
 
        Matrix4x4_Transform(inversematrix, start, starttransformed);
        Matrix4x4_Transform(inversematrix, end, endtransformed);
 
        Matrix4x4_Transform(inversematrix, start, starttransformed);
        Matrix4x4_Transform(inversematrix, end, endtransformed);
@@ -1624,10 +1622,10 @@ void Collision_ClipPointToGenericEntity(trace_t *trace, dp_model_t *model, int f
        else
                Collision_ClipTrace_Point(trace, bodymins, bodymaxs, starttransformed, hitsupercontentsmask, bodysupercontents, 0, NULL);
 
        else
                Collision_ClipTrace_Point(trace, bodymins, bodymaxs, starttransformed, hitsupercontentsmask, bodysupercontents, 0, NULL);
 
+       VectorCopy(start, trace->endpos);
        // transform plane
        // NOTE: this relies on plane.dist being directly after plane.normal
        Matrix4x4_TransformPositivePlane(matrix, trace->plane.normal[0], trace->plane.normal[1], trace->plane.normal[2], trace->plane.dist, trace->plane.normal);
        // transform plane
        // NOTE: this relies on plane.dist being directly after plane.normal
        Matrix4x4_TransformPositivePlane(matrix, trace->plane.normal[0], trace->plane.normal[1], trace->plane.normal[2], trace->plane.dist, trace->plane.normal);
-       VectorCopy(start, trace->endpos);
 }
 
 void Collision_ClipPointToWorld(trace_t *trace, dp_model_t *model, const vec3_t start, int hitsupercontents)
 }
 
 void Collision_ClipPointToWorld(trace_t *trace, dp_model_t *model, const vec3_t start, int hitsupercontents)