Autojump: Disable in fly mode, support continuous forward (#8200)
authorSmallJoker <SmallJoker@users.noreply.github.com>
Sat, 9 Feb 2019 20:44:04 +0000 (21:44 +0100)
committerGitHub <noreply@github.com>
Sat, 9 Feb 2019 20:44:04 +0000 (21:44 +0100)
Correctly disable in fly mode (issue #8199)
Also autojump in continuous forward mode (issue #8201)

src/client/localplayer.cpp

index dbb50d397bb435476dc9d5b847019b6834bd8679..c627cc6d9a0053d6d04c696829e74db6ae25e75f 100644 (file)
@@ -611,6 +611,12 @@ void LocalPlayer::applyControl(float dtime, Environment *env)
                speedH += v3f(1,0,0) *
                        (control.sidew_move_joystick_axis / 32767.f);
        }
+       if (m_autojump) {
+               // release autojump after a given time
+               m_autojump_time -= dtime;
+               if (m_autojump_time <= 0.0f)
+                       m_autojump = false;
+       }
        if(control.jump)
        {
                if (free_move) {
@@ -1102,17 +1108,12 @@ void LocalPlayer::handleAutojump(f32 dtime, Environment *env,
        if (!player_settings.autojump)
                return;
 
-       if (m_autojump) {
-               // release autojump after a given time
-               m_autojump_time -= dtime;
-               if (m_autojump_time <= 0.0f)
-                       m_autojump = false;
+       if (m_autojump)
                return;
-       }
 
-       bool control_forward = control.up ||
-                              (!control.up && !control.down &&
-                                              control.forw_move_joystick_axis < -0.05);
+       bool control_forward = control.up || player_settings.continuous_forward ||
+                       (!control.up && !control.down &&
+                       control.forw_move_joystick_axis < -0.05);
        bool could_autojump =
                        m_can_jump && !control.jump && !control.sneak && control_forward;
        if (!could_autojump)