From 4c2caf11b77983ac37f5370b23be4668cf7fc997 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Tue, 25 Apr 2017 14:06:03 -0400 Subject: [PATCH] Replace 'magic' messages with Facility PA This replaces the mystical messages of things like Command Reports, the 'All hands' message when a CD joins, and head announcements with a PA system that behaves more reasonably than pushing all the messages out of the chat box. Nothing about the systems changed, just the way they show up. They still make the sound, too. --- code/__defines/misc_vr.dm | 2 ++ code/defines/procs/announce.dm | 33 +++++++--------------------- code/modules/admin/admin.dm | 39 ++++++++++++++++++---------------- 3 files changed, 31 insertions(+), 43 deletions(-) diff --git a/code/__defines/misc_vr.dm b/code/__defines/misc_vr.dm index c61f8c3421a..7f25f414758 100644 --- a/code/__defines/misc_vr.dm +++ b/code/__defines/misc_vr.dm @@ -13,3 +13,5 @@ #define VANTAG_VORE "vantag_vore" #define VANTAG_KIDNAP "vantag_kidnap" #define VANTAG_KILL "vantag_kill" + +#define ANNOUNCER_NAME "Facility PA" diff --git a/code/defines/procs/announce.dm b/code/defines/procs/announce.dm index fbc3624b7d1..5bdacf5dd0c 100644 --- a/code/defines/procs/announce.dm +++ b/code/defines/procs/announce.dm @@ -1,3 +1,5 @@ +//VOREStation Edit - Most of this file has been changed to use the Eris-style PA announcements. +//You'll need to compare externally, or use your best judgement when merging. /var/datum/announcement/priority/priority_announcement = new(do_log = 0) /var/datum/announcement/priority/command/command_announcement = new(do_log = 0, do_newscast = 1) @@ -47,38 +49,19 @@ Log(message, message_title) datum/announcement/proc/Message(message as text, message_title as text) - for(var/mob/M in player_list) - if(!istype(M,/mob/new_player) && !isdeaf(M)) - M << "

[title]

" - M << "[message]" - if (announcer) - M << " -[html_encode(announcer)]" + global_announcer.autosay("[message_title]: [message]", announcer ? announcer : ANNOUNCER_NAME) datum/announcement/minor/Message(message as text, message_title as text) - world << "[message]" + global_announcer.autosay(message, announcer ? announcer : ANNOUNCER_NAME) datum/announcement/priority/Message(message as text, message_title as text) - world << "

[message_title]

" - world << "[message]" - if(announcer) - world << " -[html_encode(announcer)]" - world << "
" + global_announcer.autosay("[message_title]: [message]", announcer ? announcer : ANNOUNCER_NAME) datum/announcement/priority/command/Message(message as text, message_title as text) - var/command - command += "

[command_name()] Update

" - if (message_title) - command += "

[message_title]

" - - command += "
[message]
" - command += "
" - for(var/mob/M in player_list) - if(!istype(M,/mob/new_player) && !isdeaf(M)) - M << command + global_announcer.autosay("[command_name()] - [message_title]: [message]", ANNOUNCER_NAME) datum/announcement/priority/security/Message(message as text, message_title as text) - world << "[message_title]" - world << "[message]" + global_announcer.autosay("[message_title]: [message]", ANNOUNCER_NAME) datum/announcement/proc/NewsCast(message as text, message_title as text) if(!newscast) @@ -131,4 +114,4 @@ datum/announcement/proc/Log(message as text, message_title as text) AnnounceArrivalSimple(character.real_name, rank, join_message) /proc/AnnounceArrivalSimple(var/name, var/rank = "visitor", var/join_message = "has arrived on the station") - global_announcer.autosay("[name], [rank], [join_message].", "Arrivals Announcement Computer") + global_announcer.autosay("[name], [rank], [join_message].", ANNOUNCER_NAME) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 1b49ee1ef81..7d333e2b660 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -664,31 +664,34 @@ proc/admin_notice(var/message, var/rights) log_admin("Announce: [key_name(usr)] : [message]") feedback_add_details("admin_verb","A") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +//VOREStation Edit to this verb for the purpose of making it compliant with the annunciator system +var/datum/announcement/priority/admin_pri_announcer = new +var/datum/announcement/minor/admin_min_announcer = new /datum/admins/proc/intercom() set category = "Fun" set name = "Intercom Msg" set desc = "Send an intercom message, like an arrivals announcement." if(!check_rights(0)) return - //This is basically how death alarms do it - var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset/ert(null) - a.icon = 'icons/obj/radio.dmi' //VOREStation Tweak - a.icon_state = "intercom" //VOREStation Tweak + var/sender = input("Name of sender (max 75):", "Intercom Msg", ANNOUNCER_NAME) as null|text + if(sender) //They put a sender + sender = sanitize(sender, 75, extra = 0) + var/message = input("Message content (max 500):", "Contents", "This is a test of the announcement system.") as null|message + if(message) //They put a message + message = sanitize(message, 500, extra = 0) + var/priority = alert("Priority or Normal?","Intercom Msg","Priority","Cancel","Normal") + var/datum/announcement/A + switch(priority) + if("Priority") + A = admin_pri_announcer + if("Normal") + A = admin_min_announcer + if(A) + A.announcer = sender + A.Announce(message) + A.announcer = "" + log_admin("Intercom Verb: [key_name(usr)] : [sender]:[message]") - var/channel = input("Channel for message:","Channel", null) as null|anything in (list("Common") + a.keyslot1.channels + a.keyslot2.channels) - - if(channel) //They picked a channel - var/sender = input("Name of sender (max 75):", "Announcement", "Announcement Computer") as null|text - - if(sender) //They put a sender - sender = sanitize(sender, 75, extra = 0) - var/message = input("Message content (max 500):", "Contents", "This is a test of the announcement system.") as null|message - - if(message) //They put a message - message = sanitize(message, 500, extra = 0) - a.autosay("[message]", "[sender]", "[channel == "Common" ? null : channel]") //Common is a weird case, as it's not a "channel", it's just talking into a radio without a channel set. - log_admin("Intercom: [key_name(usr)] : [sender]:[message]") - qdel(a) feedback_add_details("admin_verb","IN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/toggleooc()