diff --git a/code/game/objects/effects/decals/cleanable/gibs.dm b/code/game/objects/effects/decals/cleanable/gibs.dm index ce1569b242..85edcfbea8 100644 --- a/code/game/objects/effects/decals/cleanable/gibs.dm +++ b/code/game/objects/effects/decals/cleanable/gibs.dm @@ -21,6 +21,9 @@ /obj/effect/decal/cleanable/blood/gibs/update_icon() + GET_COMPONENT(D, /datum/component/forensics) + if(D) + Blood_DNA = D.blood_DNA add_atom_colour(blood_DNA_to_color(), FIXED_COLOUR_PRIORITY) cut_overlays() var/mutable_appearance/guts = mutable_appearance(icon, "[icon_state]_guts") diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index 37c00ac66d..16efe12bf0 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -11,6 +11,8 @@ /obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C) C.add_blood_DNA(return_blood_DNA()) + if(C.Blood_DNA.len) + Blood_DNA |= C.Blood_DNA.Copy() if (bloodiness) if (C.bloodiness < MAX_SHOE_BLOODINESS) C.bloodiness += bloodiness @@ -26,6 +28,9 @@ update_icon() /obj/effect/decal/cleanable/blood/update_icon() + GET_COMPONENT(D, /datum/component/forensics) + if(D) + Blood_DNA = D.blood_DNA color = blood_DNA_to_color() /obj/effect/decal/cleanable/blood/old diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index b8d42a7554..d7586fb6a0 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -346,7 +346,10 @@ BLIND // can't see anything /obj/item/clothing/transfer_blood_dna(list/blood_dna) ..() - var/list/blood_list = list(return_blood_DNA()) + var/list/blood_list + GET_COMPONENT(D, /datum/component/forensics) + if(D) + blood_list = D.blood_DNA if(blood_list.len) last_bloodtype = blood_list[blood_list[blood_list.len]]//trust me this works last_blood_DNA = blood_list[blood_list.len] diff --git a/code/modules/detectivework/detective_work.dm b/code/modules/detectivework/detective_work.dm index 31969b912f..e219ffc570 100644 --- a/code/modules/detectivework/detective_work.dm +++ b/code/modules/detectivework/detective_work.dm @@ -113,7 +113,10 @@ //to add blood dna info to the object's blood_DNA list /atom/proc/transfer_blood_dna(list/blood_dna) - var/list/blood_DNA = return_blood_DNA() + var/list/blood_DNA + GET_COMPONENT(D, /datum/component/forensics) + if(D) + blood_DNA = D.blood_DNA if(!blood_DNA) blood_DNA = list() var/old_length = blood_DNA.len @@ -125,7 +128,6 @@ return /obj/effect/decal/cleanable/blood/blood_DNA_to_color() - to_chat(world, "blood dna to color called by [src]") var/list/colors = list()//first we make a list of all bloodtypes present for(var/bloop in Blood_DNA) if(colors[Blood_DNA[bloop]]) @@ -135,7 +137,6 @@ var/final_rgb = BLOOD_COLOR_HUMAN - to_chat(world, "colors has [colors.len] bloodtypes in it") if(colors.len) var/sum = 0 //this is all shitcode, but it works; trust me final_rgb = bloodtype_to_color(colors[1])