diff --git a/code/modules/client/preference_setup/global/setting_datums.dm b/code/modules/client/preference_setup/global/setting_datums.dm
index eff07c82ce5..78694b1866a 100644
--- a/code/modules/client/preference_setup/global/setting_datums.dm
+++ b/code/modules/client/preference_setup/global/setting_datums.dm
@@ -300,17 +300,29 @@ var/list/_client_preferences_by_type
disabled_description = "Off"
/datum/client_preference/say_sounds
- description = "Say and whisper Sounds"
+ description = "Say Sounds"
key = "SAY_SOUNDS"
enabled_description = "On"
disabled_description = "Off"
/datum/client_preference/emote_sounds
- description = "Me and Subtle Sounds"
+ description = "Me Sounds"
key = "EMOTE_SOUNDS"
enabled_description = "On"
disabled_description = "Off"
+/datum/client_preference/whisper_sounds
+ description = "Whisper Sounds"
+ key = "WHISPER_SOUNDS"
+ enabled_description = "On"
+ disabled_description = "Off"
+
+/datum/client_preference/subtle_sounds
+ description = "Subtle Sounds"
+ key = "SUBTLE_SOUNDS"
+ enabled_description = "On"
+ disabled_description = "Off"
+
/datum/client_preference/runechat_mob
description = "Runechat (Mobs)"
key = "RUNECHAT_MOB"
diff --git a/code/modules/client/preference_setup/vore/02_size.dm b/code/modules/client/preference_setup/vore/02_size.dm
index f6310d7cae6..1d7d38c53da 100644
--- a/code/modules/client/preference_setup/vore/02_size.dm
+++ b/code/modules/client/preference_setup/vore/02_size.dm
@@ -15,6 +15,7 @@
var/weight_loss = 50 // Weight loss rate.
var/fuzzy = 0 // Preference toggle for sharp/fuzzy icon. Default sharp.
var/voice_freq = 0
+ var/voice_sounds_list
// Definition of the stuff for Sizing
/datum/category_item/player_setup_item/vore/size
@@ -28,6 +29,7 @@
S["weight_loss"] >> pref.weight_loss
S["fuzzy"] >> pref.fuzzy
S["voice_freq"] >> pref.voice_freq
+ S["voice_sounds_list"] >> pref.voice_sounds_list
/datum/category_item/player_setup_item/vore/size/save_character(var/savefile/S)
S["size_multiplier"] << pref.size_multiplier
@@ -36,13 +38,18 @@
S["weight_loss"] << pref.weight_loss
S["fuzzy"] << pref.fuzzy
S["voice_freq"] << pref.voice_freq
+ S["voice_sounds_list"] << pref.voice_sounds_list
+
/datum/category_item/player_setup_item/vore/size/sanitize_character()
pref.weight_vr = sanitize_integer(pref.weight_vr, WEIGHT_MIN, WEIGHT_MAX, initial(pref.weight_vr))
pref.weight_gain = sanitize_integer(pref.weight_gain, WEIGHT_CHANGE_MIN, WEIGHT_CHANGE_MAX, initial(pref.weight_gain))
pref.weight_loss = sanitize_integer(pref.weight_loss, WEIGHT_CHANGE_MIN, WEIGHT_CHANGE_MAX, initial(pref.weight_loss))
pref.fuzzy = sanitize_integer(pref.fuzzy, 0, 1, initial(pref.fuzzy))
- pref.voice_freq = sanitize_integer(pref.voice_freq, 32000, 55000, initial(pref.fuzzy))
+ if(pref.voice_freq == 0)
+ pref.voice_freq = sanitize_integer(pref.voice_freq, 0, 0, initial(pref.fuzzy))
+ else
+ pref.voice_freq = sanitize_integer(pref.voice_freq, MIN_VOICE_FREQ, MAX_VOICE_FREQ, initial(pref.fuzzy))
if(pref.size_multiplier == null || pref.size_multiplier < RESIZE_TINY || pref.size_multiplier > RESIZE_HUGE)
pref.size_multiplier = initial(pref.size_multiplier)
@@ -53,12 +60,19 @@
character.fuzzy = pref.fuzzy
character.voice_freq = pref.voice_freq
character.resize(pref.size_multiplier, animate = FALSE, ignore_prefs = TRUE)
+ switch(pref.voice_sounds_list)
+ if("beep-boop")
+ character.voice_sounds_list = pref.voice_sounds_list
+ else
+ character.voice_sounds_list = talk_sound
+
/datum/category_item/player_setup_item/vore/size/content(var/mob/user)
. += "
"
. += "Scale: [round(pref.size_multiplier*100)]%
"
. += "Scaled Appearance: [pref.fuzzy ? "Fuzzy" : "Sharp"]
"
. += "Voice Frequency: [pref.voice_freq]
"
+// . += "Voice Sounds: [pref.voice_sounds_list]
" //Maybe later when there's more options
. += "
"
. += "Relative Weight: [pref.weight_vr]
"
. += "Weight Gain Rate: [pref.weight_gain]
"
@@ -128,5 +142,8 @@
pref.voice_freq = choice
return TOPIC_REFRESH
-
+ else if(href_list["voice_sounds_list"])
+ var/choice = tgui_alert(usr, "Which set of sounds would you like to use for your character's speech sounds?", "Voice Sounds", list("beep-boop"))
+ if(choice)
+ pref.voice_sounds_list = choice
return ..();
diff --git a/code/modules/client/preferences_toggle_procs.dm b/code/modules/client/preferences_toggle_procs.dm
index b6ba33682b4..e3b5a1e2523 100644
--- a/code/modules/client/preferences_toggle_procs.dm
+++ b/code/modules/client/preferences_toggle_procs.dm
@@ -409,29 +409,55 @@
/client/verb/toggle_say_sounds()
set name = "Toggle Say Sounds"
set category = "Preferences"
- set desc = "Toggle hearing a sound when somebody speaks using say or whisper."
+ set desc = "Toggle hearing a sound when somebody speaks using say."
var/pref_path = /datum/client_preference/say_sounds
toggle_preference(pref_path)
SScharacter_setup.queue_preferences_save(prefs)
- to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/say_sounds)) ? "hear" : "not hear"] say/whisper sounds.")
+ to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/say_sounds)) ? "hear" : "not hear"] say sounds.")
feedback_add_details("admin_verb","TSaySounds")
/client/verb/toggle_emote_sounds()
set name = "Toggle Me Sounds"
set category = "Preferences"
- set desc = "Toggle hearing a sound when somebody speaks using me or subtle."
+ set desc = "Toggle hearing a sound when somebody speaks using me ."
var/pref_path = /datum/client_preference/emote_sounds
toggle_preference(pref_path)
SScharacter_setup.queue_preferences_save(prefs)
- to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/emote_sounds)) ? "hear" : "not hear"] me/subtle sounds.")
+ to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/emote_sounds)) ? "hear" : "not hear"] me sounds.")
feedback_add_details("admin_verb","TMeSounds")
+/client/verb/toggle_whisper_sounds()
+ set name = "Toggle Whisper Sounds"
+ set category = "Preferences"
+ set desc = "Toggle hearing a sound when somebody speaks using whisper."
+
+ var/pref_path = /datum/client_preference/whisper_sounds
+ toggle_preference(pref_path)
+ SScharacter_setup.queue_preferences_save(prefs)
+
+ to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/whisper_sounds)) ? "hear" : "not hear"] whisper sounds.")
+
+ feedback_add_details("admin_verb","TWhisperSounds")
+
+/client/verb/toggle_subtle_sounds()
+ set name = "Toggle Subtle Sounds"
+ set category = "Preferences"
+ set desc = "Toggle hearing a sound when somebody uses subtle."
+
+ var/pref_path = /datum/client_preference/subtle_sounds
+ toggle_preference(pref_path)
+ SScharacter_setup.queue_preferences_save(prefs)
+
+ to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/subtle_sounds)) ? "hear" : "not hear"] subtle sounds.")
+
+ feedback_add_details("admin_verb","TSubtleSounds")
+
// Not attached to a pref datum because those are strict binary toggles
/client/verb/toggle_examine_mode()
set name = "Toggle Examine Mode"
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 29d40472f95..ddfc187dd97 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -402,12 +402,12 @@ var/list/channel_to_radio_key = new
if(message_mode)
message = "([message_mode == "headset" ? "Common" : capitalize(message_mode)]) [message]" //Adds radio keys used if available
if(whispering)
- if(do_sound)
- playsound(T, pick(voice_sounds_list), 25, TRUE, extrarange = -6, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/client_preference/say_sounds)
+ if(do_sound && message)
+ playsound(T, pick(voice_sounds_list), 25, TRUE, extrarange = -6, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/client_preference/whisper_sounds)
log_whisper(message, src)
else
- if(do_sound)
+ if(do_sound && message)
playsound(T, pick(voice_sounds_list), 75, TRUE, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/client_preference/say_sounds)
log_say(message, src)
return 1
diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm
index ffb127a23fd..cba330f8361 100644
--- a/code/modules/mob/say_vr.dm
+++ b/code/modules/mob/say_vr.dm
@@ -67,7 +67,8 @@
else
spawn(0)
M.show_message(message, 2)
- M << sound('sound/talksounds/subtle_sound.ogg', volume = 25)
+ if(M.is_preference_enabled(/datum/client_preference/subtle_sounds))
+ M << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
for(var/obj/O as anything in vis_objs)
spawn(0)
diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index 650446a9393..74e7a1304bf 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -32,7 +32,7 @@
var/drain_finalized = 0 // Determines if the succubus drain will be KO'd/absorbed. Can be toggled on at any time.
var/fuzzy = 0 // Preference toggle for sharp/fuzzy icon.
var/voice_freq = 0 // Preference for character voice frequency
- var/voice_sounds_list = talk_sound // The sound list containing our voice sounds!
+ var/voice_sounds_list // The sound list containing our voice sounds!
var/permit_healbelly = TRUE
var/stumble_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway
var/slip_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway