From 8dacd3784df8ab38255491a51fbeaa1270964478 Mon Sep 17 00:00:00 2001 From: Kyep Date: Wed, 1 Feb 2017 01:14:27 -0800 Subject: [PATCH] Fixes #6030 - cloner autocloning people who have ghosted/cryoed --- code/game/machinery/computer/cloning.dm | 7 +++++++ code/modules/mob/dead/observer/observer.dm | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 0d47420edc9..826bc04beea 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -1,3 +1,5 @@ +var/list/clonecomputers = list() + /obj/machinery/computer/cloning name = "cloning console" icon = 'icons/obj/computer.dmi' @@ -26,8 +28,13 @@ ..() updatemodules() +/obj/machinery/computer/cloning/New() + ..() + clonecomputers += src + /obj/machinery/computer/cloning/Destroy() releasecloner() + clonecomputers -= src return ..() /obj/machinery/computer/cloning/process() diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index db6ef63ad22..756a13765fe 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -174,6 +174,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(response != "Ghost") return //didn't want to ghost after-all resting = 1 + for(var/obj/machinery/computer/cloning/cloner in clonecomputers) + for(var/datum/dna2/record/R in cloner.records) + if(R.ckey == ckey) + cloner.records.Remove(R) var/mob/dead/observer/ghost = ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 ghost.timeofdeath = world.time // Because the living mob won't have a time of death and we want the respawn timer to work properly. var/obj/structure/morgue/Morgue = locate() in M.loc