From 4731e99b719f2dd24521ab6ced288117ee5a6bd7 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Sat, 14 Aug 2010 21:53:03 +0200 Subject: [PATCH] add a new antilag_takebackavgvelocity function to return the average velocity over some time interval --- qcsrc/server/antilag.qc | 14 ++++++++++++-- qcsrc/server/antilag.qh | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/qcsrc/server/antilag.qc b/qcsrc/server/antilag.qc index 8b1dc6de1..644a02344 100644 --- a/qcsrc/server/antilag.qc +++ b/qcsrc/server/antilag.qc @@ -49,7 +49,7 @@ float antilag_find(entity e, float t) return -1; } -vector lerp(float t0, vector v0, float t1, vector v1, float t) +vector lerpv(float t0, vector v0, float t1, vector v1, float t) { return v0 + (v1 - v0) * ((t - t0) / (t1 - t0)); } @@ -69,7 +69,17 @@ vector antilag_takebackorigin(entity e, float t) if(i1 >= ANTILAG_MAX_ORIGINS) i1 = 0; - return lerp(e.(antilag_times[i0]), e.(antilag_origins[i0]), e.(antilag_times[i1]), e.(antilag_origins[i1]), t); + return lerpv(e.(antilag_times[i0]), e.(antilag_origins[i0]), e.(antilag_times[i1]), e.(antilag_origins[i1]), t); +} + +vector antilag_takebackavgvelocity(entity e, float t0, float t1) +{ + vector o0, o1; + if(t0 == t1) + return '0 0 0'; + o0 = antilag_takebackorigin(e, t0); + o1 = antilag_takebackorigin(e, t1); + return (o1 - o0) * (1 / (t1 - t0)); } void antilag_takeback(entity e, float t) diff --git a/qcsrc/server/antilag.qh b/qcsrc/server/antilag.qh index d4ed9118e..2a7343243 100644 --- a/qcsrc/server/antilag.qh +++ b/qcsrc/server/antilag.qh @@ -1,6 +1,7 @@ void antilag_record(entity e, float t); float antilag_find(entity e, float t); vector antilag_takebackorigin(entity e, float t); +vector antilag_takebackavgvelocity(entity e, float t0, float t1); void antilag_takeback(entity e, float t); void antilag_restore(entity e); -- 2.39.2