Ports "Makes alarm manager update even while off and fire alarms clear" #4561 (#12601)

* Ported "Makes alarm manager update even while off and fire alarms clear"

Ported "Makes alarm manager update even while off and fire alarms clear" #4561 by lordScrubling from BeeStation

* Forgot this

i suck at coding
This commit is contained in:
nmajask
2021-11-14 12:59:55 -05:00
committed by GitHub
parent af6402cff3
commit 0d387d627a
3 changed files with 14 additions and 15 deletions

View File

@@ -38,3 +38,4 @@ GLOBAL_LIST_EMPTY(ai_status_displays)
GLOBAL_LIST_EMPTY(mob_spawners) // All mob_spawn objects
GLOBAL_LIST_EMPTY(alert_consoles) // Station alert consoles, /obj/machinery/computer/station_alert
GLOBAL_LIST_INIT(alarms, list("Fire" = list(), "Atmosphere" = list(), "Power" = list())) //all engineering alerts for station alert consoles and alarm manager

View File

@@ -4,7 +4,6 @@
icon_screen = "alert:0"
icon_keyboard = "atmos_key"
circuit = /obj/item/circuitboard/computer/stationalert
var/alarms = list("Fire" = list(), "Atmosphere" = list(), "Power" = list())
light_color = LIGHT_COLOR_CYAN
@@ -26,9 +25,9 @@
var/list/data = list()
data["alarms"] = list()
for(var/class in alarms)
for(var/class in GLOB.alarms)
data["alarms"][class] = list()
for(var/area in alarms[class])
for(var/area in GLOB.alarms[class])
data["alarms"][class] += area
return data
@@ -39,7 +38,7 @@
if(stat & (BROKEN))
return
var/list/L = alarms[class]
var/list/L = GLOB.alarms[class]
for(var/I in L)
if (I == A.name)
var/list/alarm = L[I]
@@ -62,7 +61,7 @@
/obj/machinery/computer/station_alert/proc/cancelAlarm(class, area/A, obj/origin)
if(stat & (BROKEN))
return
var/list/L = alarms[class]
var/list/L = GLOB.alarms[class]
var/cleared = 0
for (var/I in L)
if (I == A.name)
@@ -80,8 +79,8 @@
if(stat & (NOPOWER|BROKEN))
return
var/active_alarms = FALSE
for(var/cat in alarms)
var/list/L = alarms[cat]
for(var/cat in GLOB.alarms)
var/list/L = GLOB.alarms[cat]
if(L.len)
active_alarms = TRUE
if(active_alarms)

View File

@@ -12,7 +12,6 @@
program_icon = "bell"
var/has_alert = 0
var/alarms = list("Fire" = list(), "Atmosphere" = list(), "Power" = list())
/datum/computer_file/program/alarm_monitor/process_tick()
..()
@@ -32,9 +31,9 @@
var/list/data = get_header_data()
data["alarms"] = list()
for(var/class in alarms)
for(var/class in GLOB.alarms)
data["alarms"][class] = list()
for(var/area in alarms[class])
for(var/area in GLOB.alarms[class])
data["alarms"][class] += area
return data
@@ -46,7 +45,7 @@
else if(!is_mining_level(source.z) || istype(A, /area/ruin))
return
var/list/L = alarms[class]
var/list/L = GLOB.alarms[class]
for(var/I in L)
if (I == A.name)
var/list/alarm = L[I]
@@ -70,7 +69,7 @@
/datum/computer_file/program/alarm_monitor/proc/cancelAlarm(class, area/A, obj/origin)
var/list/L = alarms[class]
var/list/L = GLOB.alarms[class]
var/cleared = 0
for (var/I in L)
if (I == A.name)
@@ -87,8 +86,8 @@
/datum/computer_file/program/alarm_monitor/proc/update_alarm_display()
has_alert = FALSE
for(var/cat in alarms)
var/list/L = alarms[cat]
for(var/cat in GLOB.alarms)
var/list/L = GLOB.alarms[cat]
if(L.len)
has_alert = TRUE