aboutsummaryrefslogtreecommitdiff
path: root/src/client/clientenvironment.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/clientenvironment.cpp')
-rw-r--r--src/client/clientenvironment.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/client/clientenvironment.cpp b/src/client/clientenvironment.cpp
index 448af36c6..6c7ea6578 100644
--- a/src/client/clientenvironment.cpp
+++ b/src/client/clientenvironment.cpp
@@ -197,6 +197,8 @@ void ClientEnvironment::step(float dtime)
if (!free_move) {
// Gravity
v3f speed = lplayer->getSpeed();
+ v3f old_speed = speed;
+
if (!is_climbing && !lplayer->in_liquid)
speed.Y -= lplayer->movement_gravity *
lplayer->physics_override_gravity * dtime_part * 2.0f;
@@ -233,7 +235,10 @@ void ClientEnvironment::step(float dtime)
speed += d;
}
- lplayer->setSpeed(speed);
+ lplayer->setSpeed(lplayer->physics_override_new_gravity
+ ? (speed + old_speed) / 2.0f
+ : speed
+ );
}
/*