From 98cb8767b54b97f5ff1df39bf433208e359ab5a4 Mon Sep 17 00:00:00 2001 From: Verkister Date: Sun, 19 Mar 2017 01:46:56 +0200 Subject: [PATCH] Stealing overlay fix from tg. Also forgot one tailwag sprite last time. --- .../subsystem/processing/overlays.dm | 64 +++++++++--------- icons/mob/mam_bodyparts.dmi | Bin 32714 -> 33271 bytes 2 files changed, 33 insertions(+), 31 deletions(-) diff --git a/code/controllers/subsystem/processing/overlays.dm b/code/controllers/subsystem/processing/overlays.dm index f0cb9d210d..de7cf91dd5 100644 --- a/code/controllers/subsystem/processing/overlays.dm +++ b/code/controllers/subsystem/processing/overlays.dm @@ -10,11 +10,13 @@ var/datum/subsystem/processing/overlays/SSoverlays stat_tag = "Ov" currentrun = null var/list/overlay_icon_state_caches + var/list/overlay_icon_cache var/initialized = FALSE /datum/subsystem/processing/overlays/New() NEW_SS_GLOBAL(SSoverlays) LAZYINITLIST(overlay_icon_state_caches) + LAZYINITLIST(overlay_icon_cache) /datum/subsystem/processing/overlays/Initialize() initialized = TRUE @@ -27,6 +29,7 @@ var/datum/subsystem/processing/overlays/SSoverlays /datum/subsystem/processing/overlays/Recover() overlay_icon_state_caches = SSoverlays.overlay_icon_state_caches + overlay_icon_cache = SSoverlays.overlay_icon_cache processing = SSoverlays.processing /datum/subsystem/processing/overlays/fire() @@ -49,7 +52,7 @@ var/datum/subsystem/processing/overlays/SSoverlays overlays.Cut() flags &= ~OVERLAY_QUEUED -/atom/proc/iconstate2appearance(iconstate) +/proc/iconstate2appearance(icon, iconstate) var/static/image/stringbro = new() var/list/icon_states_cache = SSoverlays.overlay_icon_state_caches var/list/cached_icon = icon_states_cache[icon] @@ -66,6 +69,33 @@ var/datum/subsystem/processing/overlays/SSoverlays cached_icon["[iconstate]"] = cached_appearance return cached_appearance +/proc/icon2appearance(icon) + var/static/image/iconbro = new() + var/list/icon_cache = SSoverlays.overlay_icon_cache + . = icon_cache[icon] + if (!.) + iconbro.icon = icon + . = iconbro.appearance + icon_cache[icon] = . + +/atom/proc/build_appearance_list(new_overlays) + var/static/image/appearance_bro = new() + if (!islist(new_overlays)) + new_overlays = list(new_overlays) + else + listclearnulls(new_overlays) + for (var/i in 1 to length(new_overlays)) + var/image/cached_overlay = new_overlays[i] + if (istext(cached_overlay)) + new_overlays[i] = iconstate2appearance(icon, cached_overlay) + else if(isicon(cached_overlay)) + new_overlays[i] = icon2appearance(cached_overlay) + else //image probable + appearance_bro.appearance = cached_overlay + appearance_bro.dir = cached_overlay.dir + new_overlays[i] = appearance_bro.appearance + return new_overlays + #define NOT_QUEUED_ALREADY (!(flags & OVERLAY_QUEUED)) #define QUEUE_FOR_COMPILE flags |= OVERLAY_QUEUED; SSoverlays.processing += src; /atom/proc/cut_overlays(priority = FALSE) @@ -90,21 +120,7 @@ var/datum/subsystem/processing/overlays/SSoverlays if(!overlays) return - if (!islist(overlays)) - overlays = list(overlays) - else - listclearnulls(overlays) - for (var/i in 1 to length(overlays)) - if (istext(overlays[i])) - overlays[i] = iconstate2appearance(overlays[i]) - else - var/image/I = overlays[i] - appearance_bro.appearance = overlays[i] - if(ismob(src) || istype(src,/obj/item)) - overlays[i] = appearance_bro.appearance - else - appearance_bro.dir = I.dir - overlays[i] = appearance_bro.appearance + overlays = build_appearance_list(overlays) var/list/cached_overlays = our_overlays //sanic var/list/cached_priority = priority_overlays @@ -123,21 +139,7 @@ var/datum/subsystem/processing/overlays/SSoverlays if(!overlays) return - if (!islist(overlays)) - overlays = list(overlays) - else - listclearnulls(overlays) - for (var/i in 1 to length(overlays)) - if (istext(overlays[i])) - overlays[i] = iconstate2appearance(overlays[i]) - else - var/image/I = overlays[i] - appearance_bro.appearance = overlays[i] - if(ismob(src) || istype(src,/obj/item)) - overlays[i] = appearance_bro.appearance - else - appearance_bro.dir = I.dir - overlays[i] = appearance_bro.appearance + overlays = build_appearance_list(overlays) LAZYINITLIST(our_overlays) //always initialized after this point LAZYINITLIST(priority_overlays) diff --git a/icons/mob/mam_bodyparts.dmi b/icons/mob/mam_bodyparts.dmi index f8c2741d42380970a2038a5be6247730b58b9af1..98a8264eac73a59b7210bc11f6e6ffe0888fe066 100644 GIT binary patch delta 13048 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 delta 12475 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 OqjOVFBmc(3u>S?Uf{K&?