Looping Sound Channel (#22918)

* Added the option to manually change the looping sound channel volume
in the SFX Preferences tab.


AI usage disclosure: The code for this was created in-part using GPT 5.6
Sol.

---------

Signed-off-by: Geeves <22774890+Geevies@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
This commit is contained in:
Geeves
2026-08-16 18:19:53 +02:00
committed by GitHub
co-authored by VMSolidus
parent cdb6f6bf3e
commit 5df674622c
8 changed files with 46 additions and 11 deletions
@@ -9,6 +9,7 @@
S["sfx_toggles"] >> pref.sfx_toggles
S["toggles_secondary"] >> pref.toggles_secondary
S["lobby_music_vol"] >> pref.lobby_music_vol
S["looping_sound_volume"] >> pref.looping_sound_volume
/datum/category_item/player_setup_item/player_global/settings/save_preferences(var/savefile/S)
S["lastchangelog"] << pref.lastchangelog
@@ -17,6 +18,7 @@
S["sfx_toggles"] << pref.sfx_toggles
S["toggles_secondary"] << pref.toggles_secondary
S["lobby_music_vol"] << pref.lobby_music_vol
S["looping_sound_volume"] << pref.looping_sound_volume
/datum/category_item/player_setup_item/player_global/settings/gather_load_query()
return list(
@@ -27,7 +29,8 @@
"toggles",
"sfx_toggles",
"toggles_secondary",
"lobby_music_vol"
"lobby_music_vol",
"looping_sound_volume"
),
"args" = list("ckey")
)
@@ -46,6 +49,7 @@
"ckey" = 1,
"toggles_secondary",
"lobby_music_vol",
"looping_sound_volume",
)
)
@@ -57,7 +61,8 @@
"toggles" = pref.toggles,
"sfx_toggles" = pref.sfx_toggles,
"toggles_secondary" = pref.toggles_secondary,
"lobby_music_vol" = pref.lobby_music_vol
"lobby_music_vol" = pref.lobby_music_vol,
"looping_sound_volume" = pref.looping_sound_volume
)
/datum/category_item/player_setup_item/player_global/settings/sanitize_preferences(var/sql_load = 0)
@@ -71,6 +76,7 @@
pref.sfx_toggles = sanitize_integer(text2num(pref.sfx_toggles), 0, BITFIELDMAX, initial(pref.toggles))
pref.toggles_secondary = sanitize_integer(text2num(pref.toggles_secondary), 0, BITFIELDMAX, initial(pref.toggles_secondary))
pref.lobby_music_vol = sanitize_integer(text2num(pref.lobby_music_vol), 0, BITFIELDMAX, initial(pref.lobby_music_vol))
pref.looping_sound_volume = sanitize_integer(text2num(pref.looping_sound_volume), 0, 100, initial(pref.looping_sound_volume))
/datum/category_item/player_setup_item/player_global/settings/content(mob/user)
var/list/dat = list(
+1
View File
@@ -33,6 +33,7 @@ GLOBAL_LIST_EMPTY_TYPED(preferences_datums, /datum/preferences)
var/tgui_say_light_mode = FALSE
var/ui_scale = TRUE
var/lobby_music_vol = 85
var/looping_sound_volume = 100
//Style for popup tooltips
var/tooltip_style = "Midnight"
+14 -1
View File
@@ -14,7 +14,8 @@ GLOBAL_LIST_INIT(sfx_toggles, list(
/client/proc/toggle_dropsounds,
/client/proc/toggle_arcadesounds,
/client/proc/toggle_radiosounds,
/client/proc/toggle_instrumentsounds
/client/proc/toggle_instrumentsounds,
/client/proc/toggle_looping_sounds
))
/client/var/has_sfx_verbs = FALSE
@@ -147,3 +148,15 @@ GLOBAL_LIST_INIT(sfx_toggles, list(
prefs.sfx_toggles ^= ASFX_INSTRUMENT
prefs.save_preferences()
to_chat(src, SPAN_INFO("You will [(prefs.sfx_toggles & ASFX_INSTRUMENT) ? "now" : "no longer"] hear instrument sounds."))
/client/proc/toggle_looping_sounds()
set name = "Set Looping SFX Volume"
set category = "SFX Preferences"
set desc = "Sets the volume of looping sound effects"
var/new_volume = tgui_input_number(src, "Choose looping sound effect volume, 0 to mute", "Looping SFX Volume", prefs.looping_sound_volume, 100, 0, 0, TRUE)
if(isnull(new_volume))
return
prefs.looping_sound_volume = new_volume
prefs.save_preferences()
to_chat(src, SPAN_INFO("Looping sound effect volume set to [new_volume]%."))