From 5df1af50094ba149ae42a2fe6c70c10bc165372e Mon Sep 17 00:00:00 2001 From: Seris02 Date: Tue, 17 Jan 2023 15:02:28 +0800 Subject: [PATCH] very nice dirt code --- code/game/objects/effects/decals/Cleanable/misc.dm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/code/game/objects/effects/decals/Cleanable/misc.dm b/code/game/objects/effects/decals/Cleanable/misc.dm index cfe0f282106..55cdcfa4ff6 100644 --- a/code/game/objects/effects/decals/Cleanable/misc.dm +++ b/code/game/objects/effects/decals/Cleanable/misc.dm @@ -44,9 +44,16 @@ if(our_turf && istype(our_turf) && our_turf.can_dirty) our_turf.dirt = clamp(max(age ? (dirt ? dirt : 101) : our_turf.dirt, our_turf.dirt), 0, 101) var/calcalpha = our_turf.dirt > 50 ? min((our_turf.dirt - 50) * 5, 255) : 0 - var/obj/effect/decal/cleanable/dirt/alreadythere = locate(/obj/effect/decal/cleanable/dirt, our_turf) - if (alreadythere && alreadythere != src) - alreadythere.alpha = calcalpha + var/alreadyfound = FALSE + for (var/obj/effect/decal/cleanable/dirt/alreadythere in our_turf) //in case of multiple + if (alreadythere == src) + continue + else if (alreadyfound) + qdel(alreadythere) + continue + alreadyfound = TRUE + alreadythere.alpha = calcalpha //don't need to constantly recalc for all of them in it because it'll just max if a non-persistent dirt overlay gets added, and then the new dirt overlay will be deleted + if (alreadyfound) return INITIALIZE_HINT_QDEL alpha = calcalpha