From c9f7b77e9373d4469cee51bbbfdac21879eb097f Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Tue, 28 Mar 2017 16:09:14 -0400 Subject: [PATCH] Make AR glasses show messages like HUDs So AR-M get the medibot messages, AR-S get the security bot messages, and now AR-E glasses get atmos and fire alarm messages --- code/defines/procs/hud.dm | 6 +++++- code/defines/procs/hud_vr.dm | 26 ++++++++++++++++++++++++- code/modules/alarm/atmosphere_alarm.dm | 7 +++++++ code/modules/alarm/fire_alarm.dm | 5 +++++ code/modules/clothing/glasses/hud_vr.dm | 4 ++-- 5 files changed, 44 insertions(+), 4 deletions(-) diff --git a/code/defines/procs/hud.dm b/code/defines/procs/hud.dm index d712bf854f..c1539074eb 100644 --- a/code/defines/procs/hud.dm +++ b/code/defines/procs/hud.dm @@ -71,7 +71,11 @@ mob/proc/handle_regular_hud_updates() //Used in the life.dm of mobs that can use client.images -= hud med_hud_users -= src sec_hud_users -= src - + //VOREStation Add - HUD lists + eng_hud_users -= src + sci_hud_users -= src + gen_hud_users -= src + //VOREStation Add End mob/proc/in_view(var/turf/T) return view(T) diff --git a/code/defines/procs/hud_vr.dm b/code/defines/procs/hud_vr.dm index 7ea10110a3..53a9056ed9 100644 --- a/code/defines/procs/hud_vr.dm +++ b/code/defines/procs/hud_vr.dm @@ -1,8 +1,32 @@ +var/global/list/gen_hud_users = list() // List of all entities using a generic AR shades. +var/global/list/eng_hud_users = list() // List of all entities using a engineer HUD. +var/global/list/sci_hud_users = list() // List of all entities using a science HUD. + +/proc/broadcast_engineering_hud_message(var/message, var/broadcast_source) + broadcast_hud_message(message, broadcast_source, eng_hud_users, /obj/item/clothing/glasses/omnihud/eng) + +/proc/broadcast_science_hud_message(var/message, var/broadcast_source) + broadcast_hud_message(message, broadcast_source, sci_hud_users, /obj/item/clothing/glasses/omnihud/rnd) + proc/process_omni_hud(var/mob/M, var/mode, var/mob/Alt) if(!can_process_hud(M)) return - var/datum/arranged_hud_process/P = arrange_hud_process(M, Alt, med_hud_users) + var/datum/arranged_hud_process/P + switch(mode) + if("med") + P = arrange_hud_process(M, Alt, med_hud_users) + if("sec") + P = arrange_hud_process(M, Alt, sec_hud_users) + if("eng") + P = arrange_hud_process(M, Alt, eng_hud_users) + if("sci") + P = arrange_hud_process(M, Alt, sci_hud_users) + if("best") + P = arrange_hud_process(M, Alt, sec_hud_users) + else + P = arrange_hud_process(M, Alt, gen_hud_users) + for(var/mob/living/carbon/human/guy in P.Mob.in_view(P.Turf)) if(P.Mob.see_invisible < guy.invisibility) continue diff --git a/code/modules/alarm/atmosphere_alarm.dm b/code/modules/alarm/atmosphere_alarm.dm index 9751319111..96608c5e20 100644 --- a/code/modules/alarm/atmosphere_alarm.dm +++ b/code/modules/alarm/atmosphere_alarm.dm @@ -17,3 +17,10 @@ if(A.max_severity() == 1) minor_alarms.Add(A) return minor_alarms + +//VOREStation Add - Alarm for AR glasses +/datum/alarm_handler/atmosphere/on_alarm_change(var/datum/alarm/alarm, var/was_raised) + ..() + var/atom/source = alarm.sources_assoc[1] + broadcast_engineering_hud_message("Alarm in [alarm.origin]!", source) +//VOREStation Add End \ No newline at end of file diff --git a/code/modules/alarm/fire_alarm.dm b/code/modules/alarm/fire_alarm.dm index 9c7a9874c7..76901affd6 100644 --- a/code/modules/alarm/fire_alarm.dm +++ b/code/modules/alarm/fire_alarm.dm @@ -6,6 +6,11 @@ if(istype(A)) if(was_raised) A.fire_alert() + + //VOREStation Add - Alarm for AR glasses uses + var/atom/source = alarm.sources_assoc[1] + broadcast_engineering_hud_message("Alarm in [alarm.origin]!", source) + //VOREStation Add End else A.fire_reset() ..() diff --git a/code/modules/clothing/glasses/hud_vr.dm b/code/modules/clothing/glasses/hud_vr.dm index 9084add464..8d5b923d53 100644 --- a/code/modules/clothing/glasses/hud_vr.dm +++ b/code/modules/clothing/glasses/hud_vr.dm @@ -103,7 +103,7 @@ name = "AR-E glasses" desc = "The KHI-62-E AR glasses are a design from Kitsuhana Heavy Industries. \ These have been upgraded with advanced electrochromic lenses to protect your eyes during welding." - mode = "civ" + mode = "eng" flash_prot = 2 //Welding protection. action_button_name = "AR Console (Station Alerts)" arscreen_path = /datum/nano_module/alarm_monitor @@ -117,7 +117,7 @@ name = "AR-R glasses" desc = "The KHI-62-R AR glasses are a design from Kitsuhana Heavy Industries. \ These have been ... modified ... to fit into a different frame." - mode = "civ" + mode = "sci" icon = 'icons/obj/clothing/glasses.dmi' icon_override = null icon_state = "purple"