mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
[MIRROR] (Partially) Fixes Out Of Memory crashes (#10092)
Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
133f37de97
commit
ec71611656
@@ -90,6 +90,8 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
brainmob.client.screen.len = null //clear the hud
|
||||
|
||||
/obj/item/organ/internal/brain/Destroy()
|
||||
if(brainmob && brainmob.dna)
|
||||
qdel(brainmob.dna)
|
||||
QDEL_NULL(brainmob)
|
||||
. = ..()
|
||||
|
||||
@@ -101,7 +103,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
brainmob.real_name = H.real_name
|
||||
|
||||
if(istype(H))
|
||||
brainmob.dna = H.dna.Clone()
|
||||
qdel_swap(brainmob.dna, H.dna.Clone())
|
||||
brainmob.timeofhostdeath = H.timeofdeath
|
||||
brainmob.ooc_notes = H.ooc_notes //VOREStation Edit
|
||||
brainmob.ooc_notes_likes = H.ooc_notes_likes
|
||||
@@ -213,7 +215,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
|
||||
/obj/item/organ/internal/brain/slime/proc/reviveBody()
|
||||
var/datum/dna2/record/R = new /datum/dna2/record()
|
||||
R.dna = brainmob.dna
|
||||
qdel_swap(R.dna, brainmob.dna.Clone())
|
||||
R.ckey = brainmob.ckey
|
||||
R.id = copytext(md5(brainmob.real_name), 2, 6)
|
||||
R.name = R.dna.real_name
|
||||
@@ -253,7 +255,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
H.dna = new /datum/dna()
|
||||
H.dna.real_name = H.real_name
|
||||
else
|
||||
H.dna = R.dna
|
||||
qdel_swap(H.dna, R.dna.Clone())
|
||||
|
||||
H.UpdateAppearance()
|
||||
H.sync_organ_dna()
|
||||
@@ -287,6 +289,8 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
for(var/datum/language/L in R.languages)
|
||||
H.add_language(L.name)
|
||||
H.flavor_texts = R.flavor.Copy()
|
||||
qdel(R.dna)
|
||||
qdel(R)
|
||||
qdel(src)
|
||||
return 1
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ var/list/organ_cache = list()
|
||||
if(transplant_data) transplant_data.Cut()
|
||||
if(autopsy_data) autopsy_data.Cut()
|
||||
if(trace_chemicals) trace_chemicals.Cut()
|
||||
dna = null
|
||||
QDEL_NULL(dna)
|
||||
species = null
|
||||
|
||||
return ..()
|
||||
@@ -93,8 +93,8 @@ var/list/organ_cache = list()
|
||||
var/mob/living/carbon/C = holder
|
||||
species = GLOB.all_species[SPECIES_HUMAN]
|
||||
if(holder.dna)
|
||||
dna = C.dna.Clone()
|
||||
species = C.species //VOREStation Edit - For custom species
|
||||
qdel_swap(dna, C.dna.Clone())
|
||||
species = C.species
|
||||
else
|
||||
log_debug("[src] at [loc] spawned without a proper DNA.")
|
||||
var/mob/living/carbon/human/H = C
|
||||
@@ -131,7 +131,7 @@ var/list/organ_cache = list()
|
||||
|
||||
/obj/item/organ/proc/set_dna(var/datum/dna/new_dna)
|
||||
if(new_dna)
|
||||
dna = new_dna.Clone()
|
||||
qdel_swap(dna, new_dna.Clone())
|
||||
if(blood_DNA)
|
||||
blood_DNA.Cut()
|
||||
blood_DNA[dna.unique_enzymes] = dna.b_type
|
||||
|
||||
@@ -95,6 +95,9 @@
|
||||
parent.children -= src
|
||||
parent = null
|
||||
|
||||
if(wounds)
|
||||
QDEL_LIST(wounds)
|
||||
|
||||
if(children)
|
||||
for(var/obj/item/organ/external/C in children)
|
||||
children -= C
|
||||
|
||||
Reference in New Issue
Block a user