Skip to content

Commit fca4db4

Browse files
authoredNov 10, 2020
ObjectRef: Re-add legacy code for set_physics_override (#10585)
These arguments are used at least by MTG beds and homedecor_common. A deprecation warning is shown to safely remove it in a future release.
1 parent 97aefe9 commit fca4db4

File tree

1 file changed

+28
-14
lines changed

1 file changed

+28
-14
lines changed
 

Diff for: ‎src/script/lua_api/l_object.cpp

+28-14
Original file line numberDiff line numberDiff line change
@@ -1413,20 +1413,34 @@ int ObjectRef::l_set_physics_override(lua_State *L)
14131413
if (playersao == nullptr)
14141414
return 0;
14151415

1416-
luaL_checktype(L, 2, LUA_TTABLE);
1417-
playersao->m_physics_override_speed = getfloatfield_default(
1418-
L, 2, "speed", playersao->m_physics_override_speed);
1419-
playersao->m_physics_override_jump = getfloatfield_default(
1420-
L, 2, "jump", playersao->m_physics_override_jump);
1421-
playersao->m_physics_override_gravity = getfloatfield_default(
1422-
L, 2, "gravity", playersao->m_physics_override_gravity);
1423-
playersao->m_physics_override_sneak = getboolfield_default(
1424-
L, 2, "sneak", playersao->m_physics_override_sneak);
1425-
playersao->m_physics_override_sneak_glitch = getboolfield_default(
1426-
L, 2, "sneak_glitch", playersao->m_physics_override_sneak_glitch);
1427-
playersao->m_physics_override_new_move = getboolfield_default(
1428-
L, 2, "new_move", playersao->m_physics_override_new_move);
1429-
playersao->m_physics_override_sent = false;
1416+
if (lua_istable(L, 2)) {
1417+
bool modified = false;
1418+
modified |= getfloatfield(L, 2, "speed", playersao->m_physics_override_speed);
1419+
modified |= getfloatfield(L, 2, "jump", playersao->m_physics_override_jump);
1420+
modified |= getfloatfield(L, 2, "gravity", playersao->m_physics_override_gravity);
1421+
modified |= getboolfield(L, 2, "sneak", playersao->m_physics_override_sneak);
1422+
modified |= getboolfield(L, 2, "sneak_glitch", playersao->m_physics_override_sneak_glitch);
1423+
modified |= getboolfield(L, 2, "new_move", playersao->m_physics_override_new_move);
1424+
if (modified)
1425+
playersao->m_physics_override_sent = false;
1426+
} else {
1427+
// old, non-table format
1428+
// TODO: Remove this code after version 5.4.0
1429+
log_deprecated(L, "Deprecated use of set_physics_override(num, num, num)");
1430+
1431+
if (!lua_isnil(L, 2)) {
1432+
playersao->m_physics_override_speed = lua_tonumber(L, 2);
1433+
playersao->m_physics_override_sent = false;
1434+
}
1435+
if (!lua_isnil(L, 3)) {
1436+
playersao->m_physics_override_jump = lua_tonumber(L, 3);
1437+
playersao->m_physics_override_sent = false;
1438+
}
1439+
if (!lua_isnil(L, 4)) {
1440+
playersao->m_physics_override_gravity = lua_tonumber(L, 4);
1441+
playersao->m_physics_override_sent = false;
1442+
}
1443+
}
14301444
return 0;
14311445
}
14321446

0 commit comments

Comments
 (0)
Please sign in to comment.