forked from Mirrorlandia_minetest/minetest
Dont allow fast move in water or ladder when aux1_descend is true
This commit is contained in:
parent
b0e6806077
commit
e38d65f8d1
@ -389,7 +389,8 @@ void LocalPlayer::applyControl(float dtime)
|
|||||||
|
|
||||||
bool free_move = fly_allowed && g_settings->getBool("free_move");
|
bool free_move = fly_allowed && g_settings->getBool("free_move");
|
||||||
bool fast_move = fast_allowed && g_settings->getBool("fast_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");
|
bool continuous_forward = g_settings->getBool("continuous_forward");
|
||||||
|
|
||||||
// Whether superspeed mode is used or not
|
// Whether superspeed mode is used or not
|
||||||
@ -418,14 +419,12 @@ void LocalPlayer::applyControl(float dtime)
|
|||||||
}
|
}
|
||||||
else if(in_liquid || in_liquid_stable)
|
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_walk;
|
||||||
speedV.Y = -movement_speed_fast;
|
|
||||||
swimming_vertical = true;
|
swimming_vertical = true;
|
||||||
}
|
}
|
||||||
else if(is_climbing)
|
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_climb;
|
||||||
speedV.Y = -movement_speed_fast;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -462,8 +461,7 @@ void LocalPlayer::applyControl(float dtime)
|
|||||||
}
|
}
|
||||||
else if(in_liquid || in_liquid_stable)
|
else if(in_liquid || in_liquid_stable)
|
||||||
{
|
{
|
||||||
if(fast_or_aux1_descends)
|
if(fast_climb)
|
||||||
// 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_fast;
|
||||||
else
|
else
|
||||||
speedV.Y = -movement_speed_walk;
|
speedV.Y = -movement_speed_walk;
|
||||||
@ -471,8 +469,7 @@ void LocalPlayer::applyControl(float dtime)
|
|||||||
}
|
}
|
||||||
else if(is_climbing)
|
else if(is_climbing)
|
||||||
{
|
{
|
||||||
if(fast_or_aux1_descends)
|
if(fast_climb)
|
||||||
// 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_fast;
|
||||||
else
|
else
|
||||||
speedV.Y = -movement_speed_climb;
|
speedV.Y = -movement_speed_climb;
|
||||||
@ -538,8 +535,7 @@ void LocalPlayer::applyControl(float dtime)
|
|||||||
}
|
}
|
||||||
else if(in_liquid)
|
else if(in_liquid)
|
||||||
{
|
{
|
||||||
if(fast_or_aux1_descends)
|
if(fast_climb)
|
||||||
// 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_fast;
|
||||||
else
|
else
|
||||||
speedV.Y = movement_speed_walk;
|
speedV.Y = movement_speed_walk;
|
||||||
@ -547,8 +543,7 @@ void LocalPlayer::applyControl(float dtime)
|
|||||||
}
|
}
|
||||||
else if(is_climbing)
|
else if(is_climbing)
|
||||||
{
|
{
|
||||||
if(fast_or_aux1_descends)
|
if(fast_climb)
|
||||||
// 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_fast;
|
||||||
else
|
else
|
||||||
speedV.Y = movement_speed_climb;
|
speedV.Y = movement_speed_climb;
|
||||||
@ -556,7 +551,7 @@ void LocalPlayer::applyControl(float dtime)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// The speed of the player (Y is ignored)
|
// 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;
|
speedH = speedH.normalize() * movement_speed_fast;
|
||||||
else if(control.sneak && !free_move && !in_liquid && !in_liquid_stable)
|
else if(control.sneak && !free_move && !in_liquid && !in_liquid_stable)
|
||||||
speedH = speedH.normalize() * movement_speed_crouch;
|
speedH = speedH.normalize() * movement_speed_crouch;
|
||||||
@ -575,10 +570,7 @@ void LocalPlayer::applyControl(float dtime)
|
|||||||
incH = movement_acceleration_air * BS * dtime;
|
incH = movement_acceleration_air * BS * dtime;
|
||||||
incV = 0; // No vertical acceleration in air
|
incV = 0; // No vertical acceleration in air
|
||||||
}
|
}
|
||||||
else if(superspeed || (fast_move && control.aux1))
|
else if (superspeed || (is_climbing && fast_climb) || ((in_liquid || in_liquid_stable) && fast_climb))
|
||||||
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
|
|
||||||
incH = incV = movement_acceleration_fast * BS * dtime;
|
incH = incV = movement_acceleration_fast * BS * dtime;
|
||||||
else
|
else
|
||||||
incH = incV = movement_acceleration_default * BS * dtime;
|
incH = incV = movement_acceleration_default * BS * dtime;
|
||||||
|
Loading…
Reference in New Issue
Block a user