diff options
author | Beha <shacknetisp@mail.com> | 2019-07-30 11:29:45 -0400 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2019-07-30 17:29:45 +0200 |
commit | b8aaef704d3e29c43edc3312a3c5e25516d9c864 (patch) | |
tree | 9640e90c11c60982c0c2655c9a5f16864d649744 /src/script/lua_api/l_object.cpp | |
parent | 2dd645134eaab7611d167e2cb8469242e642c7ef (diff) | |
download | minetest-b8aaef704d3e29c43edc3312a3c5e25516d9c864.tar.gz minetest-b8aaef704d3e29c43edc3312a3c5e25516d9c864.tar.bz2 minetest-b8aaef704d3e29c43edc3312a3c5e25516d9c864.zip |
Move the clamping of hp/breath when their maximums change to read_object_properties(). (#8689)
This prevents set_properties() calls that have nothing to do with hp_max or breath_max overriding the saved hp before another mod has the chance to set a player's intended hp_max (such as in on_joinplayer).
Diffstat (limited to 'src/script/lua_api/l_object.cpp')
-rw-r--r-- | src/script/lua_api/l_object.cpp | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index 7ff1f58bc..ad8554834 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -757,20 +757,7 @@ int ObjectRef::l_set_properties(lua_State *L) if (!prop) return 0; - read_object_properties(L, 2, prop, getServer(L)->idef()); - - PlayerSAO *player = getplayersao(ref); - - if (prop->hp_max < co->getHP()) { - PlayerHPChangeReason reason(PlayerHPChangeReason::SET_HP); - co->setHP(prop->hp_max, reason); - if (player) - getServer(L)->SendPlayerHPOrDie(player, reason); - } - - if (player && prop->breath_max < player->getBreath()) - player->setBreath(prop->breath_max); - + read_object_properties(L, 2, co, prop, getServer(L)->idef()); co->notifyObjectPropertiesModified(); return 0; } |