From a0097916d1cfdc87d9e0ade4a2fdb5910b1cb382 Mon Sep 17 00:00:00 2001 From: techbot Date: Mon, 10 Aug 2026 15:59:31 +0200 Subject: [PATCH] add a volume slider for station annoucements --- .../modules/alerts/code/alert_sound_to_playing.dm | 8 +++++--- .../modules/client/preferences/announcement_volume.dm | 5 +++++ tgstation.dme | 1 + .../preferences/features/game_preferences/sounds.tsx | 9 +++++++++ 4 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 modular_zzmeta/code/modules/client/preferences/announcement_volume.dm diff --git a/modular_skyrat/modules/alerts/code/alert_sound_to_playing.dm b/modular_skyrat/modules/alerts/code/alert_sound_to_playing.dm index 4686a169719a30..8c5eb958cff1a0 100644 --- a/modular_skyrat/modules/alerts/code/alert_sound_to_playing.dm +++ b/modular_skyrat/modules/alerts/code/alert_sound_to_playing.dm @@ -9,11 +9,13 @@ if(ismob(m) && !isnewplayer(m)) var/mob/M = m if(M.client?.prefs.read_preference(/datum/preference/toggle/sound_announcements) && !HAS_TRAIT(M, TRAIT_DEAF)) + // META EDIT - CHANGE - START - ANNOUNCEMENT_VOLUME if(override_volume) - M.playsound_local(get_turf(M), S, 80, FALSE) + M.playsound_local(get_turf(M), S, 80, FALSE, volume_preference = /datum/preference/numeric/volume/sound_announcements_volume) else var/area/A = get_area(M) if(is_type_in_typecache(A, quiet_areas)) //These areas don't hear it as loudly - M.playsound_local(get_turf(M), S, 30, FALSE) + M.playsound_local(get_turf(M), S, 30, FALSE, volume_preference = /datum/preference/numeric/volume/sound_announcements_volume) else - M.playsound_local(get_turf(M), S, 70, FALSE) + M.playsound_local(get_turf(M), S, 70, FALSE, volume_preference = /datum/preference/numeric/volume/sound_announcements_volume) + // META EDIT - CHANGE - END - ANNOUNCEMENT_VOLUME diff --git a/modular_zzmeta/code/modules/client/preferences/announcement_volume.dm b/modular_zzmeta/code/modules/client/preferences/announcement_volume.dm new file mode 100644 index 00000000000000..f68093187717c7 --- /dev/null +++ b/modular_zzmeta/code/modules/client/preferences/announcement_volume.dm @@ -0,0 +1,5 @@ +/// Controls the volume of station announcement/alert sounds (comms console, AI, alarms, etc.) +/datum/preference/numeric/volume/sound_announcements_volume + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "sound_announcements_volume" + savefile_identifier = PREFERENCE_PLAYER diff --git a/tgstation.dme b/tgstation.dme index 5a42f5f473f470..d4c28a93572c98 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -10515,6 +10515,7 @@ #include "modular_zzmeta\code\game\objects\items\plushes.dm" #include "modular_zzmeta\code\game\sound\sound.dm" #include "modular_zzmeta\code\modules\client\audio_browser.dm" +#include "modular_zzmeta\code\modules\client\preferences\announcement_volume.dm" #include "modular_zzmeta\code\modules\client\preferences\blooper.dm" #include "modular_zzmeta\code\modules\client\preferences\middleware\blooper.dm" #include "modular_zzmeta\code\modules\emotes\species_crys.dm" diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/sounds.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/sounds.tsx index 541de5a5a96600..700e572c722af7 100644 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/sounds.tsx +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/sounds.tsx @@ -28,6 +28,15 @@ export const sound_announcements: FeatureToggle = { component: CheckboxInput, }; +// META EDIT - ADDITION - START - ANNOUNCEMENT_VOLUME +export const sound_announcements_volume: Feature = { + name: 'Announcement volume', + category: 'SOUND', + description: 'The volume that announcement sounds (command reports, notices, alarms, etc.) will play at.', + component: FeatureSliderInput, +}; +// META EDIT - ADDITION - END - ANNOUNCEMENT_VOLUME + export const sound_ghost_poll_prompt: FeatureChoiced = { name: 'Ghost poll prompt', category: 'SOUND',