From 4b9dfdf47613cb1b675b2892bf69feed508bc656 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 28 Feb 2020 13:24:39 -0700 Subject: [PATCH] types --- code/controllers/subsystem/garbage.dm | 28 ++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index f8ca1e7eae..d1bd7e7191 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -27,6 +27,7 @@ SUBSYSTEM_DEF(garbage) #ifdef TESTING var/list/reference_find_on_fail = list() + var/list/reference_find_on_fail_types = list() #endif @@ -98,9 +99,6 @@ SUBSYSTEM_DEF(garbage) state = SS_RUNNING break - - - /datum/controller/subsystem/garbage/proc/HandleQueue(level = GC_QUEUE_CHECK) if (level == GC_QUEUE_CHECK) delslasttick = 0 @@ -183,6 +181,11 @@ SUBSYSTEM_DEF(garbage) var/gctime = world.time var/refid = "\ref[D]" +#ifdef TESTING + if(reference_find_on_fail_types[D.type]) + reference_find_on_fail["\ref[D]"] = TRUE +#endif + D.gc_destroyed = gctime var/list/queue = queues[level] if (queue[refid]) @@ -190,6 +193,21 @@ SUBSYSTEM_DEF(garbage) queue[refid] = gctime +#ifdef TESTING +/datum/controller/subsystem/garbage/proc/add_type_to_findref(type) + if(!ispath(type)) + return "NOT A VAILD PATH" + reference_find_on_fail_types |= typecacheof(type) + +/datum/controller/subsystem/garbage/proc/remove_type_from_findref(type) + if(!ispath(type)) + return "NOT A VALID PATH" + reference_find_on_fail_types -= typesof(type) + +/datum/controller/subsystem/garbage/proc/clear_findref_types() + reference_find_on_fail_types = list() +#endif + //this is mainly to separate things profile wise. /datum/controller/subsystem/garbage/proc/HardDelete(datum/D) var/time = world.timeofday @@ -244,7 +262,7 @@ SUBSYSTEM_DEF(garbage) #ifdef TESTING /proc/qdel_and_find_ref_if_fail(datum/D, force = FALSE) - SSgarbage.reference_find_on_fail[REF(D)] = TRUE + SSgarbage.reference_find_on_fail["\ref[D]"] = TRUE qdel(D, force) #endif @@ -309,7 +327,7 @@ SUBSYSTEM_DEF(garbage) if (QDEL_HINT_IFFAIL_FINDREFERENCE) SSgarbage.Queue(D) #ifdef TESTING - SSgarbage.reference_find_on_fail[REF(D)] = TRUE + SSgarbage.reference_find_on_fail["\ref[D]"] = TRUE #endif else #ifdef TESTING