From c410d1680d8807b157b4500a861fdea6632b8a8b Mon Sep 17 00:00:00 2001 From: phil235 Date: Wed, 23 Sep 2015 23:05:26 +0200 Subject: [PATCH] Fixes brains sharing their dna with another carbon, which causes runtimes when the carbon and its dna is deleted. --- code/modules/mob/living/carbon/brain/MMI.dm | 5 +++-- code/modules/mob/living/carbon/brain/brain_item.dm | 5 +++-- code/modules/mob/living/carbon/brain/posibrain.dm | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm index f615908affe..c762338f038 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/carbon/brain/MMI.dm @@ -91,8 +91,9 @@ brainmob.real_name = L.real_name if(L.has_dna()) var/mob/living/carbon/C = L - brainmob.dna = C.dna - brainmob.dna.holder = brainmob + if(!brainmob.dna) + brainmob.dna = new /datum/dna(brainmob) + C.dna.copy_dna(brainmob.dna) brainmob.container = src if(ishuman(L)) diff --git a/code/modules/mob/living/carbon/brain/brain_item.dm b/code/modules/mob/living/carbon/brain/brain_item.dm index 81c7deec716..b610fd030ff 100644 --- a/code/modules/mob/living/carbon/brain/brain_item.dm +++ b/code/modules/mob/living/carbon/brain/brain_item.dm @@ -58,8 +58,9 @@ brainmob.timeofhostdeath = L.timeofdeath if(L.has_dna()) var/mob/living/carbon/C = L - brainmob.dna = C.dna - brainmob.dna.holder = brainmob + if(!brainmob.dna) + brainmob.dna = new /datum/dna(brainmob) + C.dna.copy_dna(brainmob.dna) if(L.mind) L.mind.transfer_to(brainmob) brainmob << "You feel slightly disoriented. That's normal when you're just a brain." diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index ae7508be604..5796e870ac8 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -61,8 +61,9 @@ var/global/posibrain_notif_cooldown = 0 brainmob.real_name = C.real_name brainmob.dna = C.dna if(C.has_dna()) - brainmob.dna = C.dna - brainmob.dna.holder = brainmob + if(!brainmob.dna) + brainmob.dna = new /datum/dna(brainmob) + C.dna.copy_dna(brainmob.dna) brainmob.timeofhostdeath = C.timeofdeath brainmob.stat = 0 if(brainmob.mind)