diff --git a/code/controllers/subsystems/planets.dm b/code/controllers/subsystems/planets.dm
index 913658f1c69..a163a3b1e79 100644
--- a/code/controllers/subsystems/planets.dm
+++ b/code/controllers/subsystems/planets.dm
@@ -63,7 +63,7 @@ SUBSYSTEM_DEF(planets)
while(currentlist.len)
var/turf/simulated/OT = currentlist[currentlist.len]
currentlist.len--
- if(istype(OT) && z_to_planet.len >= OT.z && z_to_planet[OT.z])
+ if(istype(OT) && OT.outdoors && z_to_planet.len >= OT.z && z_to_planet[OT.z])
var/datum/planet/P = z_to_planet[OT.z]
P.planet_floors |= OT
OT.vis_contents |= P.weather_holder.visuals
diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm
index 58aa30547dc..d9543fed201 100644
--- a/code/game/objects/items/weapons/RCD.dm
+++ b/code/game/objects/items/weapons/RCD.dm
@@ -153,7 +153,7 @@
return 0
if(build_turf)
- T.ChangeTurf(build_turf)
+ T.ChangeTurf(build_turf, preserve_outdoors = TRUE)
else if(build_other)
new build_other(T)
else
diff --git a/code/game/turfs/simulated/floor_attackby.dm b/code/game/turfs/simulated/floor_attackby.dm
index fca7a69a666..57d51dbaeac 100644
--- a/code/game/turfs/simulated/floor_attackby.dm
+++ b/code/game/turfs/simulated/floor_attackby.dm
@@ -33,7 +33,7 @@
if(R.use(1)) // Cost of roofing tiles is 1:1 with cost to place lattice and plating
T.ReplaceWithLattice()
- T.ChangeTurf(/turf/simulated/floor)
+ T.ChangeTurf(/turf/simulated/floor, preserve_outdoors = TRUE)
playsound(src, 'sound/weapons/Genhit.ogg', 50, 1)
user.visible_message("[user] patches a hole in the ceiling.", "You patch a hole in the ceiling.")
expended_tile = TRUE
@@ -156,4 +156,4 @@
return
if(flooring)
return
- attackby(T, user)
+ attackby(T, user)
\ No newline at end of file
diff --git a/code/game/turfs/simulated/wall_attacks.dm b/code/game/turfs/simulated/wall_attacks.dm
index 1f1dfbf36ca..73a56e89495 100644
--- a/code/game/turfs/simulated/wall_attacks.dm
+++ b/code/game/turfs/simulated/wall_attacks.dm
@@ -160,7 +160,7 @@
if(istype(T, /turf/simulated/open) || istype(T, /turf/space))
if(R.use(1)) // Cost of roofing tiles is 1:1 with cost to place lattice and plating
T.ReplaceWithLattice()
- T.ChangeTurf(/turf/simulated/floor)
+ T.ChangeTurf(/turf/simulated/floor, preserve_outdoors = TRUE)
playsound(src, 'sound/weapons/Genhit.ogg', 50, 1)
user.visible_message("[user] patches a hole in the ceiling.", "You patch a hole in the ceiling.")
expended_tile = TRUE
diff --git a/code/game/turfs/turf_changing.dm b/code/game/turfs/turf_changing.dm
index 1d776866612..3b5a797c0a0 100644
--- a/code/game/turfs/turf_changing.dm
+++ b/code/game/turfs/turf_changing.dm
@@ -22,17 +22,15 @@
below.update_icon() // To add or remove the 'ceiling-less' overlay.
//Creates a new turf
-/turf/proc/ChangeTurf(var/turf/N, var/tell_universe=1, var/force_lighting_update = 0)
+/turf/proc/ChangeTurf(var/turf/N, var/tell_universe=1, var/force_lighting_update = 0, var/preserve_outdoors = FALSE)
if (!N)
return
- /* VOREStation Edit Start - Say Nope To This. Tether's Z info is setup fine, trust it.
// 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) && (air_master.has_valid_zone(below) || air_master.has_valid_zone(src)))
N = /turf/simulated/open
- */ // VOREStation Edit End
var/obj/fire/old_fire = fire
var/old_opacity = opacity
@@ -109,4 +107,6 @@
lighting_build_overlay()
else
lighting_clear_overlay()
- outdoors = old_outdoors
\ No newline at end of file
+
+ if(preserve_outdoors)
+ outdoors = old_outdoors
\ No newline at end of file