From 280643e08cd275bb80e0402402e1ef6646afa679 Mon Sep 17 00:00:00 2001 From: div0 Date: Sat, 7 Feb 2009 12:18:33 +0000 Subject: [PATCH] fixing interpolation a bit git-svn-id: svn://svn.icculus.org/nexuiz/trunk@5797 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/client/Main.qc | 8 ++++++++ data/qcsrc/client/interpolate.qc | 6 +++--- data/qcsrc/client/projectile.qc | 2 -- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/data/qcsrc/client/Main.qc b/data/qcsrc/client/Main.qc index 4ced41b04..907c4775a 100644 --- a/data/qcsrc/client/Main.qc +++ b/data/qcsrc/client/Main.qc @@ -723,7 +723,15 @@ void(float bIsNewEntity) CSQC_Ent_Update = // set up the "time" global for received entities to be correct for interpolation purposes savetime = time; if(servertime) + { time = servertime; + } + else + { + serverprevtime = time; + serverdeltatime = getstatf(STAT_SYS_TICRATE) * getstatf(STAT_MOVEVARS_TIMESCALE); + time = serverprevtime + serverdeltatime; + } #ifdef DP_CSQC_ENTITY_REMOVE_IS_B0RKED if(self.enttype) diff --git a/data/qcsrc/client/interpolate.qc b/data/qcsrc/client/interpolate.qc index 1988320a6..ec8057716 100644 --- a/data/qcsrc/client/interpolate.qc +++ b/data/qcsrc/client/interpolate.qc @@ -8,7 +8,7 @@ void InterpolateOrigin_Note() { float dt; - dt = time - self.itime1; + dt = time - self.itime2; if(self.iflags & IFLAG_PREVALID) self.iflags |= IFLAG_VALID; @@ -48,8 +48,8 @@ void InterpolateOrigin_Note() if(dt < 0.2) { - self.itime1 = time; - self.itime2 = time + getstatf(STAT_SYS_TICRATE) * getstatf(STAT_MOVEVARS_TIMESCALE); + self.itime1 = serverprevtime; + self.itime2 = time; } else { diff --git a/data/qcsrc/client/projectile.qc b/data/qcsrc/client/projectile.qc index 620358e90..12348728e 100644 --- a/data/qcsrc/client/projectile.qc +++ b/data/qcsrc/client/projectile.qc @@ -158,8 +158,6 @@ void Ent_Projectile() { float f; - InterpolateOrigin_Undo(); - // projectile properties: // kind (interpolated, or clientside) // -- 2.39.2