From 4b45dab114403715c3e4053d676f1e798e4dc5c6 Mon Sep 17 00:00:00 2001 From: QuoteFox <49098813+quotefox@users.noreply.github.com> Date: Mon, 28 Sep 2020 16:48:32 +0100 Subject: [PATCH] Radio sounds When you hear a message over the radio, it plays a non-intrusive radio sound, this can be toggled in preferences. Heavily inspired by goon station. --- code/modules/client/preferences.dm | 13 ++++++++----- code/modules/client/preferences_savefile.dm | 3 +++ code/modules/mob/living/say.dm | 2 ++ sound/voice/radio.ogg | Bin 0 -> 4388 bytes tgstation.dme | 2 +- 5 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 sound/voice/radio.ogg diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 28ae3ea7..8e0ec157 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -46,6 +46,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/buttons_locked = FALSE var/hotkeys = FALSE var/chat_on_map = TRUE + var/radiosounds = TRUE var/max_chat_length = CHAT_MESSAGE_MAX_LENGTH var/see_chat_non_mob = TRUE var/tgui_fancy = TRUE @@ -861,9 +862,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "UI Style: [UI_style]
" dat += "tgui Monitors: [(tgui_lock) ? "Primary" : "All"]
" dat += "tgui Style: [(tgui_fancy) ? "Fancy" : "No Frills"]
" - dat += "Show Runechat Chat Bubbles: [chat_on_map ? "Enabled" : "Disabled"]
" - dat += "Runechat message char limit: [max_chat_length]
" - dat += "See Runechat for non-mobs: [see_chat_non_mob ? "Enabled" : "Disabled"]
" + dat += "Chat Bubbles: [chat_on_map ? "Enabled" : "Disabled"]
" + dat += "Chat Bubbles message char limit: [max_chat_length]
" + dat += "Chat Bubbles for non-mobs: [see_chat_non_mob ? "Enabled" : "Disabled"]
" + dat += "
" + dat += "Radio Sounds: [radiosounds ? "Enabled" : "Disabled"]
" dat += "
" dat += "Action Buttons: [(buttons_locked) ? "Locked In Place" : "Unlocked"]
" dat += "Keybindings: [(hotkeys) ? "Hotkeys" : "Default"]
" @@ -938,8 +941,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Be [capitalize(i)]: \[IN [days_remaining] DAYS]
" else dat += "Be [capitalize(i)]: [(i in be_special) ? "Enabled" : "Disabled"]
" - - dat += "
" dat += "" dat += "" @@ -2382,6 +2383,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) buttons_locked = !buttons_locked if("chat_on_map") chat_on_map = !chat_on_map + if("radiosounds") + radiosounds = !radiosounds if("see_chat_non_mob") see_chat_non_mob = !see_chat_non_mob if("tgui_fancy") diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index cca8266c..1c4c6a88 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -101,6 +101,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["uses_glasses_colour"]>> uses_glasses_colour S["clientfps"] >> clientfps S["chat_on_map"] >> chat_on_map + S["radiosounds"] >> chat_on_map S["max_chat_length"] >> max_chat_length S["see_chat_non_mob"] >> see_chat_non_mob @@ -137,6 +138,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car UI_style = sanitize_inlist(UI_style, GLOB.available_ui_styles, GLOB.available_ui_styles[1]) hotkeys = sanitize_integer(hotkeys, 0, 1, initial(hotkeys)) chat_on_map = sanitize_integer(chat_on_map, 0, 1, initial(chat_on_map)) + radiosounds = sanitize_integer(radiosounds, 0, 1, initial(radiosounds)) max_chat_length = sanitize_integer(max_chat_length, 1, CHAT_MESSAGE_MAX_LENGTH, initial(max_chat_length)) see_chat_non_mob = sanitize_integer(see_chat_non_mob, 0, 1, initial(see_chat_non_mob)) tgui_fancy = sanitize_integer(tgui_fancy, 0, 1, initial(tgui_fancy)) @@ -192,6 +194,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["UI_style"], UI_style) WRITE_FILE(S["hotkeys"], hotkeys) WRITE_FILE(S["chat_on_map"], chat_on_map) + WRITE_FILE(S["radiosounds"], radiosounds) WRITE_FILE(S["max_chat_length"], max_chat_length) WRITE_FILE(S["see_chat_non_mob"], see_chat_non_mob) WRITE_FILE(S["tgui_fancy"], tgui_fancy) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index c608e584..23df3438 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -241,6 +241,8 @@ GLOBAL_LIST_INIT(department_radio_keys, list( // Create map text prior to modifying message for goonchat if (client?.prefs.chat_on_map && stat != UNCONSCIOUS && (client.prefs.see_chat_non_mob || ismob(speaker)) && can_hear()) create_chat_message(speaker, message_language, raw_message, spans, message_mode) + if (client?.prefs.radiosounds && stat != UNCONSCIOUS && can_hear() && radio_freq) + playsound_local(src,'sound/voice/radio.ogg', 40, 1) // Recompose message for AI hrefs, language incomprehension. message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode) diff --git a/sound/voice/radio.ogg b/sound/voice/radio.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0dcb87214ff4563daca5be5dd76c503717fa9d9b GIT binary patch literal 4388 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 literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 3f43b62d..a84d3c34 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1147,7 +1147,6 @@ #include "code\modules\admin\verbs\adminjump.dm" #include "code\modules\admin\verbs\adminpm.dm" #include "code\modules\admin\verbs\adminsay.dm" -#include "code\modules\admin\verbs\spawnfloorcluwne.dm" #include "code\modules\admin\verbs\ak47s.dm" #include "code\modules\admin\verbs\atmosdebug.dm" #include "code\modules\admin\verbs\bluespacearty.dm" @@ -1176,6 +1175,7 @@ #include "code\modules\admin\verbs\pray.dm" #include "code\modules\admin\verbs\randomverbs.dm" #include "code\modules\admin\verbs\reestablish_db_connection.dm" +#include "code\modules\admin\verbs\spawnfloorcluwne.dm" #include "code\modules\admin\verbs\spawnobjasmob.dm" #include "code\modules\admin\verbs\tripAI.dm" #include "code\modules\admin\verbs\SDQL2\SDQL_2.dm"