diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm
index 4065d847c57..5de930d26f5 100644
--- a/code/__DEFINES/preferences.dm
+++ b/code/__DEFINES/preferences.dm
@@ -3,15 +3,9 @@
// !!! DO NOT ADD ANY NEW ONES HERE !!!
// Use `/datum/preference/toggle` instead.
#define SOUND_ADMINHELP (1<<0)
-#define SOUND_MIDI (1<<1)
-#define SOUND_AMBIENCE (1<<2)
-#define SOUND_LOBBY (1<<3)
#define MEMBER_PUBLIC (1<<4)
-#define SOUND_INSTRUMENTS (1<<7)
-#define SOUND_SHIP_AMBIENCE (1<<8)
#define SOUND_PRAYERS (1<<9)
#define ANNOUNCE_LOGIN (1<<10)
-#define SOUND_ANNOUNCEMENTS (1<<11)
#define DISABLE_DEATHRATTLE (1<<12)
#define DISABLE_ARRIVALRATTLE (1<<13)
#define COMBOHUD_LIGHTING (1<<14)
@@ -20,12 +14,10 @@
#define DEADMIN_POSITION_HEAD (1<<17)
#define DEADMIN_POSITION_SECURITY (1<<18)
#define DEADMIN_POSITION_SILICON (1<<19)
-#define SOUND_ENDOFROUND (1<<20)
#define ADMIN_IGNORE_CULT_GHOST (1<<21)
-#define SOUND_COMBATMODE (1<<22)
#define SPLIT_ADMIN_TABS (1<<23)
-#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|SOUND_ENDOFROUND|MEMBER_PUBLIC|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS|SOUND_COMBATMODE)
+#define TOGGLES_DEFAULT (SOUND_ADMINHELP|MEMBER_PUBLIC|SOUND_PRAYERS)
// Legacy chat toggles.
// !!! DO NOT ADD ANY NEW ONES HERE !!!
diff --git a/code/__HELPERS/priority_announce.dm b/code/__HELPERS/priority_announce.dm
index ea33b45c5ab..1474689d4e3 100644
--- a/code/__HELPERS/priority_announce.dm
+++ b/code/__HELPERS/priority_announce.dm
@@ -46,7 +46,7 @@
for(var/mob/target in players)
if(!isnewplayer(target) && target.can_hear())
to_chat(target, announcement)
- if(target.client.prefs.toggles & SOUND_ANNOUNCEMENTS)
+ if(target.client.prefs.read_preference(/datum/preference/toggle/sound_announcements))
SEND_SOUND(target, sound_to_play)
/**
@@ -124,6 +124,6 @@
continue
to_chat(target, "[span_minorannounce("[title]
[message]")]
")
- if(target.client?.prefs.toggles & SOUND_ANNOUNCEMENTS)
+ if(target.client?.prefs.read_preference(/datum/preference/toggle/sound_announcements))
var/sound_to_play = sound_override || (alert ? 'sound/misc/notice1.ogg' : 'sound/misc/notice2.ogg')
SEND_SOUND(target, sound(sound_to_play))
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index 5689314e319..c18ede912cc 100755
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -666,7 +666,7 @@ SUBSYSTEM_DEF(ticker)
///The reference to the end of round sound that we have chosen.
var/sound/end_of_round_sound_ref = sound(round_end_sound)
for(var/mob/M in GLOB.player_list)
- if(M.client.prefs?.toggles & SOUND_ENDOFROUND)
+ if(M.client.prefs.read_preference(/datum/preference/toggle/sound_endofround))
SEND_SOUND(M.client, end_of_round_sound_ref)
text2file(login_music, "data/last_round_lobby_music.txt")
diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm
index d3d639f6b29..edfd08cb36a 100644
--- a/code/controllers/subsystem/vote.dm
+++ b/code/controllers/subsystem/vote.dm
@@ -194,7 +194,7 @@ SUBSYSTEM_DEF(vote)
new_voter.player_details.player_actions += voting_action
generated_actions += voting_action
- if(current_vote.vote_sound && (new_voter.prefs.toggles & SOUND_ANNOUNCEMENTS))
+ if(current_vote.vote_sound && (new_voter.prefs.read_preference(/datum/preference/toggle/sound_announcements)))
SEND_SOUND(new_voter, sound(current_vote.vote_sound))
return TRUE
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index 465b0842465..8c8d1236ed0 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -455,7 +455,7 @@ GLOBAL_LIST_EMPTY(teleportlocs)
var/area/my_area = get_area(src)
- if(!(client?.prefs.toggles & SOUND_SHIP_AMBIENCE) || !my_area.ambient_buzz)
+ if(!(client?.prefs.read_preference(/datum/preference/toggle/sound_ship_ambience)) || !my_area.ambient_buzz)
SEND_SOUND(src, sound(null, repeat = 0, wait = 0, channel = CHANNEL_BUZZ))
return
diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm
index bedb9f37893..28a91fd538c 100644
--- a/code/game/machinery/dance_machine.dm
+++ b/code/game/machinery/dance_machine.dm
@@ -454,13 +454,13 @@
var/sound/song_played = sound(selection.song_path)
for(var/mob/M in range(10,src))
- if(!M.client || !(M.client.prefs.toggles & SOUND_INSTRUMENTS))
+ if(!M.client || !(M.client.prefs.read_preference(/datum/preference/toggle/sound_jukebox)))
continue
if(!(M in rangers))
rangers[M] = TRUE
M.playsound_local(get_turf(M), null, volume, channel = CHANNEL_JUKEBOX, sound_to_use = song_played, use_reverb = FALSE)
for(var/mob/L in rangers)
- if(get_dist(src,L) > 10)
+ if(get_dist(src,L) > 10 || !(L.client.prefs.read_preference(/datum/preference/toggle/sound_jukebox)))
rangers -= L
if(!L || !L.client)
continue
diff --git a/code/game/sound.dm b/code/game/sound.dm
index c8e48a16b8d..03e07fc4e46 100644
--- a/code/game/sound.dm
+++ b/code/game/sound.dm
@@ -175,7 +175,7 @@
set waitfor = FALSE
UNTIL(SSticker.login_music) //wait for SSticker init to set the login music
- if(prefs && (prefs.toggles & SOUND_LOBBY) && !CONFIG_GET(flag/disallow_title_music))
+ if(prefs && (prefs.read_preference(/datum/preference/toggle/sound_lobby)) && !CONFIG_GET(flag/disallow_title_music))
SEND_SOUND(src, sound(SSticker.login_music, repeat = 0, wait = 0, volume = vol, channel = CHANNEL_LOBBYMUSIC)) // MAD JAMS
/proc/get_rand_frequency()
diff --git a/code/modules/admin/sound_emitter.dm b/code/modules/admin/sound_emitter.dm
index c96253381b9..4786e0ad7c1 100644
--- a/code/modules/admin/sound_emitter.dm
+++ b/code/modules/admin/sound_emitter.dm
@@ -138,7 +138,7 @@
if(SOUND_EMITTER_GLOBAL)
hearing_mobs = GLOB.player_list.Copy()
for(var/mob/M in hearing_mobs)
- if(M.client.prefs.toggles & SOUND_MIDI)
+ if(M.client.prefs.read_preference(/datum/preference/toggle/sound_midi))
M.playsound_local(M, sound_file, sound_volume, FALSE, channel = CHANNEL_ADMIN, pressure_affected = FALSE)
if(user)
log_admin("[ADMIN_LOOKUPFLW(user)] activated a sound emitter with file \"[sound_file]\" at [AREACOORD(src)]")
diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm
index cba686c68d3..37f71218e51 100644
--- a/code/modules/admin/verbs/playsound.dm
+++ b/code/modules/admin/verbs/playsound.dm
@@ -36,7 +36,7 @@
message_admins("[key_name_admin(src)] played sound [S]")
for(var/mob/M in GLOB.player_list)
- if(M.client.prefs.toggles & SOUND_MIDI)
+ if(M.client.prefs.read_preference(/datum/preference/toggle/sound_midi))
admin_sound.volume = vol * M.client.admin_music_volume
SEND_SOUND(M, admin_sound)
admin_sound.volume = vol
@@ -146,7 +146,7 @@
for(var/m in GLOB.player_list)
var/mob/M = m
var/client/C = M.client
- if(C.prefs.toggles & SOUND_MIDI)
+ if(C.prefs.read_preference(/datum/preference/toggle/sound_midi))
if(!stop_web_sounds)
C.tgui_panel?.play_music(web_sound_url, music_extra_data)
else
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 8b8c2acffb2..23e777084c8 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -1192,7 +1192,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
winset(src, "default.ShiftUp", "is-disabled=true")
/client/proc/update_ambience_pref()
- if(prefs.toggles & SOUND_AMBIENCE)
+ if(prefs.read_preference(/datum/preference/toggle/sound_ambience))
if(SSambience.ambience_listening_clients[src] > world.time)
return // If already properly set we don't want to reset the timer.
SSambience.ambience_listening_clients[src] = world.time + 10 SECONDS //Just wait 10 seconds before the next one aight mate? cheers.
diff --git a/code/modules/client/preferences/middleware/legacy_toggles.dm b/code/modules/client/preferences/middleware/legacy_toggles.dm
index e35832e5434..926f2687903 100644
--- a/code/modules/client/preferences/middleware/legacy_toggles.dm
+++ b/code/modules/client/preferences/middleware/legacy_toggles.dm
@@ -20,15 +20,7 @@
"disable_deathrattle" = DISABLE_DEATHRATTLE,
"member_public" = MEMBER_PUBLIC,
"sound_adminhelp" = SOUND_ADMINHELP,
- "sound_ambience" = SOUND_AMBIENCE,
- "sound_announcements" = SOUND_ANNOUNCEMENTS,
- "sound_combatmode" = SOUND_COMBATMODE,
- "sound_endofround" = SOUND_ENDOFROUND,
- "sound_instruments" = SOUND_INSTRUMENTS,
- "sound_lobby" = SOUND_LOBBY,
- "sound_midi" = SOUND_MIDI,
"sound_prayers" = SOUND_PRAYERS,
- "sound_ship_ambience" = SOUND_SHIP_AMBIENCE,
"split_admin_tabs" = SPLIT_ADMIN_TABS,
)
@@ -110,14 +102,6 @@
else
preferences.toggles &= ~legacy_flag
- // I know this looks silly, but this is the only one that cares
- // and NO NEW LEGACY TOGGLES should ever be added.
- if (legacy_flag == SOUND_LOBBY)
- if (value && isnewplayer(user))
- user.client?.playtitlemusic()
- else
- user.stop_sound_channel(CHANNEL_LOBBYMUSIC)
-
return TRUE
var/legacy_chat_flag = legacy_chat_toggles[preference]
diff --git a/code/modules/client/preferences/migrations/legacy_sound_toggles_migration.dm b/code/modules/client/preferences/migrations/legacy_sound_toggles_migration.dm
new file mode 100644
index 00000000000..cb0ca59e343
--- /dev/null
+++ b/code/modules/client/preferences/migrations/legacy_sound_toggles_migration.dm
@@ -0,0 +1,13 @@
+/// Previously, sound preferences were legacy toggles.
+/// PR #71040 changed these to modern toggles.
+/// This migration transfers the player's existing preferences into the new toggles
+
+/datum/preferences/proc/migrate_legacy_sound_toggles(savefile/savefile)
+ write_preference(GLOB.preference_entries[/datum/preference/toggle/sound_ambience], toggles & 1<<2)
+ write_preference(GLOB.preference_entries[/datum/preference/toggle/sound_announcements], toggles & 1<<11)
+ write_preference(GLOB.preference_entries[/datum/preference/toggle/sound_combatmode], toggles & 1<<22)
+ write_preference(GLOB.preference_entries[/datum/preference/toggle/sound_endofround], toggles & 1<<20)
+ write_preference(GLOB.preference_entries[/datum/preference/toggle/sound_instruments], toggles & 1<<7)
+ write_preference(GLOB.preference_entries[/datum/preference/toggle/sound_lobby], toggles & 1<<3)
+ write_preference(GLOB.preference_entries[/datum/preference/toggle/sound_midi], toggles & 1<<1)
+ write_preference(GLOB.preference_entries[/datum/preference/toggle/sound_ship_ambience], toggles & 1<<8)
diff --git a/code/modules/client/preferences/sounds.dm b/code/modules/client/preferences/sounds.dm
new file mode 100644
index 00000000000..a826f9ef19f
--- /dev/null
+++ b/code/modules/client/preferences/sounds.dm
@@ -0,0 +1,63 @@
+/// Controls hearing ambience
+/datum/preference/toggle/sound_ambience
+ category = PREFERENCE_CATEGORY_GAME_PREFERENCES
+ savefile_key = "sound_ambience"
+ savefile_identifier = PREFERENCE_PLAYER
+
+/// Controls hearing announcement sounds
+/datum/preference/toggle/sound_announcements
+ category = PREFERENCE_CATEGORY_GAME_PREFERENCES
+ savefile_key = "sound_announcements"
+ savefile_identifier = PREFERENCE_PLAYER
+
+/// Controls hearing the combat mode toggle sound
+/datum/preference/toggle/sound_combatmode
+ category = PREFERENCE_CATEGORY_GAME_PREFERENCES
+ savefile_key = "sound_combatmode"
+ savefile_identifier = PREFERENCE_PLAYER
+
+/// Controls hearing round end sounds
+/datum/preference/toggle/sound_endofround
+ category = PREFERENCE_CATEGORY_GAME_PREFERENCES
+ savefile_key = "sound_endofround"
+ savefile_identifier = PREFERENCE_PLAYER
+
+/// Controls hearing instruments
+/datum/preference/toggle/sound_instruments
+ category = PREFERENCE_CATEGORY_GAME_PREFERENCES
+ savefile_key = "sound_instruments"
+ savefile_identifier = PREFERENCE_PLAYER
+
+/// Controls hearing dance machines
+/datum/preference/toggle/sound_jukebox
+ category = PREFERENCE_CATEGORY_GAME_PREFERENCES
+ savefile_key = "sound_jukebox"
+ savefile_identifier = PREFERENCE_PLAYER
+
+/datum/preference/toggle/sound_jukebox/apply_to_client_updated(client/client, value)
+ if (!value)
+ client.mob.stop_sound_channel(CHANNEL_JUKEBOX)
+
+/// Controls hearing lobby music
+/datum/preference/toggle/sound_lobby
+ category = PREFERENCE_CATEGORY_GAME_PREFERENCES
+ savefile_key = "sound_lobby"
+ savefile_identifier = PREFERENCE_PLAYER
+
+/datum/preference/toggle/sound_lobby/apply_to_client_updated(client/client, value)
+ if (value && isnewplayer(client.mob))
+ client.playtitlemusic()
+ else
+ client.mob.stop_sound_channel(CHANNEL_LOBBYMUSIC)
+
+/// Controls hearing admin music
+/datum/preference/toggle/sound_midi
+ category = PREFERENCE_CATEGORY_GAME_PREFERENCES
+ savefile_key = "sound_midi"
+ savefile_identifier = PREFERENCE_PLAYER
+
+/// Controls hearing ship ambience
+/datum/preference/toggle/sound_ship_ambience
+ category = PREFERENCE_CATEGORY_GAME_PREFERENCES
+ savefile_key = "sound_ship_ambience"
+ savefile_identifier = PREFERENCE_PLAYER
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 2ffd7abe3ac..ad28e5aa13d 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -5,7 +5,7 @@
// You do not need to raise this if you are adding new values that have sane defaults.
// Only raise this value when changing the meaning/format/name/layout of an existing value
// where you would want the updater procs below to run
-#define SAVEFILE_VERSION_MAX 42
+#define SAVEFILE_VERSION_MAX 43
/*
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
@@ -42,9 +42,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
//if your savefile is 3 months out of date, then 'tough shit'.
/datum/preferences/proc/update_preferences(current_version, savefile/S)
- if(current_version < 33)
- toggles |= SOUND_ENDOFROUND
-
if(current_version < 34)
write_preference(/datum/preference/toggle/auto_fit_viewport, TRUE)
@@ -103,6 +100,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if (current_version < 42)
migrate_body_types(savefile)
+ if (current_version < 43)
+ migrate_legacy_sound_toggles(savefile)
+
/// checks through keybindings for outdated unbound keys and updates them
/datum/preferences/proc/check_keybindings()
if(!parent)
diff --git a/code/modules/events/aurora_caelus.dm b/code/modules/events/aurora_caelus.dm
index d8ba402b260..87ed5518bb8 100644
--- a/code/modules/events/aurora_caelus.dm
+++ b/code/modules/events/aurora_caelus.dm
@@ -25,7 +25,7 @@
sender_override = "Nanotrasen Meteorology Division")
for(var/V in GLOB.player_list)
var/mob/M = V
- if((M.client.prefs.toggles & SOUND_MIDI) && is_station_level(M.z))
+ if((M.client.prefs.read_preference(/datum/preference/toggle/sound_midi)) && is_station_level(M.z))
M.playsound_local(M, 'sound/ambience/aurora_caelus.ogg', 20, FALSE, pressure_affected = FALSE)
/datum/round_event/aurora_caelus/start()
diff --git a/code/modules/instruments/songs/play_legacy.dm b/code/modules/instruments/songs/play_legacy.dm
index 1b7efcad8a0..7094de85a89 100644
--- a/code/modules/instruments/songs/play_legacy.dm
+++ b/code/modules/instruments/songs/play_legacy.dm
@@ -85,7 +85,7 @@
if(player && HAS_TRAIT(player, TRAIT_MUSICIAN) && isliving(M))
var/mob/living/L = M
L.apply_status_effect(/datum/status_effect/good_music)
- if(!(M?.client?.prefs?.toggles & SOUND_INSTRUMENTS))
+ if(!(M?.client?.prefs.read_preference(/datum/preference/toggle/sound_instruments)))
continue
M.playsound_local(source, null, volume * using_instrument.volume_multiplier, sound_to_use = music_played)
// Could do environment and echo later but not for now
diff --git a/code/modules/instruments/songs/play_synthesized.dm b/code/modules/instruments/songs/play_synthesized.dm
index 5d5f43a9ba0..3b5f3d5b9f4 100644
--- a/code/modules/instruments/songs/play_synthesized.dm
+++ b/code/modules/instruments/songs/play_synthesized.dm
@@ -65,7 +65,7 @@
if(player && HAS_TRAIT(player, TRAIT_MUSICIAN) && isliving(M))
var/mob/living/L = M
L.apply_status_effect(/datum/status_effect/good_music)
- if(!(M?.client?.prefs?.toggles & SOUND_INSTRUMENTS))
+ if(!(M?.client?.prefs.read_preference(/datum/preference/toggle/sound_instruments)))
continue
M.playsound_local(get_turf(parent), null, volume, FALSE, K.frequency, null, channel, null, copy)
// Could do environment and echo later but not for now
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index aea80f014af..8f6c2580706 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -89,7 +89,7 @@
combat_mode = new_mode
if(hud_used?.action_intent)
hud_used.action_intent.update_appearance()
- if(silent || !(client?.prefs.toggles & SOUND_COMBATMODE))
+ if(silent || !(client?.prefs.read_preference(/datum/preference/toggle/sound_combatmode)))
return
if(combat_mode)
SEND_SOUND(src, sound('sound/misc/ui_togglecombat.ogg', volume = 25)) //Sound from interbay!
diff --git a/code/modules/mob/living/silicon/ai/ai_say.dm b/code/modules/mob/living/silicon/ai/ai_say.dm
index adf9774267f..adcb7cffc2e 100644
--- a/code/modules/mob/living/silicon/ai/ai_say.dm
+++ b/code/modules/mob/living/silicon/ai/ai_say.dm
@@ -153,7 +153,7 @@
stack_trace("[player_mob] ([player_mob.ckey]) has null prefs, which shouldn't be possible!")
continue
- if(player_mob.can_hear() && (player_mob.client?.prefs.toggles & SOUND_ANNOUNCEMENTS))
+ if(player_mob.can_hear() && (player_mob.client?.prefs.read_preference(/datum/preference/toggle/sound_announcements)))
var/turf/T = get_turf(player_mob)
if(T.z == z_level)
SEND_SOUND(player_mob, voice)
diff --git a/tgstation.dme b/tgstation.dme
index 9112ab94467..d38d3bc5915 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -2750,6 +2750,7 @@
#include "code\modules\client\preferences\screentips.dm"
#include "code\modules\client\preferences\security_department.dm"
#include "code\modules\client\preferences\skin_tone.dm"
+#include "code\modules\client\preferences\sounds.dm"
#include "code\modules\client\preferences\species.dm"
#include "code\modules\client\preferences\statpanel.dm"
#include "code\modules\client\preferences\tgui.dm"
@@ -2769,6 +2770,7 @@
#include "code\modules\client\preferences\middleware\random.dm"
#include "code\modules\client\preferences\middleware\species.dm"
#include "code\modules\client\preferences\migrations\body_type_migration.dm"
+#include "code\modules\client\preferences\migrations\legacy_sound_toggles_migration.dm"
#include "code\modules\client\preferences\migrations\tgui_prefs_migration.dm"
#include "code\modules\client\preferences\species_features\basic.dm"
#include "code\modules\client\preferences\species_features\ethereal.dm"
diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/legacy_toggles.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/legacy_toggles.tsx
index 07156fe6b02..e94eb6c522a 100644
--- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/legacy_toggles.tsx
+++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/legacy_toggles.tsx
@@ -90,65 +90,12 @@ export const sound_adminhelp: FeatureToggle = {
component: CheckboxInput,
};
-export const sound_ambience: FeatureToggle = {
- name: 'Enable ambience',
- category: 'SOUND',
- component: CheckboxInput,
-};
-
-export const sound_announcements: FeatureToggle = {
- name: 'Enable announcement sounds',
- category: 'SOUND',
- description: 'When enabled, hear sounds for command reports, notices, etc.',
- component: CheckboxInput,
-};
-
-export const sound_combatmode: FeatureToggle = {
- name: 'Enable combat mode sound',
- category: 'SOUND',
- description: 'When enabled, hear sounds when toggling combat mode.',
- component: CheckboxInput,
-};
-
-export const sound_endofround: FeatureToggle = {
- name: 'Enable end of round sounds',
- category: 'SOUND',
- description: 'When enabled, hear a sound when the server is rebooting.',
- component: CheckboxInput,
-};
-
-export const sound_instruments: FeatureToggle = {
- name: 'Enable instruments',
- category: 'SOUND',
- description: 'When enabled, be able hear instruments in game.',
- component: CheckboxInput,
-};
-
-export const sound_lobby: FeatureToggle = {
- name: 'Enable lobby music',
- category: 'SOUND',
- component: CheckboxInput,
-};
-
-export const sound_midi: FeatureToggle = {
- name: 'Enable admin music',
- category: 'SOUND',
- description: 'When enabled, admins will be able to play music to you.',
- component: CheckboxInput,
-};
-
export const sound_prayers: FeatureToggle = {
name: 'Enable prayer sound',
category: 'ADMIN',
component: CheckboxInput,
};
-export const sound_ship_ambience: FeatureToggle = {
- name: 'Enable ship ambience',
- category: 'SOUND',
- component: CheckboxInput,
-};
-
export const split_admin_tabs: FeatureToggle = {
name: 'Split admin tabs',
category: 'ADMIN',
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
new file mode 100644
index 00000000000..63035e0731b
--- /dev/null
+++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/sounds.tsx
@@ -0,0 +1,61 @@
+import { CheckboxInput, FeatureToggle } from '../base';
+
+export const sound_ambience: FeatureToggle = {
+ name: 'Enable ambience',
+ category: 'SOUND',
+ component: CheckboxInput,
+};
+
+export const sound_announcements: FeatureToggle = {
+ name: 'Enable announcement sounds',
+ category: 'SOUND',
+ description: 'When enabled, hear sounds for command reports, notices, etc.',
+ component: CheckboxInput,
+};
+
+export const sound_combatmode: FeatureToggle = {
+ name: 'Enable combat mode sound',
+ category: 'SOUND',
+ description: 'When enabled, hear sounds when toggling combat mode.',
+ component: CheckboxInput,
+};
+
+export const sound_endofround: FeatureToggle = {
+ name: 'Enable end of round sounds',
+ category: 'SOUND',
+ description: 'When enabled, hear a sound when the server is rebooting.',
+ component: CheckboxInput,
+};
+
+export const sound_instruments: FeatureToggle = {
+ name: 'Enable instruments',
+ category: 'SOUND',
+ description: 'When enabled, be able hear instruments in game.',
+ component: CheckboxInput,
+};
+
+export const sound_jukebox: FeatureToggle = {
+ name: 'Enable jukebox music',
+ category: 'SOUND',
+ description: 'When enabled, hear music for jukeboxes, dance machines, etc.',
+ component: CheckboxInput,
+};
+
+export const sound_lobby: FeatureToggle = {
+ name: 'Enable lobby music',
+ category: 'SOUND',
+ component: CheckboxInput,
+};
+
+export const sound_midi: FeatureToggle = {
+ name: 'Enable admin music',
+ category: 'SOUND',
+ description: 'When enabled, admins will be able to play music to you.',
+ component: CheckboxInput,
+};
+
+export const sound_ship_ambience: FeatureToggle = {
+ name: 'Enable ship ambience',
+ category: 'SOUND',
+ component: CheckboxInput,
+};