From c41c3c5a486eedca384bdc2e2c429f60dd4feca5 Mon Sep 17 00:00:00 2001 From: Mario Date: Fri, 12 Dec 2014 15:44:25 +1100 Subject: [PATCH] Add a hack to fix track_canjump (using client cvar will break prediction) --- qcsrc/common/physics.qc | 7 +++++-- qcsrc/common/physics.qh | 2 ++ qcsrc/common/stats.qh | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/qcsrc/common/physics.qc b/qcsrc/common/physics.qc index 0018cf1e9..1e6c0d171 100644 --- a/qcsrc/common/physics.qc +++ b/qcsrc/common/physics.qc @@ -50,6 +50,9 @@ void Physics_AddStats() addstat(STAT_JETPACK_FUEL, AS_FLOAT, stat_jetpack_fuel); addstat(STAT_JETPACK_MAXSPEED_UP, AS_FLOAT, stat_jetpack_maxspeed_up); addstat(STAT_JETPACK_MAXSPEED_SIDE, AS_FLOAT, stat_jetpack_maxspeed_side); + + // hack to fix track_canjump + addstat(STAT_MOVEVARS_TRACK_CANJUMP, AS_INT, cvar_cl_movement_track_canjump); } void Physics_UpdateStats(float maxspd_mod) @@ -464,7 +467,7 @@ void PlayerJump (void) if (!IS_ONGROUND(self)) return; - if (self.cvar_cl_movement_track_canjump) + if (PHYS_TRACK_CANJUMP(self)) if (IS_JUMP_HELD(self)) return; @@ -1734,7 +1737,7 @@ void PM_Main() { pm_multijump = FALSE; PM_multijump_checkjump(); - if((IS_ONGROUND(self) || pm_multijump) && (!IS_JUMP_HELD(self) || !cvar("cl_movement_track_canjump"))) + if((IS_ONGROUND(self) || pm_multijump) && (!IS_JUMP_HELD(self) || !PHYS_TRACK_CANJUMP(self))) { self.velocity_z += PHYS_JUMPVELOCITY; UNSET_ONGROUND(self); diff --git a/qcsrc/common/physics.qh b/qcsrc/common/physics.qh index 0691e7a29..fa140ef2c 100644 --- a/qcsrc/common/physics.qh +++ b/qcsrc/common/physics.qh @@ -49,6 +49,7 @@ #define PHYS_FROZEN(s) getstati(STAT_FROZEN) + #define PHYS_TRACK_CANJUMP(s) getstati(STAT_MOVEVARS_TRACK_CANJUMP) #define PHYS_ACCELERATE getstatf(STAT_MOVEVARS_ACCELERATE) #define PHYS_AIRACCEL_QW(s) getstatf(STAT_MOVEVARS_AIRACCEL_QW) #define PHYS_AIRACCEL_QW_STRETCHFACTOR(s) getstatf(STAT_MOVEVARS_AIRACCEL_QW_STRETCHFACTOR) @@ -132,6 +133,7 @@ #define PHYS_FROZEN(s) s.frozen + #define PHYS_TRACK_CANJUMP(s) s.cvar_cl_movement_track_canjump #define PHYS_ACCELERATE autocvar_sv_accelerate #define PHYS_AIRACCEL_QW(s) s.stat_sv_airaccel_qw #define PHYS_AIRACCEL_QW_STRETCHFACTOR(s) autocvar_sv_airaccel_qw_stretchfactor diff --git a/qcsrc/common/stats.qh b/qcsrc/common/stats.qh index 603de5dd3..c07abf883 100644 --- a/qcsrc/common/stats.qh +++ b/qcsrc/common/stats.qh @@ -229,7 +229,7 @@ const float STAT_REVIVE_PROGRESS = 106; // 194 empty? // 195 empty? // 196 empty? -// 197 empty? +const float STAT_MOVEVARS_TRACK_CANJUMP = 197; const float STAT_MULTIJUMP_ADD = 198; const float STAT_MULTIJUMP_SPEED = 199; const float STAT_MULTIJUMP = 200; -- 2.39.2