]> git.lizzy.rs Git - minetest.git/blobdiff - src/client/camera.h
content_cao: Fix behavior of legacy "textures" field for wielditems
[minetest.git] / src / client / camera.h
index 6ec37fe103e7a5a2349d4c0cec854e15382c7499..3a59637bcd2de0101318f4263f8b3ff2cf91e1a4 100644 (file)
@@ -112,6 +112,9 @@ class Camera
                return MYMAX(m_fov_x, m_fov_y);
        }
 
+       // Notify about new server-sent FOV and initialize smooth FOV transition
+       void notifyFovChange();
+
        // Checks if the constructor was able to create the scene nodes
        bool successfullyCreated(std::string &error_message);
 
@@ -186,6 +189,9 @@ class Camera
 
        Client *m_client;
 
+       // Default Client FOV (as defined by the "fov" setting)
+       f32 m_cache_fov;
+
        // Absolute camera position
        v3f m_camera_position;
        // Absolute camera direction
@@ -193,6 +199,14 @@ class Camera
        // Camera offset
        v3s16 m_camera_offset;
 
+       // Server-sent FOV variables
+       bool m_server_sent_fov = false;
+       f32 m_curr_fov_degrees, m_old_fov_degrees, m_target_fov_degrees;
+
+       // FOV transition variables
+       bool m_fov_transition_active = false;
+       f32 m_fov_diff, m_transition_time;
+
        v2f m_wieldmesh_offset = v2f(55.0f, -35.0f);
        v2f m_arm_dir;
        v2f m_cam_vel;
@@ -230,7 +244,6 @@ class Camera
 
        f32 m_cache_fall_bobbing_amount;
        f32 m_cache_view_bobbing_amount;
-       f32 m_cache_fov;
        bool m_arm_inertia;
 
        std::list<Nametag *> m_nametags;