From e1b90d32a2f33bfaf818406583a03c370b7d4ce5 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Sun, 24 Jan 2016 12:07:38 +0100 Subject: [PATCH] Now qdel's silicon subsystems properly. Also adds the NTNet (Diagnostics and) Monitoring system as an AI subsystem. --- code/modules/mob/living/silicon/subystems.dm | 46 +++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/subystems.dm b/code/modules/mob/living/silicon/subystems.dm index 1dae0026aa9..8f0f77a0984 100644 --- a/code/modules/mob/living/silicon/subystems.dm +++ b/code/modules/mob/living/silicon/subystems.dm @@ -7,6 +7,9 @@ var/datum/nano_module/power_monitor/power_monitor var/datum/nano_module/rcon/rcon +/mob/living/silicon/ai + var/datum/nano_module/computer_ntnetmonitor/ntnet_monitor + /mob/living/silicon var/list/silicon_subsystems = list( /mob/living/silicon/proc/subsystem_alarm_monitor, @@ -20,13 +23,41 @@ /mob/living/silicon/proc/subsystem_crew_monitor, /mob/living/silicon/proc/subsystem_law_manager, /mob/living/silicon/proc/subsystem_power_monitor, - /mob/living/silicon/proc/subsystem_rcon + /mob/living/silicon/proc/subsystem_rcon, + /mob/living/silicon/ai/proc/subsystem_ntnet_monitor ) /mob/living/silicon/robot/syndicate register_alarms = 0 silicon_subsystems = list(/mob/living/silicon/proc/subsystem_law_manager) +/mob/living/silicon/Destroy() + qdel(alarm_monitor) + alarm_monitor = null + + qdel(atmos_control) + atmos_control = null + + qdel(crew_monitor) + crew_monitor = null + + qdel(law_manager) + law_manager = null + + qdel(power_monitor) + power_monitor = null + + qdel(rcon) + rcon = null + + return ..() + +/mob/living/silicon/ai/Destroy() + qdel(ntnet_monitor) + ntnet_monitor = null + + return ..() + /mob/living/silicon/proc/init_subsystems() alarm_monitor = new(src) atmos_control = new(src) @@ -42,6 +73,10 @@ AH.register_alarm(src, /mob/living/silicon/proc/receive_alarm) queued_alarms[AH] = list() // Makes sure alarms remain listed in consistent order +/mob/living/silicon/ai/init_subsystems() + ..() + ntnet_monitor = new(src) + /******************** * Alarm Monitor * ********************/ @@ -78,6 +113,15 @@ law_manager.ui_interact(usr, state = conscious_state) +/******************** +* NTNet Monitor * +********************/ +/mob/living/silicon/ai/proc/subsystem_ntnet_monitor() + set name = "NTNet Monitoring" + set category = "Subystems" + + ntnet_monitor.ui_interact(usr, state = conscious_state) + /******************** * Power Monitor * ********************/