]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Add a hack to fix track_canjump (using client cvar will break prediction)
authorMario <zacjardine@y7mail.com>
Fri, 12 Dec 2014 04:44:25 +0000 (15:44 +1100)
committerMario <zacjardine@y7mail.com>
Fri, 12 Dec 2014 04:44:25 +0000 (15:44 +1100)
qcsrc/common/physics.qc
qcsrc/common/physics.qh
qcsrc/common/stats.qh

index 0018cf1e95dd850df32cd32d887d311f98fc4072..1e6c0d17140b95dea3c02108c809883287691854 100644 (file)
@@ -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);
index 0691e7a29eb24f85837eed5199483ace37d051a2..fa140ef2cb79f472a1769b17bea5414209bcae76 100644 (file)
@@ -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)
 
        #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
index 603de5dd396c6f5a01579ef3f3a6613885f2bfa2..c07abf8830acb6b76e589fa9b7c7460a1f80d8b3 100644 (file)
@@ -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;