From ae483f1bd00625216bb0a35370f0cc4568ad7893 Mon Sep 17 00:00:00 2001 From: red-001 Date: Sun, 21 May 2017 10:18:38 +0100 Subject: [PATCH] Prevent fall damage from overflowing when falling from a large height. (#5791) --- src/clientenvironment.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/clientenvironment.cpp b/src/clientenvironment.cpp index 47df49b8..cc7cb54d 100644 --- a/src/clientenvironment.cpp +++ b/src/clientenvironment.cpp @@ -237,11 +237,10 @@ void ClientEnvironment::step(float dtime) pre_factor = 1.0 + (float)addp/100.0; } float speed = pre_factor * speed_diff.getLength(); - if(speed > tolerance) - { - f32 damage_f = (speed - tolerance)/BS * post_factor; - u16 damage = (u16)(damage_f+0.5); - if(damage != 0){ + if (speed > tolerance) { + f32 damage_f = (speed - tolerance) / BS * post_factor; + u8 damage = (u8)MYMIN(damage_f + 0.5, 255); + if (damage != 0) { damageLocalPlayer(damage, true); MtEvent *e = new SimpleTriggerEvent("PlayerFallingDamage"); m_client->event()->put(e);