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