Make Camera::updateViewingRange more snappy in following the min/max settings
authorPerttu Ahola <celeron55@gmail.com>
Sat, 10 Mar 2012 16:03:40 +0000 (18:03 +0200)
committerPerttu Ahola <celeron55@gmail.com>
Sat, 10 Mar 2012 16:03:40 +0000 (18:03 +0200)
src/camera.cpp

index 83b7ccd34e50ac582adade2f4981a76c5a35995e..041dd9de51bfd26f38eb7fba6474dc32a6c470a0 100644 (file)
@@ -366,6 +366,16 @@ void Camera::updateViewingRange(f32 frametime_in)
 
        f32 viewing_range_max = g_settings->getS16("viewing_range_nodes_max");
        viewing_range_max = MYMAX(viewing_range_min, viewing_range_max);
+       
+       // Immediately apply hard limits
+       if(m_draw_control.wanted_range < viewing_range_min)
+               m_draw_control.wanted_range = viewing_range_min;
+       if(m_draw_control.wanted_range > viewing_range_max)
+               m_draw_control.wanted_range = viewing_range_max;
+
+       // Just so big a value that everything rendered is visible
+       // Some more allowance than viewing_range_max * BS because of active objects etc.
+       m_cameranode->setFarValue(viewing_range_max * BS * 10);
 
        f32 wanted_fps = g_settings->getFloat("wanted_fps");
        wanted_fps = MYMAX(wanted_fps, 1.0);
@@ -458,11 +468,6 @@ void Camera::updateViewingRange(f32 frametime_in)
 
        m_range_old = new_range;
        m_frametime_old = frametime;
-
-       // Just so big a value that everything rendered is visible
-       // Some more allowance than viewing_range_max * BS because of active objects etc.
-       m_cameranode->setFarValue(viewing_range_max * BS * 10);
-
 }
 
 void Camera::setDigging(s32 button)