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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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;
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);
}
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");