Fix upright_sprite lighting when colors are set
authorsfan5 <sfan5@live.de>
Sun, 6 Oct 2019 11:45:31 +0000 (13:45 +0200)
committersfan5 <sfan5@live.de>
Sun, 6 Oct 2019 15:19:42 +0000 (17:19 +0200)
fixes #9020

src/client/content_cao.cpp

index 934f4354eb7e8066091d639b0cf9c6c2a4fa51ca..a15c1cc0ba6b57cdf3ad3d7850a0df4b7e259bf5 100644 (file)
@@ -1264,18 +1264,19 @@ void GenericCAO::updateTextures(std::string mod)
                                        buf->getMaterial().AmbientColor = m_prop.colors[1];
                                        buf->getMaterial().DiffuseColor = m_prop.colors[1];
                                        buf->getMaterial().SpecularColor = m_prop.colors[1];
-                                       setMeshColor(mesh, m_prop.colors[1]);
                                } else if (!m_prop.colors.empty()) {
                                        buf->getMaterial().AmbientColor = m_prop.colors[0];
                                        buf->getMaterial().DiffuseColor = m_prop.colors[0];
                                        buf->getMaterial().SpecularColor = m_prop.colors[0];
-                                       setMeshColor(mesh, m_prop.colors[0]);
                                }
 
                                buf->getMaterial().setFlag(video::EMF_TRILINEAR_FILTER, use_trilinear_filter);
                                buf->getMaterial().setFlag(video::EMF_BILINEAR_FILTER, use_bilinear_filter);
                                buf->getMaterial().setFlag(video::EMF_ANISOTROPIC_FILTER, use_anisotropic_filter);
                        }
+                       // Set mesh color (only if lighting is disabled)
+                       if (!m_prop.colors.empty() && m_glow < 0)
+                               setMeshColor(mesh, m_prop.colors[0]);
                }
        }
 }