]> git.lizzy.rs Git - minetest.git/commitdiff
Don't evaluate things many times
authornumzero <numzer0@yandex.ru>
Sun, 22 Nov 2020 13:43:38 +0000 (16:43 +0300)
committerlhofhansl <larsh@apache.org>
Thu, 26 Nov 2020 20:49:10 +0000 (12:49 -0800)
src/client/clouds.cpp

index ccc94cc88283b768b7494d1eae9a2115c71fae7f..253dee8b9f28330304aacb63cb8109efe94b924a 100644 (file)
@@ -341,14 +341,13 @@ void Clouds::step(float dtime)
 
 void Clouds::update(const v3f &camera_p, const video::SColorf &color_diffuse)
 {
+       video::SColorf ambient(m_params.color_ambient);
+       video::SColorf bright(m_params.color_bright);
        m_camera_pos = camera_p;
-       m_color.r = MYMIN(MYMAX(color_diffuse.r * m_params.color_bright.getRed(),
-                       m_params.color_ambient.getRed()), 255) / 255.0f;
-       m_color.g = MYMIN(MYMAX(color_diffuse.g * m_params.color_bright.getGreen(),
-                       m_params.color_ambient.getGreen()), 255) / 255.0f;
-       m_color.b = MYMIN(MYMAX(color_diffuse.b * m_params.color_bright.getBlue(),
-                       m_params.color_ambient.getBlue()), 255) / 255.0f;
-       m_color.a = m_params.color_bright.getAlpha() / 255.0f;
+       m_color.r = core::clamp(color_diffuse.r * bright.r, ambient.r, 1.0f);
+       m_color.g = core::clamp(color_diffuse.g * bright.g, ambient.g, 1.0f);
+       m_color.b = core::clamp(color_diffuse.b * bright.b, ambient.b, 1.0f);
+       m_color.a = bright.a;
 
        // is the camera inside the cloud mesh?
        m_camera_inside_cloud = false; // default