Destroys the main menu sound runtime (#15929)

This commit is contained in:
Wildkins
2023-03-02 07:29:47 -05:00
committed by GitHub
parent 2231d56833
commit 5ab45e6700
4 changed files with 48 additions and 18 deletions

View File

@@ -133,7 +133,7 @@ var/datum/controller/subsystem/overlays/SSoverlays
#define NOT_QUEUED_ALREADY (!(overlay_queued))
#define QUEUE_FOR_COMPILE overlay_queued = TRUE; SSoverlays.processing += src;
/atom/proc/cut_overlays(priority = FALSE)
/atom/proc/cut_overlays(priority = FALSE, force_compile = FALSE)
var/list/cached_overlays = our_overlays
var/list/cached_priority = priority_overlays
@@ -147,10 +147,13 @@ var/datum/controller/subsystem/overlays/SSoverlays
cached_priority.Cut()
need_compile = TRUE
if(NOT_QUEUED_ALREADY && need_compile)
QUEUE_FOR_COMPILE
if(need_compile)
if(!SS_IS_RUNNING(SSoverlays))
compile_overlays()
else if(NOT_QUEUED_ALREADY)
QUEUE_FOR_COMPILE
/atom/proc/cut_overlay(list/overlays, priority)
/atom/proc/cut_overlay(list/overlays, priority = FALSE, force_compile = FALSE)
if(!overlays)
return
@@ -165,10 +168,12 @@ var/datum/controller/subsystem/overlays/SSoverlays
if(priority)
LAZYREMOVE(cached_priority, overlays)
if(NOT_QUEUED_ALREADY && ((init_o_len != LAZYLEN(cached_priority)) || (init_p_len != LAZYLEN(cached_overlays))))
if(force_compile && !SS_IS_RUNNING(SSoverlays))
compile_overlays()
else if(NOT_QUEUED_ALREADY && ((init_o_len != LAZYLEN(cached_priority)) || (init_p_len != LAZYLEN(cached_overlays))))
QUEUE_FOR_COMPILE
/atom/proc/add_overlay(list/overlays, priority = FALSE)
/atom/proc/add_overlay(list/overlays, priority = FALSE, force_compile = FALSE)
if(!overlays)
return
@@ -183,10 +188,12 @@ var/datum/controller/subsystem/overlays/SSoverlays
else
LAZYADD(our_overlays, overlays)
if(NOT_QUEUED_ALREADY)
if(force_compile && !SS_IS_RUNNING(SSoverlays))
compile_overlays()
else if(NOT_QUEUED_ALREADY)
QUEUE_FOR_COMPILE
/atom/proc/set_overlays(list/overlays, priority = FALSE) // Sets overlays to a list, equivalent to cut_overlays() + add_overlays().
/atom/proc/set_overlays(list/overlays, priority = FALSE, force_compile = FALSE) // Sets overlays to a list, equivalent to cut_overlays() + add_overlays().
if (!overlays)
return
@@ -201,10 +208,12 @@ var/datum/controller/subsystem/overlays/SSoverlays
if (overlays)
LAZYADD(our_overlays, overlays)
if (NOT_QUEUED_ALREADY)
if(force_compile && !SS_IS_RUNNING(SSoverlays))
compile_overlays()
else if (NOT_QUEUED_ALREADY)
QUEUE_FOR_COMPILE
/atom/proc/copy_overlays(atom/other, cut_old = FALSE) //copys our_overlays from another atom
/atom/proc/copy_overlays(atom/other, cut_old = FALSE, force_compile = FALSE) //copys our_overlays from another atom
if(!other)
if(cut_old)
cut_overlays()
@@ -216,7 +225,9 @@ var/datum/controller/subsystem/overlays/SSoverlays
our_overlays = cached_other.Copy()
else
our_overlays |= cached_other
if(NOT_QUEUED_ALREADY)
if(force_compile && !SS_IS_RUNNING(SSoverlays))
compile_overlays()
else if(NOT_QUEUED_ALREADY)
QUEUE_FOR_COMPILE
else if(cut_old)
cut_overlays()