From 971d9b25d7b8ed041fda46e8694fa883c3a73129 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Tue, 20 Jul 2010 09:02:33 +0200 Subject: [PATCH] sv_aircontrol_penalty (use it instead of sideways friction in XPMLight) --- physics10.cfg | 1 + physics11.cfg | 1 + physics151.cfg | 1 + physics151b.cfg | 1 + physics16rc1.cfg | 1 + physics20.cfg | 1 + physics25.cfg | 1 + physics26.cfg | 1 + physicsCPMA.cfg | 1 + physicsHavoc.cfg | 1 + physicsLeeStricklin.cfg | 1 + physicsLzd.cfg | 1 + physicsNoQWBunny.cfg | 1 + physicsNoQWBunny_easy.cfg | 1 + physicsQ.cfg | 1 + physicsQ2.cfg | 1 + physicsQ2a.cfg | 1 + physicsQ3.cfg | 1 + physicsQBF.cfg | 1 + physicsQBFplus.cfg | 1 + physicsSamual.cfg | 1 + physicsWarsow.cfg | 1 + physicsWarsowClassicBunny.cfg | 1 + physicsWarsowDev.cfg | 1 + physicsXPM.cfg | 1 + physicsXPMLight.cfg | 3 ++- qcsrc/server/cl_physics.qc | 5 ++++- qcsrc/server/sv_main.qc | 1 + 28 files changed, 32 insertions(+), 2 deletions(-) diff --git a/physics10.cfg b/physics10.cfg index 4631d5ea7..6e112b9f6 100644 --- a/physics10.cfg +++ b/physics10.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physics11.cfg b/physics11.cfg index 8c8219af5..d4e1f54ab 100644 --- a/physics11.cfg +++ b/physics11.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physics151.cfg b/physics151.cfg index 9707f6f7c..6cb19f1bd 100644 --- a/physics151.cfg +++ b/physics151.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physics151b.cfg b/physics151b.cfg index 475875b1a..4796765cd 100644 --- a/physics151b.cfg +++ b/physics151b.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physics16rc1.cfg b/physics16rc1.cfg index 68a8f198e..c4d60c7f3 100644 --- a/physics16rc1.cfg +++ b/physics16rc1.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physics20.cfg b/physics20.cfg index b2e056ee5..d317514c0 100644 --- a/physics20.cfg +++ b/physics20.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physics25.cfg b/physics25.cfg index 85e4841cd..af5f38632 100644 --- a/physics25.cfg +++ b/physics25.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physics26.cfg b/physics26.cfg index 0e4de396e..8fa5abc00 100644 --- a/physics26.cfg +++ b/physics26.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physicsCPMA.cfg b/physicsCPMA.cfg index d572e6d97..5660a3342 100644 --- a/physicsCPMA.cfg +++ b/physicsCPMA.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 70 sv_maxairstrafespeed 30 sv_airstrafeaccel_qw 0 sv_aircontrol 150 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physicsHavoc.cfg b/physicsHavoc.cfg index eb6377562..f328f8967 100644 --- a/physicsHavoc.cfg +++ b/physicsHavoc.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physicsLeeStricklin.cfg b/physicsLeeStricklin.cfg index 4a959db3e..b162e5f80 100644 --- a/physicsLeeStricklin.cfg +++ b/physicsLeeStricklin.cfg @@ -19,6 +19,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physicsLzd.cfg b/physicsLzd.cfg index 2b437d344..064499002 100644 --- a/physicsLzd.cfg +++ b/physicsLzd.cfg @@ -19,6 +19,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physicsNoQWBunny.cfg b/physicsNoQWBunny.cfg index d70bc1bde..5a8732b68 100644 --- a/physicsNoQWBunny.cfg +++ b/physicsNoQWBunny.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 24 sv_maxairstrafespeed 100 sv_airstrafeaccel_qw -0.9825 sv_aircontrol 125 +sv_aircontrol_penalty 0 sv_aircontrol_power 2.5 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physicsNoQWBunny_easy.cfg b/physicsNoQWBunny_easy.cfg index ff8cd3bcc..721f819b3 100644 --- a/physicsNoQWBunny_easy.cfg +++ b/physicsNoQWBunny_easy.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 125 +sv_aircontrol_penalty 0 sv_aircontrol_power 2.5 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physicsQ.cfg b/physicsQ.cfg index ea8e1acf7..6fb02afe7 100644 --- a/physicsQ.cfg +++ b/physicsQ.cfg @@ -19,6 +19,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physicsQ2.cfg b/physicsQ2.cfg index 1d08ae8c7..927fef3c4 100644 --- a/physicsQ2.cfg +++ b/physicsQ2.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physicsQ2a.cfg b/physicsQ2a.cfg index 7409ae4be..7828cc608 100644 --- a/physicsQ2a.cfg +++ b/physicsQ2a.cfg @@ -19,6 +19,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physicsQ3.cfg b/physicsQ3.cfg index 1951becf2..37973aef6 100644 --- a/physicsQ3.cfg +++ b/physicsQ3.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physicsQBF.cfg b/physicsQBF.cfg index 4bbb9be2d..2f325586e 100644 --- a/physicsQBF.cfg +++ b/physicsQBF.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physicsQBFplus.cfg b/physicsQBFplus.cfg index 6c17ad683..03be62dd4 100644 --- a/physicsQBFplus.cfg +++ b/physicsQBFplus.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physicsSamual.cfg b/physicsSamual.cfg index e03363a08..7492b415c 100644 --- a/physicsSamual.cfg +++ b/physicsSamual.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 0 sv_maxairstrafespeed 0 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physicsWarsow.cfg b/physicsWarsow.cfg index b1b0655cb..811084dd5 100644 --- a/physicsWarsow.cfg +++ b/physicsWarsow.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 70 sv_maxairstrafespeed 30 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 9 // activates warsow movement mode diff --git a/physicsWarsowClassicBunny.cfg b/physicsWarsowClassicBunny.cfg index 06e7c1a57..467c4212a 100644 --- a/physicsWarsowClassicBunny.cfg +++ b/physicsWarsowClassicBunny.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 70 sv_maxairstrafespeed 30 sv_airstrafeaccel_qw 0 sv_aircontrol 150 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physicsWarsowDev.cfg b/physicsWarsowDev.cfg index cb07a4881..8a62f3e05 100644 --- a/physicsWarsowDev.cfg +++ b/physicsWarsowDev.cfg @@ -18,6 +18,7 @@ sv_airstrafeaccelerate 70 sv_maxairstrafespeed 30 sv_airstrafeaccel_qw 0 sv_aircontrol 0 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 6 // activates warsow movement mode diff --git a/physicsXPM.cfg b/physicsXPM.cfg index 2a60b6517..e523f462f 100644 --- a/physicsXPM.cfg +++ b/physicsXPM.cfg @@ -22,6 +22,7 @@ sv_airstrafeaccelerate 70 sv_maxairstrafespeed 30 sv_airstrafeaccel_qw 1 sv_aircontrol 150 +sv_aircontrol_penalty 0 sv_aircontrol_power 2 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/physicsXPMLight.cfg b/physicsXPMLight.cfg index 6fd513871..c429b47a9 100644 --- a/physicsXPMLight.cfg +++ b/physicsXPMLight.cfg @@ -14,7 +14,7 @@ sv_stepheight 34 sv_jumpvelocity 270 sv_wateraccelerate 4 sv_waterfriction 1 -sv_airaccel_sideways_friction -0.2 +sv_airaccel_sideways_friction 0 sv_airaccel_qw -0.934375 // CPMA: 1 sv_airstopaccelerate 6.5625 // matches strafe-stopping speed @@ -22,6 +22,7 @@ sv_airstrafeaccelerate 14 sv_maxairstrafespeed 150 sv_airstrafeaccel_qw -0.99 sv_aircontrol 100 +sv_aircontrol_penalty 100 sv_aircontrol_power 2.5 sv_airspeedlimit_nonqw 0 sv_warsowbunny_turnaccel 0 diff --git a/qcsrc/server/cl_physics.qc b/qcsrc/server/cl_physics.qc index ac6789586..8f3a9aa17 100644 --- a/qcsrc/server/cl_physics.qc +++ b/qcsrc/server/cl_physics.qc @@ -16,6 +16,7 @@ float sv_maxairstrafespeed; float sv_airstrafeaccel_qw; float sv_aircontrol; float sv_aircontrol_power; +float sv_aircontrol_penalty; float sv_warsowbunny_airforwardaccel; float sv_warsowbunny_accel; float sv_warsowbunny_topspeed; @@ -470,7 +471,9 @@ void CPM_PM_Aircontrol(vector wishdir, float wishspeed) if(dot > 0) // we can't change direction while slowing down { - k *= fabs(sv_aircontrol)*pow(dot, sv_aircontrol_power)*frametime; + k *= pow(dot, sv_aircontrol_power)*frametime; + xyspeed = max(0, xyspeed - sv_aircontrol_penalty * sqrt(max(0, 1 - dot*dot)) * k/32); + k *= sv_aircontrol; self.velocity = normalize(self.velocity * xyspeed + wishdir * k); } diff --git a/qcsrc/server/sv_main.qc b/qcsrc/server/sv_main.qc index a79f9a473..44a47c95d 100644 --- a/qcsrc/server/sv_main.qc +++ b/qcsrc/server/sv_main.qc @@ -191,6 +191,7 @@ void StartFrame (void) sv_maxairstrafespeed = cvar("sv_maxairstrafespeed"); sv_airstrafeaccel_qw = cvar("sv_airstrafeaccel_qw"); sv_aircontrol = cvar("sv_aircontrol"); + sv_aircontrol_penalty = cvar("sv_aircontrol_penalty"); sv_aircontrol_power = cvar("sv_aircontrol_power"); sv_warsowbunny_airforwardaccel = cvar("sv_warsowbunny_airforwardaccel"); sv_warsowbunny_accel = cvar("sv_warsowbunny_accel"); -- 2.39.2