]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
change glitchiness of ladders to be maybe a bit better (closes #214)
authorRudolf Polzer <divverent@alientrap.org>
Mon, 27 Dec 2010 21:19:45 +0000 (22:19 +0100)
committerRudolf Polzer <divverent@alientrap.org>
Mon, 27 Dec 2010 21:19:45 +0000 (22:19 +0100)
qcsrc/server/autocvars.qh
qcsrc/server/cl_physics.qc

index 48873eccc4609a8faa11620cbecc74ccf44e6b37..174265e9d327a21f9abc942e0044f8ff62fddda9 100644 (file)
@@ -1180,3 +1180,4 @@ float autocvar_timelimit_suddendeath;
 #define autocvar_utf8_enable cvar("utf8_enable")
 float autocvar_waypoint_benchmark;
 float autocvar_welcome_message_time;
+float autocvar_sv_gameplayfix_gravityunaffectedbyticrate;
index e2feca927b94472af9ff963e1c01d141be5d2d01..8e964054b7858f40d5158f4af0fc5a6ac6f4e694 100644 (file)
@@ -830,6 +830,11 @@ void SV_PlayerPhysics()
        if (self.movetype == MOVETYPE_NONE)
                return;
 
+       // when we get here, disableclientprediction cannot be 2
+       self.disableclientprediction = 0;
+       if(time < self.ladder_time)
+               self.disableclientprediction = 1;
+
        maxspd_mod = 1;
 
        swampspd_mod = 1;
@@ -989,14 +994,21 @@ void SV_PlayerPhysics()
                // on a spawnfunc_func_ladder or swimming in spawnfunc_func_water
                self.flags &~= FL_ONGROUND;
 
+               float g;
+               g = autocvar_sv_gravity * frametime;
+               if(self.gravity)
+                       g *= self.gravity;
+               if(autocvar_sv_gameplayfix_gravityunaffectedbyticrate)
+               {
+                       g *= 0.5;
+                       self.velocity_z += g;
+               }
+
                self.velocity = self.velocity * (1 - frametime * autocvar_sv_friction);
                makevectors(self.v_angle);
                //wishvel = v_forward * self.movement_x + v_right * self.movement_y + v_up * self.movement_z;
                wishvel = v_forward * self.movement_x + v_right * self.movement_y + '0 0 1' * self.movement_z;
-               if (self.gravity)
-                       self.velocity_z = self.velocity_z + self.gravity * autocvar_sv_gravity * frametime;
-               else
-                       self.velocity_z = self.velocity_z + autocvar_sv_gravity * frametime;
+               self.velocity_z += g;
                if (self.ladder_entity.classname == "func_water")
                {
                        f = vlen(wishvel);