From: red-001 Date: Sun, 21 May 2017 09:18:38 +0000 (+0100) Subject: Prevent fall damage from overflowing when falling from a large height. (#5791) X-Git-Tag: 0.4.16~82 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=ae483f1bd00625216bb0a35370f0cc4568ad7893;p=oweals%2Fminetest.git Prevent fall damage from overflowing when falling from a large height. (#5791) --- diff --git a/src/clientenvironment.cpp b/src/clientenvironment.cpp index 47df49b84..cc7cb54dd 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);