From 927dea03ce60d2ed8d4db808ae7c6aef535d154a Mon Sep 17 00:00:00 2001 From: Kyle Spier-Swenson Date: Wed, 25 Oct 2017 19:44:50 -0700 Subject: [PATCH] Fixes excessive overlay churn (#32065) * Fixes excessive overlay chern Adding an overlay on every cross and uncross of every player (with how bloody the station gets this is called on just about every fucking movement, some times multiple times if there are multiple types of stains (oil, blood, alien, etc) is an excessive as fuck amount of chern in the overlay subsystem. This is likely the cause of overlays being so high. * I APOLOGIZE FOR NOTHING! --- .../objects/effects/decals/cleanable/humans.dm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index 8861376e07..42aec1582e 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -135,9 +135,10 @@ var/obj/item/clothing/shoes/S = H.shoes if(S && S.bloody_shoes[blood_state]) S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0) - entered_dirs|= H.dir - shoe_types |= H.shoes.type - update_icon() + shoe_types |= S.type + if (!(entered_dirs & H.dir)) + entered_dirs |= H.dir + update_icon() /obj/effect/decal/cleanable/blood/footprints/Uncrossed(atom/movable/O) ..() @@ -146,9 +147,11 @@ var/obj/item/clothing/shoes/S = H.shoes if(S && S.bloody_shoes[blood_state]) S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0) - exited_dirs|= H.dir - shoe_types |= H.shoes.type - update_icon() + shoe_types |= S.type + if (!(exited_dirs & H.dir)) + exited_dirs |= H.dir + update_icon() + /obj/effect/decal/cleanable/blood/footprints/update_icon() cut_overlays()