diff options
author | lisacvuk <lisacvukhome@gmail.com> | 2018-01-23 19:28:21 +0100 |
---|---|---|
committer | SmallJoker <SmallJoker@users.noreply.github.com> | 2018-01-23 19:28:21 +0100 |
commit | 62c10e3d0855fa14fdc260da0b7cd748e53db13f (patch) | |
tree | d293ad561db63011a8b37f40aad55c6a0a20ab80 /src/clientenvironment.cpp | |
parent | 04e5a65c65e3434b78ef23b3c9369d3d7aeb4de3 (diff) | |
download | hax-minetest-server-62c10e3d0855fa14fdc260da0b7cd748e53db13f.tar.gz hax-minetest-server-62c10e3d0855fa14fdc260da0b7cd748e53db13f.zip |
Disable fall damage when "immortal" group set (#6946)
Diffstat (limited to 'src/clientenvironment.cpp')
-rw-r--r-- | src/clientenvironment.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/clientenvironment.cpp b/src/clientenvironment.cpp index af00586c5..8de073258 100644 --- a/src/clientenvironment.cpp +++ b/src/clientenvironment.cpp @@ -32,6 +32,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "raycast.h" #include "voxelalgorithms.h" #include "settings.h" +#include "content_cao.h" #include <algorithm> #include "client/renderingengine.h" @@ -207,6 +208,8 @@ void ClientEnvironment::step(float dtime) //std::cout<<"Looped "<<loopcount<<" times."<<std::endl; + bool player_immortal = lplayer->getCAO() && lplayer->getCAO()->isImmortal(); + for (const CollisionInfo &info : player_collisions) { v3f speed_diff = info.new_speed - info.old_speed;; // Handle only fall damage @@ -227,7 +230,7 @@ void ClientEnvironment::step(float dtime) pre_factor = 1.0 + (float)addp/100.0; } float speed = pre_factor * speed_diff.getLength(); - if (speed > tolerance) { + if (speed > tolerance && !player_immortal) { f32 damage_f = (speed - tolerance) / BS * post_factor; u8 damage = (u8)MYMIN(damage_f + 0.5, 255); if (damage != 0) { |