diff --git a/plugins/rendermax/renderer_light.cpp b/plugins/rendermax/renderer_light.cpp index 65d54e3e7..dd138e04d 100644 --- a/plugins/rendermax/renderer_light.cpp +++ b/plugins/rendermax/renderer_light.cpp @@ -271,15 +271,15 @@ void lightingEngineViewscreen::doOcupancyAndLights() { if(bld->mat_type == 3)//green glass { - curCell=lightCell(0.1f,0.9f,0.5f); + curCell*=lightCell(0.1f,0.9f,0.5f); } else if(bld->mat_type == 4)//clear glass { - curCell=lightCell(0.5f,0.95f,0.9f); + curCell*=lightCell(0.5f,0.95f,0.9f); } else if(bld->mat_type == 5)//crystal glass { - curCell=lightCell(0.75f,0.95f,0.95f); + curCell*=lightCell(0.75f,0.95f,0.95f); } } } diff --git a/plugins/rendermax/renderer_opengl.hpp b/plugins/rendermax/renderer_opengl.hpp index b7529284f..14de2441a 100644 --- a/plugins/rendermax/renderer_opengl.hpp +++ b/plugins/rendermax/renderer_opengl.hpp @@ -199,6 +199,17 @@ struct lightCell { return lightCell(r*val,g*val,b*val); } + lightCell operator*(lightCell cell) + { + return lightCell(r*cell.r,g*cell.g,b*cell.b); + } + lightCell operator*=(lightCell cell) + { + r*=cell.r; + g*=cell.g; + b*=cell.b; + return lightCell(r,g,b); + } lightCell operator+(const lightCell& other) { return lightCell(r+other.r,g+other.g,b+other.b);