]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
require a distance of 48 qu above ground before jump anim plays by itself (ie. not...
authorFruitieX <fruitiex@gmail.com>
Thu, 26 May 2011 00:52:53 +0000 (03:52 +0300)
committerFruitieX <fruitiex@gmail.com>
Thu, 26 May 2011 00:52:53 +0000 (03:52 +0300)
defaultXonotic.cfg
qcsrc/server/autocvars.qh
qcsrc/server/cl_player.qc

index 0781bfddb034a0bff8b001b8340e67b6de3d9fb6..59c2af75e015f5429be2bf56d5bbf4ca6a90fcb1 100644 (file)
@@ -386,6 +386,7 @@ set sv_doublejump 0 "allow Quake 2-style double jumps"
 set sv_jumpspeedcap_min "" "lower bound on the baseline velocity of a jump; final velocity will be >= (jumpheight * min + jumpheight)"
 set sv_jumpspeedcap_max "" "upper bound on the baseline velocity of a jump; final velocity will be <= (jumpheight * max + jumpheight)"
 set sv_jumpspeedcap_max_disable_on_ramps 0 "disable upper baseline velocity bound on ramps to preserve the old rampjump style"
+set sv_player_jumpanim_minfall 48 "minimum distance player has to have below their feet before the jump animation will be activated (only when falling, +jump will play anim instantly)"
 
 seta sv_precacheplayermodels 1
 seta sv_precacheweapons 0
index 36b41896c304f1eaa0ff5006bdf460e2d3d06304..50e46f33776090e078e2f83fff103ba8f29ab990 100644 (file)
@@ -1185,6 +1185,7 @@ string autocvar_sv_player_headsize;
 string autocvar_sv_player_maxs;
 string autocvar_sv_player_mins;
 string autocvar_sv_player_viewoffset;
+float autocvar_sv_player_jumpanim_minfall;
 float autocvar_sv_precacheplayermodels;
 float autocvar_sv_precacheweapons;
 float autocvar_sv_q3acompat_machineshotgunswap;
index 4de169221e6d976b66d8f3c2cd04927e31ba761c..2f46fc1a24ed4ea74a2d221a5baf74032fa944f3 100644 (file)
@@ -260,10 +260,23 @@ void player_anim (void)
                if (!(self.flags & FL_ONGROUND))
                {
                        if (self.crouch)
-                               setanim(self, self.anim_duckjump, FALSE, TRUE, self.restart_jump);
+                       {
+                               traceline(self.origin + '0 0 1' * PL_CROUCH_MIN_z, self.origin + '0 0 1' * (PL_CROUCH_MIN_z - autocvar_sv_player_jumpanim_minfall), TRUE, self);
+                               if(!trace_startsolid && trace_fraction == 1)
+                               {
+                                       setanim(self, self.anim_duckjump, FALSE, TRUE, self.restart_jump);
+                                       self.restart_jump = FALSE;
+                               }
+                       }
                        else
-                               setanim(self, self.anim_jump, FALSE, TRUE, self.restart_jump);
-                       self.restart_jump = FALSE;
+                       {
+                               traceline(self.origin + '0 0 1' * PL_MIN_z, self.origin + '0 0 1' * (PL_MIN_z - autocvar_sv_player_jumpanim_minfall), TRUE, self);
+                               if(!trace_startsolid && trace_fraction == 1)
+                               {
+                                       setanim(self, self.anim_jump, FALSE, TRUE, self.restart_jump);
+                                       self.restart_jump = FALSE;
+                               }
+                       }
                }
                else if (self.crouch)
                {