X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=cgamevm.c;h=666afd845be727db5cb445a80064d5252f89aa4b;hb=31a485f531cd44cef63a4cdde6a939d7a75c6f97;hp=e2b33f4df8c743456d165b7b886ed72c68fd2bf5;hpb=ac947d2fbb445473c266390a1fca26c8be8611c4;p=xonotic%2Fdarkplaces.git diff --git a/cgamevm.c b/cgamevm.c index e2b33f4d..666afd84 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) @@ -259,7 +253,7 @@ int CGVM_Model(const char *name) } if (i >= MAX_CGVM_MODELS) return 0; - model = Mod_ForName((char *)name, false, false, false); + model = Mod_ForName(name, false, false, false); if (!model) return 0; strcpy(cgvm_modelname[i], name);