diff --git a/code/datums/cache/air_alarm.dm b/code/datums/cache/air_alarm.dm index 91583fb4bdf..03f35babc88 100644 --- a/code/datums/cache/air_alarm.dm +++ b/code/datums/cache/air_alarm.dm @@ -2,7 +2,7 @@ GLOBAL_DATUM_INIT(air_alarm_repository, /datum/repository/air_alarm, new()) -/datum/repository/air_alarm/proc/air_alarm_data(list/monitored_alarms, refresh = FALSE, obj/machinery/alarm/passed_alarm) +/datum/repository/air_alarm/proc/air_alarm_data(list/monitored_alarms, refresh = FALSE, obj/machinery/alarm/passed_alarm, target_z = null) var/list/alarms = list() var/datum/cache_entry/cache_entry = cache_data @@ -21,6 +21,9 @@ GLOBAL_DATUM_INIT(air_alarm_repository, /datum/repository/air_alarm, new()) for(var/obj/machinery/alarm/alarm in (monitored_alarms ? monitored_alarms : GLOB.air_alarms)) // Generating the whole list again is a bad habit but I can't be bothered to fix it right now if(!monitored_alarms && !is_station_contact(alarm.z)) continue + // We only care about checking target Z if its actually set + if(target_z && (alarm.z != target_z)) + continue if(!alarm.remote_control) continue alarms[++alarms.len] = alarm.get_console_data() diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index d10b39e925c..8142a2dd3e8 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -777,7 +777,8 @@ /obj/machinery/alarm/proc/is_authenticated(mob/user, datum/tgui/ui=null) // Return true if they are connecting with a remote console - if(istype(ui?.master_ui?.src_object.type, /datum/tgui_module/atmos_control)) + // DO NOT CHANGE THIS TO USE ISTYPE, IT WILL NOT WORK + if(ui?.master_ui?.src_object.type == /datum/tgui_module/atmos_control) return TRUE if(user.can_admin_interact()) return TRUE diff --git a/code/modules/tgui/modules/atmos_control.dm b/code/modules/tgui/modules/atmos_control.dm index 189031c23ac..09f566cadc3 100644 --- a/code/modules/tgui/modules/atmos_control.dm +++ b/code/modules/tgui/modules/atmos_control.dm @@ -24,6 +24,6 @@ /datum/tgui_module/atmos_control/tgui_data(mob/user) var/list/data = list() - data["alarms"] = GLOB.air_alarm_repository.air_alarm_data(GLOB.air_alarms) + data["alarms"] = GLOB.air_alarm_repository.air_alarm_data(GLOB.air_alarms, target_z=level_name_to_num(MAIN_STATION)) return data