1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Use a table in set_physics_override()

This commit is contained in:
PilzAdam 2013-12-03 22:26:40 +01:00
parent 15be2659ea
commit e51ad5337f
2 changed files with 27 additions and 23 deletions

View file

@ -357,25 +357,27 @@ int ObjectRef::l_set_physics_override(lua_State *L)
PlayerSAO *co = (PlayerSAO *) getobject(ref);
if(co == NULL) return 0;
// Do it
if(!lua_isnil(L, 2)){
co->m_physics_override_speed = lua_tonumber(L, 2);
co->m_physics_override_sent = false;
}
if(!lua_isnil(L, 3)){
co->m_physics_override_jump = lua_tonumber(L, 3);
co->m_physics_override_sent = false;
}
if(!lua_isnil(L, 4)){
co->m_physics_override_gravity = lua_tonumber(L, 4);
co->m_physics_override_sent = false;
}
if (lua_isboolean(L, 5)) {
co->m_physics_override_sneak = lua_toboolean(L, 5);
co->m_physics_override_sent = false;
}
if (lua_isboolean(L, 6)) {
co->m_physics_override_sneak_glitch = lua_toboolean(L, 6);
if (lua_istable(L, 2)) {
co->m_physics_override_speed = getfloatfield_default(L, 2, "speed", co->m_physics_override_speed);
co->m_physics_override_jump = getfloatfield_default(L, 2, "jump", co->m_physics_override_jump);
co->m_physics_override_gravity = getfloatfield_default(L, 2, "gravity", co->m_physics_override_gravity);
co->m_physics_override_sneak = getboolfield_default(L, 2, "sneak", co->m_physics_override_sneak);
co->m_physics_override_sneak_glitch = getboolfield_default(L, 2, "sneak_glitch", co->m_physics_override_sneak_glitch);
co->m_physics_override_sent = false;
} else {
// old, non-table format
if(!lua_isnil(L, 2)){
co->m_physics_override_speed = lua_tonumber(L, 2);
co->m_physics_override_sent = false;
}
if(!lua_isnil(L, 3)){
co->m_physics_override_jump = lua_tonumber(L, 3);
co->m_physics_override_sent = false;
}
if(!lua_isnil(L, 4)){
co->m_physics_override_gravity = lua_tonumber(L, 4);
co->m_physics_override_sent = false;
}
}
return 0;
}