diff --git a/GainStation13/sound/voice/voices/speak_1.ogg b/GainStation13/sound/voice/voices/human.ogg similarity index 100% rename from GainStation13/sound/voice/voices/speak_1.ogg rename to GainStation13/sound/voice/voices/human.ogg diff --git a/GainStation13/sound/voice/voices/speak_1_ask.ogg b/GainStation13/sound/voice/voices/human_ask.ogg similarity index 100% rename from GainStation13/sound/voice/voices/speak_1_ask.ogg rename to GainStation13/sound/voice/voices/human_ask.ogg diff --git a/GainStation13/sound/voice/voices/speak_1_exclaim.ogg b/GainStation13/sound/voice/voices/human_exclaim.ogg similarity index 100% rename from GainStation13/sound/voice/voices/speak_1_exclaim.ogg rename to GainStation13/sound/voice/voices/human_exclaim.ogg diff --git a/GainStation13/sound/voice/voices/lizard.ogg b/GainStation13/sound/voice/voices/lizard.ogg new file mode 100644 index 00000000..48638b0f Binary files /dev/null and b/GainStation13/sound/voice/voices/lizard.ogg differ diff --git a/GainStation13/sound/voice/voices/lizard_ask.ogg b/GainStation13/sound/voice/voices/lizard_ask.ogg new file mode 100644 index 00000000..60cf84ff Binary files /dev/null and b/GainStation13/sound/voice/voices/lizard_ask.ogg differ diff --git a/GainStation13/sound/voice/voices/lizard_exclaim.ogg b/GainStation13/sound/voice/voices/lizard_exclaim.ogg new file mode 100644 index 00000000..20d3c0b7 Binary files /dev/null and b/GainStation13/sound/voice/voices/lizard_exclaim.ogg differ diff --git a/GainStation13/sound/voice/voices/roach.ogg b/GainStation13/sound/voice/voices/roach.ogg new file mode 100644 index 00000000..55a2ad8a Binary files /dev/null and b/GainStation13/sound/voice/voices/roach.ogg differ diff --git a/GainStation13/sound/voice/voices/roach_ask.ogg b/GainStation13/sound/voice/voices/roach_ask.ogg new file mode 100644 index 00000000..dc15d884 Binary files /dev/null and b/GainStation13/sound/voice/voices/roach_ask.ogg differ diff --git a/GainStation13/sound/voice/voices/roach_exclaim.ogg b/GainStation13/sound/voice/voices/roach_exclaim.ogg new file mode 100644 index 00000000..3a5a17d4 Binary files /dev/null and b/GainStation13/sound/voice/voices/roach_exclaim.ogg differ diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 7399e5bd..b7c55eec 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -107,6 +107,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/starting_weight = 0 //how thicc you wanna be at start var/wg_rate = 0.5 var/wl_rate = 0.5 + var/voice = "human" //HS13 jobs var/sillyroles = TRUE //for clown and mime @@ -446,6 +447,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

Body

