From 65a2223ddf01c3d2b116cbebc3197e381057bafe Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Wed, 7 Oct 2020 23:26:39 +0200 Subject: [PATCH] [MIRROR] Fixes the supply console not inheriting contraband and emag status from its circuit (#1197) * Fixes the supply console not inheriting contraband and emag status from its circuit (#54177) Added an abstract proc for circuits intended to be used to allow a circuit to configure a machine. Overrode this proc for supply console boards (behaviour inherited by express boards) Call this proc in supply console on_construction (behaviour inherited by express supply consoles) Allows all supply consoles to inherit their circuit's emag and contraband status. Doesn't look like any other circuits use this sort of functionality, but if they do I'll fix 'em up too. * Fixes the supply console not inheriting contraband and emag status from its circuit Co-authored-by: Timberpoes --- code/game/objects/items/circuitboards/circuitboard.dm | 9 +++++++++ .../items/circuitboards/computer_circuitboards.dm | 10 ++++++++++ code/modules/cargo/console.dm | 10 ++++------ 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/circuitboards/circuitboard.dm b/code/game/objects/items/circuitboards/circuitboard.dm index be2112fb719..d065a16391d 100644 --- a/code/game/objects/items/circuitboards/circuitboard.dm +++ b/code/game/objects/items/circuitboards/circuitboard.dm @@ -40,6 +40,15 @@ return +/** + * Used to allow the circuitboard to configure a machine in some way, shape or form. + * + * Arguments: + * * machine - The machine to attempt to configure. + */ +/obj/item/circuitboard/proc/configure_machine(obj/machinery/machine) + return + // Circuitboard/machine /*Common Parts: Parts List: Ignitor, Timer, Infra-red laser, Infra-red sensor, t_scanner, Capacitor, Valve, sensor unit, micro-manipulator, console screen, beaker, Microlaser, matter bin, power cells. diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm index 0a8c0666ddf..e3dcba60f33 100644 --- a/code/game/objects/items/circuitboards/computer_circuitboards.dm +++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm @@ -500,6 +500,16 @@ obj_flags |= EMAGGED to_chat(user, "You adjust [src]'s routing and receiver spectrum, unlocking special supplies and contraband.") +/obj/item/circuitboard/computer/cargo/configure_machine(obj/machinery/computer/cargo/machine) + if(!istype(machine)) + CRASH("Cargo board attempted to configure incorrect machine type: [machine] ([machine?.type])") + + machine.contraband = contraband + if (obj_flags & EMAGGED) + machine.obj_flags |= EMAGGED + else + machine.obj_flags &= ~EMAGGED + /obj/item/circuitboard/computer/cargo/express name = "Express Supply Console (Computer Board)" build_path = /obj/machinery/computer/cargo/express diff --git a/code/modules/cargo/console.dm b/code/modules/cargo/console.dm index cfb66e92f63..ac95cf078c7 100644 --- a/code/modules/cargo/console.dm +++ b/code/modules/cargo/console.dm @@ -29,12 +29,6 @@ /obj/machinery/computer/cargo/Initialize() . = ..() radio = new /obj/item/radio/headset/headset_cargo(src) - var/obj/item/circuitboard/computer/cargo/board = circuit - contraband = board.contraband - if (board.obj_flags & EMAGGED) - obj_flags |= EMAGGED - else - obj_flags &= ~EMAGGED /obj/machinery/computer/cargo/Destroy() QDEL_NULL(radio) @@ -63,6 +57,10 @@ board.obj_flags |= EMAGGED update_static_data(user) +/obj/machinery/computer/cargo/on_construction() + . = ..() + circuit.configure_machine(src) + /obj/machinery/computer/cargo/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui)