X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=cgamevm.c;fp=cgamevm.c;h=3af510f0c9e854c357d68c6d172fc69f32b008a0;hb=d3cbe906d0eedcff735096a08340d8ca90457fa9;hp=e2b33f4df8c743456d165b7b886ed72c68fd2bf5;hpb=30cf91679a3f0d8de407a01ea6c669c9ae134e70;p=xonotic%2Fdarkplaces.git diff --git a/cgamevm.c b/cgamevm.c index e2b33f4d..3af510f0 100644 --- a/cgamevm.c +++ b/cgamevm.c @@ -194,19 +194,13 @@ float CGVM_RandomRange(const float r1, const float r2) float CGVM_TracePhysics(const float *start, const float *end, const float *worldmins, const float *worldmaxs, const float *entitymins, const float *entitymaxs, const cgphysentity_t *physentities, const int numphysentities, float *impactpos, float *impactnormal, int *impactentnum) { - float frac; - vec3_t start2, end2, middle; + trace_t trace; // FIXME: do tracing agains network entities and physentities here - // placeholder world only code assuming 0 size - middle[0] = (worldmins[0] + worldmaxs[0]) * 0.5f; - middle[1] = (worldmins[1] + worldmaxs[1]) * 0.5f; - middle[2] = (worldmins[2] + worldmaxs[2]) * 0.5f; - VectorAdd(start, middle, start2); - VectorAdd(end, middle, end2); - frac = CL_TraceLine((float *)start2, (float *)end2, impactpos, impactnormal, true, NULL, SUPERCONTENTS_SOLID); - VectorSubtract(impactpos, middle, impactpos); + trace = CL_TraceBox(start, vec3_origin, vec3_origin, end, true, NULL, SUPERCONTENTS_SOLID, false); + VectorCopy(trace.endpos, impactpos); + VectorCopy(trace.plane.normal, impactnormal); *impactentnum = -1; - return frac; + return trace.fraction; } char *CGVM_GetCvarString(const char *name)