diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 674b1c9b5e..1765d05e9f 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -388,7 +388,8 @@
blood_DNA = list()
was_bloodied = 1
- blood_color = "#A10808"
+ if(!blood_color)
+ blood_color = "#A10808"
if(istype(M))
if (!istype(M.dna, /datum/dna))
M.dna = new /datum/dna(null)
diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm
index 3b1584ca19..8b8bba5a9d 100644
--- a/code/game/objects/effects/decals/Cleanable/humans.dm
+++ b/code/game/objects/effects/decals/Cleanable/humans.dm
@@ -53,7 +53,7 @@ var/global/list/image/splatter_cache=list()
blood_DNA |= B.blood_DNA.Copy()
qdel(B)
drytime = world.time + DRYING_TIME * (amount+1)
- START_PROCESSING(SSobj, src)
+ START_PROCESSING(SSobj, src)
/obj/effect/decal/cleanable/blood/process()
if(world.time > drytime)
@@ -93,7 +93,6 @@ var/global/list/image/splatter_cache=list()
S.overlays += S.blood_overlay
if(S.blood_overlay && S.blood_overlay.color != basecolor)
S.blood_overlay.color = basecolor
- S.overlays.Cut()
S.overlays += S.blood_overlay
S.blood_DNA |= blood_DNA.Copy()
perp.update_inv_shoes()
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 591da02757..24ba0b9f42 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -581,10 +581,9 @@ var/list/global/slot_flags_enumeration = list(
if( !blood_overlay )
generate_blood_overlay()
- //apply the blood-splatter overlay if it isn't already in there
- if(!blood_DNA.len)
- blood_overlay.color = blood_color
- overlays += blood_overlay
+ //Make the blood_overlay have the proper color then apply it.
+ blood_overlay.color = blood_color
+ overlays += blood_overlay
//if this blood isn't already in the list, add it
if(istype(M))
@@ -593,6 +592,7 @@ var/list/global/slot_flags_enumeration = list(
blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
return 1 //we applied blood to the item
+
/obj/item/proc/generate_blood_overlay()
if(blood_overlay)
return
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index a93fb58307..a57b850412 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -513,6 +513,7 @@
if(usr.put_in_hands(holding))
usr.visible_message("\The [usr] pulls a knife out of their boot!")
holding = null
+ overlays -= image(icon, "[icon_state]_knife")
else
usr << "Your need an empty, unbroken hand to do that."
holding.forceMove(src)
@@ -557,9 +558,13 @@
update_icon()
/obj/item/clothing/shoes/update_icon()
- overlays.Cut()
+ overlays.Cut() //This removes all the overlays on the sprite and then goes down a checklist adding them as required.
+ if(blood_DNA)
+ add_blood()
if(holding)
overlays += image(icon, "[icon_state]_knife")
+ if(contaminated)
+ overlays += contamination_overlay
if(ismob(usr))
var/mob/M = usr
M.update_inv_shoes()