From d5131fc4bfd5d3abfeaa58e80f830ec0f127a860 Mon Sep 17 00:00:00 2001 From: Leshana Date: Mon, 19 Feb 2018 23:31:05 -0500 Subject: [PATCH 1/2] Fixes #3518 - Runtime in circuit imprinter deconstruction. --- code/modules/research/circuitprinter.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index 936330d00a8..dae6575577d 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -93,7 +93,7 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid). if(materials[f] >= SHEET_MATERIAL_AMOUNT) var/path = getMaterialType(f) if(path) - var/obj/item/stack/S = new f(loc) + var/obj/item/stack/S = new path(loc) S.amount = round(materials[f] / SHEET_MATERIAL_AMOUNT) ..() From 782e637497d4c53d0ff5e32ac22b9e8dc7805871 Mon Sep 17 00:00:00 2001 From: Leshana Date: Tue, 20 Feb 2018 00:05:05 -0500 Subject: [PATCH 2/2] Destructive Analyzer shouldn't delete its own circuit board when analyzing. - The deletion of the circuit board without clearing the circuit variable caused it to be hard-deled by SSgarbage after several minutes. After that point, use of RPD or attempt to deconstruct would runtime. --- code/modules/research/rdconsole.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index a6f6b89069e..6872ffba6d2 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -258,7 +258,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, qdel(S) linked_destroy.icon_state = "d_analyzer" else - if(!(I in linked_destroy.component_parts)) + if(I != linked_destroy.circuit && !(I in linked_destroy.component_parts)) qdel(I) linked_destroy.icon_state = "d_analyzer"