diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index 4b64300e048..8f9f6ea2390 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -47,8 +47,8 @@ return data -/obj/machinery/computer/station_alert/proc/triggerAlarm(class, area/A, O, obj/source) - if(source.z != z) +/obj/machinery/computer/station_alert/proc/triggerAlarm(class, area/A, O, obj/alarmsource) + if(alarmsource.z != z) return if(stat & (BROKEN)) return @@ -58,8 +58,8 @@ if(I == A.name) var/list/alarm = L[I] var/list/sources = alarm[3] - if(!(source in sources)) - sources += source + if(!(alarmsource in sources)) + sources += alarmsource return TRUE var/obj/machinery/camera/C = null var/list/CL = null @@ -69,7 +69,7 @@ C = CL[1] else if(O && istype(O, /obj/machinery/camera)) C = O - L[A.name] = list(A, (C ? C : O), list(source)) + L[A.name] = list(A, (C ? C : O), list(alarmsource)) update_icon() return TRUE diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index f9b55ac31d9..298dcf57509 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -820,6 +820,8 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( /mob/living/silicon/ai/triggerAlarm(class, area/A, O, obj/alarmsource) if(alarmsource.z != z) return + if(stat == DEAD) + return TRUE var/list/L = alarms[class] for(var/I in L) if(I == A.name) @@ -830,13 +832,13 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( return TRUE var/obj/machinery/camera/C = null var/list/CL = null - if(O && istype(O, /list)) + if(O && islist(O)) CL = O if(CL.len == 1) C = CL[1] else if(O && istype(O, /obj/machinery/camera)) C = O - L[A.name] = list(A, (C) ? C : O, list(alarmsource)) + L[A.name] = list(A, (C ? C : O), list(alarmsource)) if(O) if(C && C.can_use()) queueAlarm("--- [class] alarm detected in [A.name]! ([C.c_tag])", class) @@ -857,7 +859,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( /mob/living/silicon/ai/cancelAlarm(class, area/A, obj/origin) var/list/L = alarms[class] - var/cleared = 0 + var/cleared = FALSE for(var/I in L) if(I == A.name) var/list/alarm = L[I] @@ -865,7 +867,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( if(origin in srcs) srcs -= origin if(srcs.len == 0) - cleared = 1 + cleared = TRUE L -= I if(cleared) queueAlarm("--- [class] alarm in [A.name] has been cleared.", class, 0) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 49eb916ce0f..6c0495736ee 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -644,13 +644,13 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( return TRUE var/obj/machinery/camera/C = null var/list/CL = null - if(O && istype(O, /list)) + if(O && islist(O)) CL = O if(CL.len == 1) C = CL[1] else if(O && istype(O, /obj/machinery/camera)) C = O - L[A.name] = list(A, (C) ? C : O, list(alarmsource)) + L[A.name] = list(A, (C ? C : O), list(alarmsource)) queueAlarm(text("--- [class] alarm detected in [A.name]!"), class) return TRUE diff --git a/code/modules/modular_computers/file_system/programs/engineering/alarm.dm b/code/modules/modular_computers/file_system/programs/engineering/alarm.dm index b2050f0a891..76d28827a30 100644 --- a/code/modules/modular_computers/file_system/programs/engineering/alarm.dm +++ b/code/modules/modular_computers/file_system/programs/engineering/alarm.dm @@ -39,7 +39,7 @@ return data -/datum/computer_file/program/alarm_monitor/proc/triggerAlarm(class, area/A, O, obj/source) +/datum/computer_file/program/alarm_monitor/proc/triggerAlarm(class, area/A, O, obj/alarmsource) if(is_station_level(source.z)) if(!(A.type in GLOB.the_station_areas)) return @@ -51,21 +51,19 @@ if(I == A.name) var/list/alarm = L[I] var/list/sources = alarm[3] - if(!(source in sources)) - sources += source + if(!(alarmsource in sources)) + sources += alarmsource return TRUE var/obj/machinery/camera/C = null var/list/CL = null - if(O && istype(O, /list)) + if(O && islist(O)) CL = O if(CL.len == 1) C = CL[1] else if(O && istype(O, /obj/machinery/camera)) C = O - L[A.name] = list(A, (C ? C : O), list(source)) - + L[A.name] = list(A, (C ? C : O), list(alarmsource)) update_alarm_display() - return TRUE