From c3dbb8925ba146295e994edb17c02ebb8380ab28 Mon Sep 17 00:00:00 2001 From: oranges Date: Thu, 26 Oct 2017 23:03:52 +1300 Subject: [PATCH] Merge pull request #31987 from Cyberboss/InlineCO May as well shave some yaks --- .../subsystem/processing/overlays.dm | 34 +++++++++++-------- .../mob/dead/new_player/preferences_setup.dm | 2 +- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/code/controllers/subsystem/processing/overlays.dm b/code/controllers/subsystem/processing/overlays.dm index fba4ebcaf0..c03b1eafb7 100644 --- a/code/controllers/subsystem/processing/overlays.dm +++ b/code/controllers/subsystem/processing/overlays.dm @@ -26,13 +26,32 @@ PROCESSING_SUBSYSTEM_DEF(overlays) overlay_icon_cache = SSoverlays.overlay_icon_cache processing = SSoverlays.processing +#define COMPILE_OVERLAYS(A)\ + var/list/oo = A.our_overlays;\ + var/list/po = A.priority_overlays;\ + if(LAZYLEN(po)){\ + if(LAZYLEN(oo)){\ + A.overlays = oo + po;\ + }\ + else{\ + A.overlays = po;\ + }\ + }\ + else if(LAZYLEN(oo)){\ + A.overlays = oo;\ + }\ + else{\ + A.overlays.Cut();\ + }\ + A.flags_1 &= ~OVERLAY_QUEUED_1 + /datum/controller/subsystem/processing/overlays/fire(resumed = FALSE, mc_check = TRUE) var/list/processing = src.processing while(processing.len) var/atom/thing = processing[processing.len] processing.len-- if(thing) - thing.compile_overlays() + COMPILE_OVERLAYS(thing) if(mc_check) if(MC_TICK_CHECK) break @@ -44,19 +63,6 @@ PROCESSING_SUBSYSTEM_DEF(overlays) testing("Flushing [processing.len] overlays") fire(mc_check = FALSE) //pair this thread up with the MC to get extra compile time -/atom/proc/compile_overlays() - var/list/oo = our_overlays - var/list/po = priority_overlays - if(LAZYLEN(po) && LAZYLEN(oo)) - overlays = oo + po - else if(LAZYLEN(oo)) - overlays = oo - else if(LAZYLEN(po)) - overlays = po - else - overlays.Cut() - flags_1 &= ~OVERLAY_QUEUED_1 - /proc/iconstate2appearance(icon, iconstate) var/static/image/stringbro = new() var/list/icon_states_cache = SSoverlays.overlay_icon_state_caches diff --git a/code/modules/mob/dead/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm index 831fde141e..01c3e6d630 100644 --- a/code/modules/mob/dead/new_player/preferences_setup.dm +++ b/code/modules/mob/dead/new_player/preferences_setup.dm @@ -59,7 +59,7 @@ if(previewJob && !nude) mannequin.job = previewJob.title previewJob.equip(mannequin, TRUE) - mannequin.compile_overlays() + COMPILE_OVERLAYS(mannequin) CHECK_TICK preview_icon = icon('icons/effects/effects.dmi', "nothing") preview_icon.Scale(48+32, 16+32)