Make autoforward simulate the 'up' key (#8249)
authorDS <vorunbekannt75@web.de>
Tue, 21 May 2019 18:50:00 +0000 (20:50 +0200)
committerParamat <paramat@users.noreply.github.com>
Tue, 21 May 2019 18:50:00 +0000 (19:50 +0100)
src/client/game.cpp
src/client/localplayer.cpp

index 0badda5355ba9228c92919ae54ee4f207a6bca15..8c0433283fa15b611b785f147964ba7d2797a57c 100644 (file)
@@ -2483,6 +2483,12 @@ void Game::updatePlayerControl(const CameraOrientation &cam)
                keypress_bits |= 1U << 4;
        }
 
+       // autoforward if set: simulate "up" key
+       if (player->getPlayerSettings().continuous_forward) {
+               control.up = true;
+               keypress_bits |= 1U << 0;
+       }
+
        client->setPlayerControl(control);
        player->keyPressed = keypress_bits;
 
index 7e7b1a867bf3722800782610563f01e078730e6a..dabeee6fedf2a326a55c833acef411096be1f924 100644 (file)
@@ -496,7 +496,6 @@ void LocalPlayer::applyControl(float dtime, Environment *env)
        bool pitch_move = (free_move || in_liquid) && player_settings.pitch_move;
        // When aux1_descends is enabled the fast key is used to go down, so fast isn't possible
        bool fast_climb = fast_move && control.aux1 && !player_settings.aux1_descends;
-       bool continuous_forward = player_settings.continuous_forward;
        bool always_fly_fast = player_settings.always_fly_fast;
 
        // Whether superspeed mode is used or not
@@ -583,16 +582,8 @@ void LocalPlayer::applyControl(float dtime, Environment *env)
                }
        }
 
-       if (continuous_forward)
-               speedH += v3f(0,0,1);
-
        if (control.up) {
-               if (continuous_forward) {
-                       if (fast_move)
-                               superspeed = true;
-               } else {
-                       speedH += v3f(0,0,1);
-               }
+               speedH += v3f(0,0,1);
        }
        if (control.down) {
                speedH -= v3f(0,0,1);
@@ -1111,7 +1102,7 @@ void LocalPlayer::handleAutojump(f32 dtime, Environment *env,
        if (m_autojump)
                return;
 
-       bool control_forward = control.up || player_settings.continuous_forward ||
+       bool control_forward = control.up ||
                        (!control.up && !control.down &&
                        control.forw_move_joystick_axis < -0.05);
        bool could_autojump =