From 202d4a904dbaeb457aaa171f8551b5516f9c9868 Mon Sep 17 00:00:00 2001 From: fruitiex Date: Sun, 7 Feb 2010 15:44:21 +0000 Subject: [PATCH] more doublejump improvements git-svn-id: svn://svn.icculus.org/nexuiz/trunk@8625 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/defaultNexuiz.cfg | 3 ++- data/physics10.cfg | 3 ++- data/physics11.cfg | 3 ++- data/physics151.cfg | 3 ++- data/physics151b.cfg | 3 ++- data/physics16rc1.cfg | 3 ++- data/physics20.cfg | 3 ++- data/physics25.cfg | 3 ++- data/physics26.cfg | 3 ++- data/physicsCPMA.cfg | 3 ++- data/physicsHavoc.cfg | 3 ++- data/physicsLzd.cfg | 3 ++- data/physicsNexrun.cfg | 3 ++- data/physicsNexrun_old.cfg | 3 ++- data/physicsNoQWBunny.cfg | 3 ++- data/physicsQ.cfg | 3 ++- data/physicsQ2.cfg | 3 ++- data/physicsQ2a.cfg | 3 ++- data/physicsQ3.cfg | 3 ++- data/physicsQBF.cfg | 3 ++- data/physicsQBFplus.cfg | 3 ++- data/physicsSamual.cfg | 3 ++- data/physicsWarsow.cfg | 3 ++- data/physicsWarsowClassicBunny.cfg | 3 ++- data/physicsWarsowDev.cfg | 3 ++- data/qcsrc/server/cl_physics.qc | 12 +++++++++--- 26 files changed, 59 insertions(+), 28 deletions(-) diff --git a/data/defaultNexuiz.cfg b/data/defaultNexuiz.cfg index 7af2333a0..01e460e07 100644 --- a/data/defaultNexuiz.cfg +++ b/data/defaultNexuiz.cfg @@ -330,7 +330,8 @@ set sv_player_crouch_maxs "16 16 25" "maxs of a crouched playermodel" set sv_pogostick 1 "don't require releasing the space bar for jumping again" set sv_doublejump 0 "allow Quake 2-style double jumps" -set sv_doublejump_speedcap 0 "wont perform a doublejump if z-axis speed is higher than this, 0 = disable check" +set sv_jumpspeedcap_min "" "wont perform a doublejump if z-axis speed is higher than sv_jumpvelocity * this" +set sv_jumpspeedcap_max "" "wont perform a doublejump if z-axis speed is higher than sv_jumpvelocity * this" seta sv_precacheplayermodels 1 seta sv_precacheweapons 0 diff --git a/data/physics10.cfg b/data/physics10.cfg index 0cd7da87e..1514173be 100644 --- a/data/physics10.cfg +++ b/data/physics10.cfg @@ -24,4 +24,5 @@ sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0.5 sv_doublejump 0 // 1.0 did not allow re-jumping due to a bug, this is quite close to it -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physics11.cfg b/data/physics11.cfg index 600d08c88..01a26ef39 100644 --- a/data/physics11.cfg +++ b/data/physics11.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0.25 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physics151.cfg b/data/physics151.cfg index b5ee0ea9a..b0aa6509d 100644 --- a/data/physics151.cfg +++ b/data/physics151.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physics151b.cfg b/data/physics151b.cfg index c8df0900c..e14a218b3 100644 --- a/data/physics151b.cfg +++ b/data/physics151b.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physics16rc1.cfg b/data/physics16rc1.cfg index 2dbfb4d8e..cbda5fb78 100644 --- a/data/physics16rc1.cfg +++ b/data/physics16rc1.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0.2 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physics20.cfg b/data/physics20.cfg index c2e57bfbd..dc780e11c 100644 --- a/data/physics20.cfg +++ b/data/physics20.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physics25.cfg b/data/physics25.cfg index 903b9c370..995284f38 100644 --- a/data/physics25.cfg +++ b/data/physics25.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physics26.cfg b/data/physics26.cfg index d2df09058..be2ba4df9 100644 --- a/data/physics26.cfg +++ b/data/physics26.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physicsCPMA.cfg b/data/physicsCPMA.cfg index 07aadaa7c..f5226b278 100644 --- a/data/physicsCPMA.cfg +++ b/data/physicsCPMA.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physicsHavoc.cfg b/data/physicsHavoc.cfg index e219c2cfe..5b44015a4 100644 --- a/data/physicsHavoc.cfg +++ b/data/physicsHavoc.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physicsLzd.cfg b/data/physicsLzd.cfg index 123b155d7..9313f252c 100644 --- a/data/physicsLzd.cfg +++ b/data/physicsLzd.cfg @@ -24,4 +24,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physicsNexrun.cfg b/data/physicsNexrun.cfg index 39571ba0a..b88fa7b0d 100644 --- a/data/physicsNexrun.cfg +++ b/data/physicsNexrun.cfg @@ -27,4 +27,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 1 -sv_doublejump_speedcap 270 +sv_jumpspeedcap_min 0 +sv_jumpspeedcap_max 1 diff --git a/data/physicsNexrun_old.cfg b/data/physicsNexrun_old.cfg index 4b485530d..96b8cf4ac 100644 --- a/data/physicsNexrun_old.cfg +++ b/data/physicsNexrun_old.cfg @@ -27,4 +27,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 1 -sv_doublejump_speedcap 270 +sv_jumpspeedcap_min 0 +sv_jumpspeedcap_max 1 diff --git a/data/physicsNoQWBunny.cfg b/data/physicsNoQWBunny.cfg index 5b12d3e63..b79038a71 100644 --- a/data/physicsNoQWBunny.cfg +++ b/data/physicsNoQWBunny.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physicsQ.cfg b/data/physicsQ.cfg index 5f1031b47..5086fc5b7 100644 --- a/data/physicsQ.cfg +++ b/data/physicsQ.cfg @@ -24,4 +24,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physicsQ2.cfg b/data/physicsQ2.cfg index 6601d6950..036c31dfc 100644 --- a/data/physicsQ2.cfg +++ b/data/physicsQ2.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 1 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physicsQ2a.cfg b/data/physicsQ2a.cfg index 565bc0864..cd25e47de 100644 --- a/data/physicsQ2a.cfg +++ b/data/physicsQ2a.cfg @@ -24,4 +24,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 1 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physicsQ3.cfg b/data/physicsQ3.cfg index d27507bdd..02ae670aa 100644 --- a/data/physicsQ3.cfg +++ b/data/physicsQ3.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physicsQBF.cfg b/data/physicsQBF.cfg index 80d82c1b3..668b83f3f 100644 --- a/data/physicsQBF.cfg +++ b/data/physicsQBF.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physicsQBFplus.cfg b/data/physicsQBFplus.cfg index 810f29da1..00b316f28 100644 --- a/data/physicsQBFplus.cfg +++ b/data/physicsQBFplus.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physicsSamual.cfg b/data/physicsSamual.cfg index a497918b0..e10478398 100644 --- a/data/physicsSamual.cfg +++ b/data/physicsSamual.cfg @@ -22,4 +22,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physicsWarsow.cfg b/data/physicsWarsow.cfg index db3cf9069..fbe6dd3c9 100644 --- a/data/physicsWarsow.cfg +++ b/data/physicsWarsow.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physicsWarsowClassicBunny.cfg b/data/physicsWarsowClassicBunny.cfg index add4003de..d01068ec0 100644 --- a/data/physicsWarsowClassicBunny.cfg +++ b/data/physicsWarsowClassicBunny.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 925 sv_warsowbunny_backtosideratio 0.8 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/physicsWarsowDev.cfg b/data/physicsWarsowDev.cfg index f701f7f1f..353326afb 100644 --- a/data/physicsWarsowDev.cfg +++ b/data/physicsWarsowDev.cfg @@ -23,4 +23,5 @@ sv_warsowbunny_topspeed 900 sv_warsowbunny_backtosideratio 0.9 sv_friction_on_land 0 sv_doublejump 0 -sv_doublejump_speedcap 0 +sv_jumpspeedcap_min "" +sv_jumpspeedcap_max "" diff --git a/data/qcsrc/server/cl_physics.qc b/data/qcsrc/server/cl_physics.qc index 67c8d7d65..32fecc66f 100644 --- a/data/qcsrc/server/cl_physics.qc +++ b/data/qcsrc/server/cl_physics.qc @@ -30,6 +30,7 @@ float sv_warsowbunny_backtosideratio; .float spectatorspeed; .float doublejump_nextjumptime; +.float wasinair; /* ============= @@ -66,7 +67,7 @@ void PlayerJump (void) return; if(sv_doublejump) - if(time < self.doublejump_nextjumptime) + if(time < self.doublejump_nextjumptime || !self.wasinair) return; if(g_runematch) @@ -89,8 +90,10 @@ void PlayerJump (void) mjumpheight = mjumpheight * cvar("g_minstagib_speed_jumpheight"); } - if(self.velocity_z >= cvar("sv_doublejump_speedcap") && cvar("sv_doublejump_speedcap")) // try to "fix" the crazy stair jumps by limiting at which z-axis speeds you can perform a doublejump - return; // refuse the jump + if(cvar_string("sv_jumpspeedcap_min") != "") + self.velocity_z = max(cvar("sv_jumpvelocity") * cvar("sv_jumpspeedcap_min"), self.velocity_z); + if(cvar_string("sv_jumpspeedcap_max") != "") + self.velocity_z = min(cvar("sv_jumpvelocity") * cvar("sv_jumpspeedcap_max"), self.velocity_z); if(!(self.lastflags & FL_ONGROUND)) { @@ -852,6 +855,9 @@ void SV_PlayerPhysics() else self.flags |= FL_JUMPRELEASED; + if (!self.wasinair) + self.wasinair = !(self.flags & FL_ONGROUND); + if (self.waterlevel == WATERLEVEL_SWIMMING) CheckWaterJump (); } -- 2.39.2