diff --git a/code/modules/client/preference_setup/vore/02_size.dm b/code/modules/client/preference_setup/vore/02_size.dm
index 8cfd64c47d..bf23fd3283 100644
--- a/code/modules/client/preference_setup/vore/02_size.dm
+++ b/code/modules/client/preference_setup/vore/02_size.dm
@@ -16,6 +16,7 @@
var/fuzzy = 0 // Preference toggle for sharp/fuzzy icon. Default sharp.
var/voice_freq = 0
var/voice_sound = "beep-boop"
+ var/custom_speech_bubble = "default"
// Definition of the stuff for Sizing
/datum/category_item/player_setup_item/vore/size
@@ -30,6 +31,7 @@
S["fuzzy"] >> pref.fuzzy
S["voice_freq"] >> pref.voice_freq
S["voice_sound"] >> pref.voice_sound
+ S["custom_speech_bubble"] >> pref.custom_speech_bubble
/datum/category_item/player_setup_item/vore/size/save_character(var/savefile/S)
S["size_multiplier"] << pref.size_multiplier
@@ -39,6 +41,7 @@
S["fuzzy"] << pref.fuzzy
S["voice_freq"] << pref.voice_freq
S["voice_sound"] << pref.voice_sound
+ S["custom_speech_bubble"] << pref.custom_speech_bubble
/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))
@@ -49,6 +52,8 @@
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)
+ if(!(pref.custom_speech_bubble in selectable_speech_bubbles))
+ pref.custom_speech_bubble = "default"
/datum/category_item/player_setup_item/vore/size/copy_to_mob(var/mob/living/carbon/human/character)
character.weight = pref.weight_vr
@@ -89,6 +94,7 @@
character.voice_sounds_list = goon_speak_roach_sound
if("goon speak skelly")
character.voice_sounds_list = goon_speak_skelly_sound
+ character.custom_speech_bubble = pref.custom_speech_bubble
/datum/category_item/player_setup_item/vore/size/content(var/mob/user)
. += "
"
@@ -96,6 +102,7 @@
. += "Scaled Appearance: [pref.fuzzy ? "Fuzzy" : "Sharp"]
"
. += "Voice Frequency: [pref.voice_freq]
"
. += "Voice Sounds: [pref.voice_sound]
"
+ . += "Custom Speech Bubble: [pref.custom_speech_bubble]
"
. += "
"
. += "Relative Weight: [pref.weight_vr]
"
. += "Weight Gain Rate: [pref.weight_gain]
"
@@ -188,5 +195,13 @@
pref.voice_sound = "beep-boop"
else
pref.voice_sound = choice
+ return TOPIC_REFRESH
+ else if(href_list["customize_speech_bubble"])
+ var/choice = tgui_input_list(usr, "What speech bubble style do you want to use? (default for automatic selection)", "Custom Speech Bubble", selectable_speech_bubbles)
+ if(!choice)
+ pref.custom_speech_bubble = "default"
+ else
+ pref.custom_speech_bubble = choice
+ return TOPIC_REFRESH
return ..();
diff --git a/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm b/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm
index 1c2d5dff7d..ed744e9fb6 100644
--- a/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm
+++ b/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm
@@ -190,13 +190,4 @@
wrapped_species_by_ref["\ref[src]"] = new_species
if (visible)
visible_message("\The [src] shifts and contorts, taking the form of \a [new_species]!")
- regenerate_icons()
-
-/mob/verb/select_speech_bubble()
- set name = "Select Speech Bubble"
- set category = "OOC"
-
- var/new_speech_bubble = tgui_input_list(src, "Pick new voice!", "Character Preference", selectable_speech_bubbles)
- if(new_speech_bubble)
- to_chat(src, "Your voice changes.")
- custom_speech_bubble = new_speech_bubble
\ No newline at end of file
+ regenerate_icons()
\ No newline at end of file
diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm
index 9a161402cf..c38445b466 100644
--- a/code/modules/mob/say_vr.dm
+++ b/code/modules/mob/say_vr.dm
@@ -355,3 +355,11 @@
continue
to_chat(M, message)
log_emote(message, src)
+
+/mob/verb/select_speech_bubble()
+ set name = "Select Speech Bubble"
+ set category = "OOC"
+
+ var/new_speech_bubble = tgui_input_list(src, "Pick new voice (default for automatic selection)", "Character Preference", selectable_speech_bubbles)
+ if(new_speech_bubble)
+ custom_speech_bubble = new_speech_bubble