diff --git a/code/controllers/Processes/planet.dm b/code/controllers/Processes/planet.dm index 2629bc1d89..7b446b4d2d 100644 --- a/code/controllers/Processes/planet.dm +++ b/code/controllers/Processes/planet.dm @@ -2,6 +2,7 @@ var/datum/controller/process/planet/planet_controller = null /datum/controller/process/planet var/list/planets = list() + var/list/z_to_planet = list() /datum/controller/process/planet/setup() name = "planet controller" @@ -30,6 +31,12 @@ var/datum/controller/process/planet/planet_controller = null break planetary_walls.Cut() +/datum/controller/process/planet/proc/unallocateTurf(var/turf/T) + for(var/planet in planets) + var/datum/planet/P = planet + if(T.z in P.expected_z_levels) + P.planet_floors -= T + /datum/controller/process/planet/doWork() if(outdoor_turfs.len || planetary_walls.len) allocateTurfs() diff --git a/code/game/turfs/simulated/outdoors/outdoors.dm b/code/game/turfs/simulated/outdoors/outdoors.dm index 68e83f7d7f..75c7e68083 100644 --- a/code/game/turfs/simulated/outdoors/outdoors.dm +++ b/code/game/turfs/simulated/outdoors/outdoors.dm @@ -31,7 +31,7 @@ var/list/outdoor_turfs = list() /turf/simulated/floor/Destroy() if(outdoors) - outdoor_turfs.Remove(src) + planet_controller.unallocateTurf(src) ..() /turf/simulated/proc/update_icon_edge()