diff --git a/code/modules/lighting/light_source.dm b/code/modules/lighting/light_source.dm index 808f4d1dc3a..da60e939987 100644 --- a/code/modules/lighting/light_source.dm +++ b/code/modules/lighting/light_source.dm @@ -195,6 +195,11 @@ effect_str.Cut() effect_turf.Cut() + +/datum/light_source/proc/forget_turf(turf/T) + var/idx = effect_turf.Find(T) + effect_turf.Cut(idx, idx + 1) + effect_str.Cut(idx, idx + 1) //Smartly updates the lighting, only removes lum from and adds lum to turfs that actually got changed. //This is for lights that need to reconsider due to nearby opacity changes. diff --git a/code/modules/lighting/lighting_turf.dm b/code/modules/lighting/lighting_turf.dm index 65396def7e9..53d9ab0455c 100644 --- a/code/modules/lighting/lighting_turf.dm +++ b/code/modules/lighting/lighting_turf.dm @@ -18,3 +18,9 @@ if(A.lighting_use_dynamic) var/atom/movable/lighting_overlay/O = new(src) lighting_overlay = O + // forcibly refresh lighting on this tile + // must make light forget tile or it wil remain + // convinced that it is already lighting it + for(var/datum/light_source/L in affecting_lights) + L.forget_turf(src) + L.vis_update() \ No newline at end of file