From: Rudolf Polzer Date: Mon, 27 Dec 2010 21:19:45 +0000 (+0100) Subject: change glitchiness of ladders to be maybe a bit better (closes #214) X-Git-Tag: xonotic-v0.5.0~330^2~14^2~9 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=a9dda70e2f928ff95a09ef2dfd21ad30b8920d62;p=xonotic%2Fxonotic-data.pk3dir.git change glitchiness of ladders to be maybe a bit better (closes #214) --- diff --git a/qcsrc/server/autocvars.qh b/qcsrc/server/autocvars.qh index 48873eccc..174265e9d 100644 --- a/qcsrc/server/autocvars.qh +++ b/qcsrc/server/autocvars.qh @@ -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; diff --git a/qcsrc/server/cl_physics.qc b/qcsrc/server/cl_physics.qc index e2feca927..8e964054b 100644 --- a/qcsrc/server/cl_physics.qc +++ b/qcsrc/server/cl_physics.qc @@ -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);