diff --git a/plugins/rendermax/renderer_light.cpp b/plugins/rendermax/renderer_light.cpp index 0ca4cadad..5dcc47dca 100644 --- a/plugins/rendermax/renderer_light.cpp +++ b/plugins/rendermax/renderer_light.cpp @@ -895,8 +895,6 @@ void lightingEngineViewscreen::doOcupancyAndLights() buildingLightDef* def=getBuilding(bld); if(!def) continue; - if(def->poweredOnly && bld->isUnpowered()) - continue; if(type==df::enums::building_type::Door) { df::building_doorst* door=static_cast(bld); @@ -909,13 +907,16 @@ void lightingEngineViewscreen::doOcupancyAndLights() { matLightDef* mat=getMaterial(bld->mat_type,bld->mat_index); if(!mat)mat=&matWall; - if(def->light.isEmiting) - { - addLight(tile,def->light.makeSource(def->size)); - } - else if(mat->isEmiting) + if(!def->poweredOnly || !bld->isUnpowered()) //not powered. Add occlusion only. { - addLight(tile,mat->makeSource(def->size)); + if(def->light.isEmiting) + { + addLight(tile,def->light.makeSource(def->size)); + } + else if(mat->isEmiting) + { + addLight(tile,mat->makeSource(def->size)); + } } if(def->light.isTransparent) { @@ -928,7 +929,10 @@ void lightingEngineViewscreen::doOcupancyAndLights() } else { - applyMaterial(tile,def->light,def->size,def->thickness); + if(!def->poweredOnly || !bld->isUnpowered())//not powered. Add occlusion only. + addOclusion(tile,def->light.transparency,def->size); + else + applyMaterial(tile,def->light,def->size,def->thickness); } } }