diff --git a/code/game/dna.dm b/code/game/dna.dm index 86357542466..98586486e0c 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -451,14 +451,10 @@ || locate(/obj/machinery/computer/cloning, get_step(src, EAST)) \ || locate(/obj/machinery/computer/cloning, get_step(src, WEST))) - if(!occupant.key && occupant.mind) - for(var/mob/dead/observer/ghost in player_list) - if(ghost.mind == occupant.mind) - if(ghost.can_reenter_corpse) - ghost << "Your corpse has been placed into a cloning scanner. Return to your body if you want to be cloned! (Verbs -> Ghost -> Re-enter corpse)" - ghost << sound('sound/effects/genetics.ogg') - break - + var/mob/dead/observer/ghost = occupant.get_ghost() + if(ghost) + ghost << "Your corpse has been placed into a cloning scanner. Return to your body if you want to be cloned! (Verbs -> Ghost -> Re-enter corpse)" + ghost << sound('sound/effects/genetics.ogg') return 1 /obj/machinery/dna_scannernew/proc/open(mob/user) diff --git a/code/modules/mob/living/simple_animal/friendly/drone.dm b/code/modules/mob/living/simple_animal/friendly/drone.dm index 030ee9ca5b0..a0cb9eafb9b 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone.dm @@ -78,7 +78,7 @@ switch(d_input) if("Reactivate") var/mob/dead/observer/G = get_ghost() - if(!client && !G) + if(!client && (!G || !G.client)) var/list/faux_gadgets = list("hypertext inflator","failsafe directory","DRM switch","stack initializer",\ "anti-freeze capacitor","data stream diode","TCP bottleneck","supercharged I/O bolt",\ "tradewind stablizer","radiated XML cable","registry fluid tank","open-source debunker") diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 918437895bb..e26a681c46a 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -882,7 +882,7 @@ var/list/slot_equipment_priority = list( \ /mob/proc/get_ghost(even_if_they_cant_reenter = 0) if(mind) - for(var/mob/dead/observer/G in player_list) + for(var/mob/dead/observer/G in dead_mob_list) if(G.mind == mind) if(G.can_reenter_corpse || even_if_they_cant_reenter) return G