From bd6ed7fa864b8bb9189e7e2d92e35a93b43849bf Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Thu, 14 May 2020 20:37:13 -0400 Subject: [PATCH] GC Fixes (#13387) * GC Fixes * tweak * fixes-gc-testing --- code/datums/status_effects/status_effect.dm | 10 ++++++++++ code/game/objects/items/devices/enginepicker.dm | 6 +++++- code/game/objects/items/devices/radio/beacon.dm | 11 ++++++++--- code/modules/admin/admin_ranks.dm | 8 ++++---- code/modules/client/client defines.dm | 7 ------- 5 files changed, 27 insertions(+), 15 deletions(-) diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm index 896f4f999a9..74abf104465 100644 --- a/code/datums/status_effects/status_effect.dm +++ b/code/datums/status_effects/status_effect.dm @@ -41,6 +41,9 @@ LAZYREMOVE(owner.status_effects, src) on_remove() owner = null + if(linked_alert) + linked_alert.attached_effect = null + linked_alert = null return ..() /datum/status_effect/process() @@ -85,6 +88,13 @@ desc = "You don't feel any different..." var/datum/status_effect/attached_effect +/obj/screen/alert/status_effect/Destroy() + if(attached_effect) + attached_effect.linked_alert = null + attached_effect = null + return ..() + + ////////////////// // HELPER PROCS // ////////////////// diff --git a/code/game/objects/items/devices/enginepicker.dm b/code/game/objects/items/devices/enginepicker.dm index fe6bb7e8717..a2fa30a243b 100644 --- a/code/game/objects/items/devices/enginepicker.dm +++ b/code/game/objects/items/devices/enginepicker.dm @@ -14,8 +14,12 @@ var/list/list_enginebeacons = list() var/isactive = FALSE +/obj/item/enginepicker/Destroy() + list_enginebeacons.Cut() + return ..() + /obj/item/enginepicker/attack_self(mob/living/carbon/user) - if(usr.stat || !usr.canmove || usr.restrained()) + if(user.incapacitated()) return if(!isactive) diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm index 517f9f595c5..aa123930323 100644 --- a/code/game/objects/items/devices/radio/beacon.dm +++ b/code/game/objects/items/devices/radio/beacon.dm @@ -69,8 +69,8 @@ to_chat(user, "Locked In") new /obj/machinery/power/singularity_beacon/syndicate( user.loc ) playsound(src, 'sound/effects/pop.ogg', 100, 1, 1) + user.drop_item() qdel(src) - return /obj/item/radio/beacon/syndicate/bomb name = "suspicious beacon" @@ -82,16 +82,21 @@ to_chat(user, "Locked In") new /obj/machinery/syndicatebomb( user.loc ) playsound(src, 'sound/effects/pop.ogg', 100, 1, 1) + user.drop_item() qdel(src) - return /obj/item/radio/beacon/engine desc = "A label on it reads: Warning: This device is used for transportation of high-density objects used for high-yield power generation. Stay away!." anchored = 1 //Let's not move these around. Some folk might get the idea to use these for assassinations var/list/enginetype = list() -/obj/item/radio/beacon/engine/Initialize() +/obj/item/radio/beacon/engine/Initialize(mapload) LAZYADD(GLOB.engine_beacon_list, src) + return ..() + +/obj/item/radio/beacon/engine/Destroy() + GLOB.engine_beacon_list -= src + return ..() /obj/item/radio/beacon/engine/tesling name = "Engine Beacon for Tesla and Singularity" diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm index 1986bd8f787..fdf3d0dc8d0 100644 --- a/code/modules/admin/admin_ranks.dm +++ b/code/modules/admin/admin_ranks.dm @@ -51,7 +51,7 @@ GLOBAL_PROTECT(admin_ranks) // this shit is being protected for obvious reasons #ifdef TESTING var/msg = "Permission Sets Built:\n" - for(var/rank in admin_ranks) + for(var/rank in GLOB.admin_ranks) msg += "\t[rank] - [GLOB.admin_ranks[rank]]\n" testing(msg) #endif @@ -142,12 +142,12 @@ GLOBAL_PROTECT(admin_ranks) // this shit is being protected for obvious reasons #ifdef TESTING -/client/verb/changerank(newrank in admin_ranks) +/client/verb/changerank(newrank in GLOB.admin_ranks) if(holder) holder.rank = newrank - holder.rights = admin_ranks[newrank] + holder.rights = GLOB.admin_ranks[newrank] else - holder = new /datum/admins(newrank,admin_ranks[newrank],ckey) + holder = new /datum/admins(newrank,GLOB.admin_ranks[newrank],ckey) remove_admin_verbs() holder.associate(src) diff --git a/code/modules/client/client defines.dm b/code/modules/client/client defines.dm index 85615be1ee5..a063fafd736 100644 --- a/code/modules/client/client defines.dm +++ b/code/modules/client/client defines.dm @@ -28,13 +28,6 @@ var/adminhelped = 0 - // var/gc_destroyed //Time when this object was destroyed. [Inherits from datum] - -#ifdef TESTING - var/running_find_references - var/last_find_references = 0 -#endif - /////////////// //SOUND STUFF// ///////////////