" dat += "Gender:[gender == MALE ? "Male" : (gender == FEMALE ? "Female" : (gender == PLURAL ? "Non-binary" : "Object"))]
" dat += "Species:[pref_species.id]
" + dat += "Voice:[voice ? voice : "None"]
" dat += "Custom Species Name:[custom_species ? custom_species : "None"]
" dat += "Random Body
" dat += "Always Random Body:[be_random_body ? "Yes" : "No"]
" @@ -1996,6 +1998,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) else custom_species = null + if("voice_select") + var/chosenvoice = input(user, "Select your character's voice.", "Voice Selection", voice) in list("human", "roach", "lizard") + voice = chosenvoice + if("mutant_color") var/new_mutantcolor = input(user, "Choose your character's alien/mutant color:", "Character Preference","#"+features["mcolor"]) as color|null if(new_mutantcolor) @@ -2957,6 +2963,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.name = character.real_name character.nameless = nameless character.custom_species = custom_species + character.voice = voice //h13 character custom body size, make sure to set to 100% if the player hasn't choosen one yet. character.custom_body_size = body_size diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 959b10a9..872eeaef 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -372,6 +372,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["skin_tone"] >> skin_tone S["hair_style_name"] >> hair_style S["facial_style_name"] >> facial_hair_style + S["voice"] >> voice // GS13: Hair gradients from Skyrat S["grad_style"] >> grad_style S["grad_color"] >> grad_color @@ -638,6 +639,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["skin_tone"] , skin_tone) WRITE_FILE(S["hair_style_name"] , hair_style) WRITE_FILE(S["facial_style_name"] , facial_hair_style) + WRITE_FILE(S["voice"] , voice) // GS13: Hair gradients from Skyrat WRITE_FILE(S["grad_style"] , grad_style) WRITE_FILE(S["grad_color"] , grad_color) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 71f919fd..d3090a5e 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -79,3 +79,5 @@ var/account_id can_be_held = "micro" appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE|LONG_GLIDE + + var/voice = "human" diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index bd7f61a2..1f314db2 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -497,7 +497,9 @@ . = ..() message = null emote_type = EMOTE_VISIBLE - playsound(usr.loc, 'GainStation13/sound/voice/voices/speak_1.ogg', 90, 10) + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + playsound(usr.loc, "GainStation13/sound/voice/voices/[H.voice].ogg", 90, 10) /datum/emote/living/custom/replace_pronoun(mob/user, message) return message diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 57b7fc09..02a1e166 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -219,22 +219,24 @@ GLOBAL_LIST_INIT(department_radio_keys, list( if(pressure < ONE_ATMOSPHERE*0.4) //Thin air, let's italicise the message spans |= SPAN_ITALICS - if(message_mode == MODE_WHISPER) + if(ishuman(src)) + var/mob/living/carbon/human/H = src + var/vmod = "" switch(say_mod(message, message_mode)) if("asks") - playsound(src.loc, 'GainStation13/sound/voice/voices/speak_1_ask.ogg', 45, 5, -3) - if("exclaims" || "yells") - playsound(src.loc, 'GainStation13/sound/voice/voices/speak_1_exclaim.ogg', 45, 5, -3) - else - playsound(src.loc, 'GainStation13/sound/voice/voices/speak_1.ogg', 45, 5, -3) - else + vmod = "_ask" + if("exclaims") + vmod = "_exclaim" + if("yells") + vmod = "_exclaim" switch(say_mod(message, message_mode)) - if("asks") - playsound(src.loc, 'GainStation13/sound/voice/voices/speak_1_ask.ogg', 90, 10, message_range) - if("exclaims" || "yells") - playsound(src.loc, 'GainStation13/sound/voice/voices/speak_1_exclaim.ogg', 90, 10, message_range) + if("whispers") + playsound(src.loc, "GainStation13/sound/voice/voices/[H.voice][vmod].ogg", 45, 5, -3) + if("yells") + playsound(src.loc, "GainStation13/sound/voice/voices/[H.voice][vmod].ogg", 130, 10, message_range+2) else - playsound(src.loc, 'GainStation13/sound/voice/voices/speak_1.ogg', 90, 10, message_range) + playsound(src.loc, "GainStation13/sound/voice/voices/[H.voice][vmod].ogg", 90, 10, message_range) + //playsound(user.loc, pick('GainStation13/sound/voice/voices/speak_1.ogg', 'GainStation13/sound/voice/voices/speak_1_ask.ogg', 'GainStation13/sound/voice/voices/speak_1_exclaim.ogg'), 90, 10) send_speech(message, message_range, src, bubble_type, spans, language, message_mode) diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index d46b9d73..0c642cc9 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -72,7 +72,9 @@ proc/get_top_level_mob(var/mob/S) if(M.stat == DEAD && M.client && (M.client?.prefs?.chat_toggles & CHAT_GHOSTSIGHT) && !(M in viewers(T, null))) M.show_message(message) - playsound(usr.loc, 'GainStation13/sound/voice/voices/speak_1.ogg', 90, 10) + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + playsound(usr.loc, "GainStation13/sound/voice/voices/[H.voice].ogg", 90, 10) if(emote_type == EMOTE_AUDIBLE) user.audible_message(message=message,hearing_distance=1)