diff --git a/code/game/turfs/turf_changing.dm b/code/game/turfs/turf_changing.dm index b3421ff9ca6..3bb4dfe4640 100644 --- a/code/game/turfs/turf_changing.dm +++ b/code/game/turfs/turf_changing.dm @@ -24,7 +24,7 @@ // This makes sure that turfs are not changed to space when one side is part of a zone if(N == /turf/space) var/turf/below = GetBelow(src) - if(istype(below) && !istype(below,/turf/space)) + if(istype(below)) N = /turf/simulated/open var/old_air = air diff --git a/code/modules/multiz/turf.dm b/code/modules/multiz/turf.dm index 0df38f66741..2716a87a7a2 100644 --- a/code/modules/multiz/turf.dm +++ b/code/modules/multiz/turf.dm @@ -106,3 +106,21 @@ //Most things use is_plating to test if there is a cover tile on top (like regular floors) /turf/simulated/open/is_plating() return 1 + +// This is for handling light on open turfs above space turfs +/turf/simulated/open/update_mimic() + . = ..() + if(!.) + return + var/turf/T = GetBelow(src) + if(!istype(T)) + return + + if(T.dynamic_lighting) + dynamic_lighting = TRUE + shadower?.color = initial(shadower.color) + lighting_build_overlay() + else + dynamic_lighting = FALSE + shadower?.color = "#00000032" + lighting_clear_overlay() diff --git a/code/modules/multiz/zmimic/mimic_turf.dm b/code/modules/multiz/zmimic/mimic_turf.dm index 5dc53daada4..0e842560602 100644 --- a/code/modules/multiz/zmimic/mimic_turf.dm +++ b/code/modules/multiz/zmimic/mimic_turf.dm @@ -31,10 +31,11 @@ /turf/proc/update_mimic() if (!(z_flags & ZM_MIMIC_BELOW)) - return + return FALSE z_queued += 1 SSzcopy.queued_turfs += src + return TRUE /// Enables Z-mimic for a turf that didn't already have it enabled. /turf/proc/enable_zmimic(additional_flags = 0)