mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
FOV: Raise lower limit to avoid zoom-loading of distant world (#7234)
In the client, raise lower limit from 30 to 45 degrees, to avoid server seeing this as a zoom and loading world beyond the server-set limit. Add minimum in settingtypes.txt and enforce lower limit when set using minetest.conf. In the server, distrust the client-sent FOV if below the heuristic zoom threshold and use the player object property 'zoom_fov' to check it, to protect against hacked clients.
This commit is contained in:
parent
326eeca306
commit
28813702d6
5 changed files with 33 additions and 7 deletions
|
@ -71,7 +71,9 @@ Camera::Camera(MapDrawControl &draw_control, Client *client):
|
|||
*/
|
||||
m_cache_fall_bobbing_amount = g_settings->getFloat("fall_bobbing_amount");
|
||||
m_cache_view_bobbing_amount = g_settings->getFloat("view_bobbing_amount");
|
||||
m_cache_fov = g_settings->getFloat("fov");
|
||||
// 45 degrees is the lowest FOV that doesn't cause the server to treat this
|
||||
// as a zoom FOV and load world beyond the set server limits.
|
||||
m_cache_fov = std::fmax(g_settings->getFloat("fov"), 45.0f);
|
||||
m_arm_inertia = g_settings->getBool("arm_inertia");
|
||||
m_nametags.clear();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue