Autojump: Disable in fly mode, support continuous forward (#8200)

Correctly disable in fly mode (issue #8199)
Also autojump in continuous forward mode (issue #8201)
This commit is contained in:
SmallJoker 2019-02-09 21:44:04 +01:00 committed by GitHub
parent 705b454026
commit 6d6a813614
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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)