Skip to content

Commit

Permalink
Dont allow fast move in water or ladder when aux1_descend is true
Browse files Browse the repository at this point in the history
  • Loading branch information
MirceaKitsune authored and PilzAdam committed Apr 5, 2013
1 parent b0e6806 commit e38d65f
Showing 1 changed file with 10 additions and 18 deletions.
28 changes: 10 additions & 18 deletions src/localplayer.cpp
Expand Up @@ -389,7 +389,8 @@ void LocalPlayer::applyControl(float dtime)

bool free_move = fly_allowed && g_settings->getBool("free_move");
bool fast_move = fast_allowed && g_settings->getBool("fast_move");
bool fast_or_aux1_descends = (fast_move && control.aux1) || (fast_move && g_settings->getBool("aux1_descends"));
// 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 && !g_settings->getBool("aux1_descends");
bool continuous_forward = g_settings->getBool("continuous_forward");

// Whether superspeed mode is used or not
Expand Down Expand Up @@ -418,14 +419,12 @@ void LocalPlayer::applyControl(float dtime)
}
else if(in_liquid || in_liquid_stable)
{
// Always use fast when aux1_descends & fast_move are enabled in liquid, since the aux1 button would mean both turbo and "swim down" causing a conflict
speedV.Y = -movement_speed_fast;
speedV.Y = -movement_speed_walk;
swimming_vertical = true;
}
else if(is_climbing)
{
// Always use fast when aux1_descends & fast_move are enabled when climbing, since the aux1 button would mean both turbo and "descend" causing a conflict
speedV.Y = -movement_speed_fast;
speedV.Y = -movement_speed_climb;
}
else
{
Expand Down Expand Up @@ -462,17 +461,15 @@ void LocalPlayer::applyControl(float dtime)
}
else if(in_liquid || in_liquid_stable)
{
if(fast_or_aux1_descends)
// Always use fast when aux1_descends & fast_move are enabled in liquid, since the aux1 button would mean both turbo and "swim down" causing a conflict
if(fast_climb)
speedV.Y = -movement_speed_fast;
else
speedV.Y = -movement_speed_walk;
swimming_vertical = true;
}
else if(is_climbing)
{
if(fast_or_aux1_descends)
// Always use fast when aux1_descends & fast_move are enabled when climbing, since the aux1 button would mean both turbo and "descend" causing a conflict
if(fast_climb)
speedV.Y = -movement_speed_fast;
else
speedV.Y = -movement_speed_climb;
Expand Down Expand Up @@ -538,25 +535,23 @@ void LocalPlayer::applyControl(float dtime)
}
else if(in_liquid)
{
if(fast_or_aux1_descends)
// Always use fast when aux1_descends & fast_move are enabled in liquid, since the aux1 button would mean both turbo and "swim down" causing a conflict
if(fast_climb)
speedV.Y = movement_speed_fast;
else
speedV.Y = movement_speed_walk;
swimming_vertical = true;
}
else if(is_climbing)
{
if(fast_or_aux1_descends)
// Always use fast when aux1_descends & fast_move are enabled when climbing, since the aux1 button would mean both turbo and "descend" causing a conflict
if(fast_climb)
speedV.Y = movement_speed_fast;
else
speedV.Y = movement_speed_climb;
}
}

// The speed of the player (Y is ignored)
if(superspeed || (is_climbing && fast_or_aux1_descends) || ((in_liquid || in_liquid_stable) && fast_or_aux1_descends))
if(superspeed || (is_climbing && fast_climb) || ((in_liquid || in_liquid_stable) && fast_climb))
speedH = speedH.normalize() * movement_speed_fast;
else if(control.sneak && !free_move && !in_liquid && !in_liquid_stable)
speedH = speedH.normalize() * movement_speed_crouch;
Expand All @@ -575,10 +570,7 @@ void LocalPlayer::applyControl(float dtime)
incH = movement_acceleration_air * BS * dtime;
incV = 0; // No vertical acceleration in air
}
else if(superspeed || (fast_move && control.aux1))
incH = incV = movement_acceleration_fast * BS * dtime;
else if ((in_liquid || in_liquid_stable) && fast_or_aux1_descends)
// Always use fast when aux1_descends & fast_move are enabled in liquid, since the aux1 button would mean both turbo and "swim down" causing a conflict
else if (superspeed || (is_climbing && fast_climb) || ((in_liquid || in_liquid_stable) && fast_climb))
incH = incV = movement_acceleration_fast * BS * dtime;
else
incH = incV = movement_acceleration_default * BS * dtime;
Expand Down

0 comments on commit e38d65f

Please sign in to comment.