Fix non-smooth non-shader node shading (Fixes #1436, regression by commit a0f78659f31abd)
authorPerttu Ahola <celeron55@gmail.com>
Sun, 6 Jul 2014 18:57:12 +0000 (21:57 +0300)
committerPerttu Ahola <celeron55@gmail.com>
Sun, 6 Jul 2014 19:01:03 +0000 (22:01 +0300)
src/mapblock_mesh.cpp

index 21d431cd1ec984079ac35c0453ede8164d722f2c..22b56a15c1bc3b6f4b1bec306c3056263a8732a8 100644 (file)
@@ -1293,6 +1293,7 @@ bool MapBlockMesh::animate(bool faraway, float time, int crack, u32 daynight_rat
        bool enable_shaders = g_settings->getBool("enable_shaders");
        bool enable_bumpmapping = g_settings->getBool("enable_bumpmapping");
        bool enable_parallax_occlusion = g_settings->getBool("enable_parallax_occlusion");
+       bool smooth_lighting = g_settings->getBool("smooth_lighting");
 
        if(!m_has_animation)
        {
@@ -1406,6 +1407,9 @@ bool MapBlockMesh::animate(bool faraway, float time, int crack, u32 daynight_rat
                                u8 night = j->second.second;
                                finalColorBlend(vertices[vertexIndex].Color,
                                                day, night, daynight_ratio);
+                               // If no smooth lighting, shading is already correct
+                               if(!smooth_lighting)
+                                       continue;
                                // Make sides and bottom darker than the top
                                video::SColor &vc = vertices[vertexIndex].Color;
                                if(vertices[vertexIndex].Normal.Y > 0.5) {