aboutsummaryrefslogtreecommitdiff
path: root/src/script/lua_api
diff options
context:
space:
mode:
authorSmallJoker <SmallJoker@users.noreply.github.com>2022-08-12 11:17:02 +0200
committerGitHub <noreply@github.com>2022-08-12 10:17:02 +0100
commitc8ee755c05ca4410b9b1e816a9244b3cf303d3fe (patch)
tree25a898cc692ba6a996f32d8248dde153847cd539 /src/script/lua_api
parentdf1d215f4823b82f704b06eae0179c5e6c6b97af (diff)
downloadminetest-c8ee755c05ca4410b9b1e816a9244b3cf303d3fe.tar.xz
Physics overrides: Move values to a common struct (#12591)
Co-authored-by: sfan5 <sfan5@live.de>
Diffstat (limited to 'src/script/lua_api')
-rw-r--r--src/script/lua_api/l_localplayer.cpp13
-rw-r--r--src/script/lua_api/l_object.cpp38
2 files changed, 28 insertions, 23 deletions
diff --git a/src/script/lua_api/l_localplayer.cpp b/src/script/lua_api/l_localplayer.cpp
index 2efb976c7..1066beed1 100644
--- a/src/script/lua_api/l_localplayer.cpp
+++ b/src/script/lua_api/l_localplayer.cpp
@@ -157,23 +157,24 @@ int LuaLocalPlayer::l_get_physics_override(lua_State *L)
{
LocalPlayer *player = getobject(L, 1);
+ const auto &phys = player->physics_override;
lua_newtable(L);
- lua_pushnumber(L, player->physics_override_speed);
+ lua_pushnumber(L, phys.speed);
lua_setfield(L, -2, "speed");
- lua_pushnumber(L, player->physics_override_jump);
+ lua_pushnumber(L, phys.jump);
lua_setfield(L, -2, "jump");
- lua_pushnumber(L, player->physics_override_gravity);
+ lua_pushnumber(L, phys.gravity);
lua_setfield(L, -2, "gravity");
- lua_pushboolean(L, player->physics_override_sneak);
+ lua_pushboolean(L, phys.sneak);
lua_setfield(L, -2, "sneak");
- lua_pushboolean(L, player->physics_override_sneak_glitch);
+ lua_pushboolean(L, phys.sneak_glitch);
lua_setfield(L, -2, "sneak_glitch");
- lua_pushboolean(L, player->physics_override_new_move);
+ lua_pushboolean(L, phys.new_move);
lua_setfield(L, -2, "new_move");
return 1;
diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp
index d6498bfa8..a9d4920de 100644
--- a/src/script/lua_api/l_object.cpp
+++ b/src/script/lua_api/l_object.cpp
@@ -1434,14 +1434,17 @@ int ObjectRef::l_set_physics_override(lua_State *L)
if (playersao == nullptr)
return 0;
+ RemotePlayer *player = playersao->getPlayer();
+ auto &phys = player->physics_override;
+
if (lua_istable(L, 2)) {
bool modified = false;
- modified |= getfloatfield(L, 2, "speed", playersao->m_physics_override_speed);
- modified |= getfloatfield(L, 2, "jump", playersao->m_physics_override_jump);
- modified |= getfloatfield(L, 2, "gravity", playersao->m_physics_override_gravity);
- modified |= getboolfield(L, 2, "sneak", playersao->m_physics_override_sneak);
- modified |= getboolfield(L, 2, "sneak_glitch", playersao->m_physics_override_sneak_glitch);
- modified |= getboolfield(L, 2, "new_move", playersao->m_physics_override_new_move);
+ modified |= getfloatfield(L, 2, "speed", phys.speed);
+ modified |= getfloatfield(L, 2, "jump", phys.jump);
+ modified |= getfloatfield(L, 2, "gravity", phys.gravity);
+ modified |= getboolfield(L, 2, "sneak", phys.sneak);
+ modified |= getboolfield(L, 2, "sneak_glitch", phys.sneak_glitch);
+ modified |= getboolfield(L, 2, "new_move", phys.new_move);
if (modified)
playersao->m_physics_override_sent = false;
} else {
@@ -1450,15 +1453,15 @@ int ObjectRef::l_set_physics_override(lua_State *L)
log_deprecated(L, "Deprecated use of set_physics_override(num, num, num)");
if (!lua_isnil(L, 2)) {
- playersao->m_physics_override_speed = lua_tonumber(L, 2);
+ phys.speed = lua_tonumber(L, 2);
playersao->m_physics_override_sent = false;
}
if (!lua_isnil(L, 3)) {
- playersao->m_physics_override_jump = lua_tonumber(L, 3);
+ phys.jump = lua_tonumber(L, 3);
playersao->m_physics_override_sent = false;
}
if (!lua_isnil(L, 4)) {
- playersao->m_physics_override_gravity = lua_tonumber(L, 4);
+ phys.gravity = lua_tonumber(L, 4);
playersao->m_physics_override_sent = false;
}
}
@@ -1470,22 +1473,23 @@ int ObjectRef::l_get_physics_override(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- PlayerSAO *playersao = getplayersao(ref);
- if (playersao == nullptr)
+ RemotePlayer *player = getplayer(ref);
+ if (player == nullptr)
return 0;
+ const auto &phys = player->physics_override;
lua_newtable(L);
- lua_pushnumber(L, playersao->m_physics_override_speed);
+ lua_pushnumber(L, phys.speed);
lua_setfield(L, -2, "speed");
- lua_pushnumber(L, playersao->m_physics_override_jump);
+ lua_pushnumber(L, phys.jump);
lua_setfield(L, -2, "jump");
- lua_pushnumber(L, playersao->m_physics_override_gravity);
+ lua_pushnumber(L, phys.gravity);
lua_setfield(L, -2, "gravity");
- lua_pushboolean(L, playersao->m_physics_override_sneak);
+ lua_pushboolean(L, phys.sneak);
lua_setfield(L, -2, "sneak");
- lua_pushboolean(L, playersao->m_physics_override_sneak_glitch);
+ lua_pushboolean(L, phys.sneak_glitch);
lua_setfield(L, -2, "sneak_glitch");
- lua_pushboolean(L, playersao->m_physics_override_new_move);
+ lua_pushboolean(L, phys.new_move);
lua_setfield(L, -2, "new_move");
return 1;
}