From 2986205dfa6a0e7143ec3b16b53ffc4597d0e7e6 Mon Sep 17 00:00:00 2001 From: Coul Date: Wed, 4 Sep 2019 21:32:28 -0400 Subject: [PATCH] another blood fix --- .../effects/decals/Cleanable/humans.dm | 7 ---- .../effects/decals/Cleanable/tracks.dm | 1 + .../mob/living/carbon/human/human_movement.dm | 32 +++++++++---------- 3 files changed, 16 insertions(+), 24 deletions(-) diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index d282e1264e2..7a9927ccc1c 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -47,13 +47,6 @@ var/global/list/image/splatter_cache = list() mode_ticker.blood_check() if(type == /obj/effect/decal/cleanable/blood/gibs) return - if(type == /obj/effect/decal/cleanable/blood) - if(loc && isturf(loc)) - for(var/obj/effect/decal/cleanable/blood/B in loc) - if(B != src) - if(B.blood_DNA) - blood_DNA |= B.blood_DNA.Copy() - qdel(B) dry_timer = addtimer(CALLBACK(src, .proc/dry), DRYING_TIME * (amount+1), TIMER_STOPPABLE) /obj/effect/decal/cleanable/blood/Destroy() diff --git a/code/game/objects/effects/decals/Cleanable/tracks.dm b/code/game/objects/effects/decals/Cleanable/tracks.dm index 08b9b402cda..cdcc5e5da3c 100644 --- a/code/game/objects/effects/decals/Cleanable/tracks.dm +++ b/code/game/objects/effects/decals/Cleanable/tracks.dm @@ -55,6 +55,7 @@ var/global/list/image/fluidtrack_cache = list() if(!(entered_dirs & H.dir)) entered_dirs |= H.dir update_icon() + /obj/effect/decal/cleanable/blood/footprints/Uncrossed(atom/movable/O) ..() if(ishuman(O)) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index b6bf5b34bac..8f2a2c4b5c9 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -58,25 +58,23 @@ if(shoes) if(S.bloody_shoes && S.bloody_shoes[S.blood_state]) - var/obj/effect/decal/cleanable/blood/footprints/oldFP = locate(/obj/effect/decal/cleanable/blood/footprints) in T - if(oldFP && oldFP.blood_state == S.blood_state && oldFP.basecolor == S.blood_color) - return - else - //No oldFP or it's a different kind of blood - S.bloody_shoes[S.blood_state] = max(0, S.bloody_shoes[S.blood_state] - BLOOD_LOSS_PER_STEP) - if(S.bloody_shoes[S.blood_state] > BLOOD_LOSS_IN_SPREAD) - createFootprintsFrom(shoes, dir, T) - update_inv_shoes() + for(var/obj/effect/decal/cleanable/blood/footprints/oldFP in T) + if(oldFP && oldFP.blood_state == S.blood_state && oldFP.basecolor == S.blood_color) + return + //No oldFP or it's a different kind of blood + S.bloody_shoes[S.blood_state] = max(0, S.bloody_shoes[S.blood_state] - BLOOD_LOSS_PER_STEP) + if(S.bloody_shoes[S.blood_state] > BLOOD_LOSS_IN_SPREAD) + createFootprintsFrom(shoes, dir, T) + update_inv_shoes() else if(hasfeet) if(bloody_feet && bloody_feet[blood_state]) - var/obj/effect/decal/cleanable/blood/footprints/oldFP = locate(/obj/effect/decal/cleanable/blood/footprints) in T - if(oldFP && oldFP.blood_state == blood_state && oldFP.basecolor == feet_blood_color) - return - else - bloody_feet[blood_state] = max(0, bloody_feet[blood_state] - BLOOD_LOSS_PER_STEP) - if(bloody_feet[blood_state] > BLOOD_LOSS_IN_SPREAD) - createFootprintsFrom(src, dir, T) - update_inv_shoes() + for(var/obj/effect/decal/cleanable/blood/footprints/oldFP in T) + if(oldFP && oldFP.blood_state == blood_state && oldFP.basecolor == feet_blood_color) + return + bloody_feet[blood_state] = max(0, bloody_feet[blood_state] - BLOOD_LOSS_PER_STEP) + if(bloody_feet[blood_state] > BLOOD_LOSS_IN_SPREAD) + createFootprintsFrom(src, dir, T) + update_inv_shoes() //End bloody footprints if(S) S.step_action(src)