diff --git a/code/WorkInProgress/computer3/computers/atmos_alert.dm b/code/WorkInProgress/computer3/computers/atmos_alert.dm
index 6596b76d7c..00d6f87438 100644
--- a/code/WorkInProgress/computer3/computers/atmos_alert.dm
+++ b/code/WorkInProgress/computer3/computers/atmos_alert.dm
@@ -8,9 +8,6 @@
desc = "Recieves alerts over the radio."
active_state = "alert:2"
refresh = 1
- var/list/priority_alarms = list()
- var/list/minor_alarms = list()
-
execute(var/datum/file/program/source)
..(source)
@@ -20,14 +17,6 @@
computer.radio.set_frequency(1437,RADIO_ATMOSIA)
-
- Reset()
- ..()
- // Never save your work
- priority_alarms.Cut()
- minor_alarms.Cut()
-
-
// This will be called as long as the program is running on the parent computer
// and the computer has the radio peripheral
receive_signal(datum/signal/signal)
@@ -37,12 +26,12 @@
var/severity = signal.data["alert"]
if(!zone || !severity) return
- minor_alarms -= zone
- priority_alarms -= zone
+ minor_air_alarms -= zone
+ priority_air_alarms -= zone
if(severity=="severe")
- priority_alarms += zone
+ priority_air_alarms += zone
else if (severity=="minor")
- minor_alarms += zone
+ minor_air_alarms += zone
update_icon()
return
@@ -59,9 +48,9 @@
update_icon()
..()
- if(priority_alarms.len > 0)
+ if(priority_air_alarms.len > 0)
overlay.icon_state = "alert:2"
- else if(minor_alarms.len > 0)
+ else if(minor_air_alarms.len > 0)
overlay.icon_state = "alert:1"
else
overlay.icon_state = "alert:0"
@@ -74,14 +63,14 @@
var/priority_text = "
Priority Alerts:
"
var/minor_text = "Minor Alerts:
"
- if(priority_alarms.len)
- for(var/zone in priority_alarms)
+ if(priority_air_alarms.len)
+ for(var/zone in priority_air_alarms)
priority_text += "[format_text(zone)] [topic_link(src,"priority_clear=[ckey(zone)]","X")]
"
else
priority_text += "No priority alerts detected.
"
- if(minor_alarms.len)
- for(var/zone in minor_alarms)
+ if(minor_air_alarms.len)
+ for(var/zone in minor_air_alarms)
minor_text += "[format_text(zone)] [topic_link(src,"minor_clear=[ckey(zone)]","X")]
"
else
minor_text += "No minor alerts detected.
"
@@ -95,16 +84,16 @@
if("priority_clear" in href_list)
var/removing_zone = href_list["priority_clear"]
- for(var/zone in priority_alarms)
+ for(var/zone in priority_air_alarms)
if(ckey(zone) == removing_zone)
usr << "\green Priority Alert for area [zone] cleared."
- priority_alarms -= zone
+ priority_air_alarms -= zone
if("minor_clear" in href_list)
var/removing_zone = href_list["minor_clear"]
- for(var/zone in minor_alarms)
+ for(var/zone in minor_air_alarms)
if(ckey(zone) == removing_zone)
usr << "\green Minor Alert for area [zone] cleared."
- minor_alarms -= zone
+ minor_air_alarms -= zone
computer.updateUsrDialog()
diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm
index 292d86fa90..8e978853c4 100644
--- a/code/game/machinery/computer/atmos_alert.dm
+++ b/code/game/machinery/computer/atmos_alert.dm
@@ -1,13 +1,16 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
+// Converting these to global lists may be a bit laggy when removal procs are called. Consider
+// rewriting this properly to fix the update bug, rather than unifying all monitors. ~Z
+
+var/global/list/priority_air_alarms = list()
+var/global/list/minor_air_alarms = list()
/obj/machinery/computer/atmos_alert
name = "atmospheric alert computer"
desc = "Used to access the station's atmospheric sensors."
circuit = "/obj/item/weapon/circuitboard/atmos_alert"
icon_state = "alert:0"
- var/list/priority_alarms = list()
- var/list/minor_alarms = list()
var/receive_frequency = 1437
var/datum/radio_frequency/radio_connection
@@ -24,12 +27,12 @@
if(!zone || !severity) return
- minor_alarms -= zone
- priority_alarms -= zone
+ minor_air_alarms -= zone
+ priority_air_alarms -= zone
if(severity=="severe")
- priority_alarms += zone
+ priority_air_alarms |= zone
else if (severity=="minor")
- minor_alarms += zone
+ minor_air_alarms |= zone
update_icon()
return
@@ -55,10 +58,10 @@
..()
if(stat & (NOPOWER|BROKEN))
return
- if(priority_alarms.len)
+ if(priority_air_alarms.len)
icon_state = "alert:2"
- else if(minor_alarms.len)
+ else if(minor_air_alarms.len)
icon_state = "alert:1"
else
@@ -70,14 +73,14 @@
var/priority_text
var/minor_text
- if(priority_alarms.len)
- for(var/zone in priority_alarms)
+ if(priority_air_alarms.len)
+ for(var/zone in priority_air_alarms)
priority_text += "[zone] X
"
else
priority_text = "No priority alerts detected.
"
- if(minor_alarms.len)
- for(var/zone in minor_alarms)
+ if(minor_air_alarms.len)
+ for(var/zone in minor_air_alarms)
minor_text += "[zone] X
"
else
minor_text = "No minor alerts detected.
"
@@ -100,14 +103,14 @@
if(href_list["priority_clear"])
var/removing_zone = href_list["priority_clear"]
- for(var/zone in priority_alarms)
+ for(var/zone in priority_air_alarms)
if(ckey(zone) == removing_zone)
- priority_alarms -= zone
+ priority_air_alarms -= zone
if(href_list["minor_clear"])
var/removing_zone = href_list["minor_clear"]
- for(var/zone in minor_alarms)
+ for(var/zone in minor_air_alarms)
if(ckey(zone) == removing_zone)
- minor_alarms -= zone
+ minor_air_alarms -= zone
update_icon()
return