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