@@ -233,22 +233,6 @@ GLOBAL_LIST_INIT(special_radio_keys, list(
233233 spans |= SPAN_ITALICS
234234
235235 send_speech (message, message_range, src , bubble_type, spans, language, message_mods)
236-
237- // yogs edit (stolen from monkestation)
238- // /Play a sound to indicate we just spoke
239- if (client && ! HAS_TRAIT (src , TRAIT_SIGN_LANG ))
240- var /ending = copytext_char(message, - 1 )
241- var /sound /speak_sound
242- if (SPAN_HELIUM in spans)
243- speak_sound = sound(' sound/effects/mousesqueek.ogg' )
244- else if (ending == " ?" )
245- speak_sound = voice_type2sound[voice_type][" ?" ]
246- else if (ending == " !" )
247- speak_sound = voice_type2sound[voice_type][" !" ]
248- else
249- speak_sound = voice_type2sound[voice_type][voice_type]
250- playsound (src , speak_sound, 300 , 1 , SHORT_RANGE_SOUND_EXTRARANGE - 2 , falloff_exponent = 1 , pressure_affected = FALSE , ignore_walls = FALSE , use_reverb = FALSE )
251- // yogs change end
252236
253237 return on_say_success(message,message_range,succumbed, spans, language, message_mods)// Yogs
254238
@@ -318,13 +302,28 @@ GLOBAL_LIST_INIT(special_radio_keys, list(
318302 eavesdropping = stars(message)
319303 eavesrendered = compose_message(src , message_language, eavesdropping, , spans, message_mods)
320304
305+
306+
307+ // yogs edit (stolen from monkestation and moved)
308+ // /Play a sound to indicate we just spoke
309+ var /sound /speak_sound
310+ if (client && voice_type && istype(voice_type))
311+ speak_sound = voice_type. get_sound(src , message, spans)
312+ // yogs change end
313+
321314 var /rendered = compose_message(src , message_language, message, , spans, message_mods)
322315 for (var /_AM in listening)
323316 var /atom/movable /AM = _AM
324317 if (eavesdrop_range && get_dist(source, AM ) > message_range && ! (the_dead[AM ]))
325318 AM . Hear(eavesrendered, src , message_language, eavesdropping, , spans, message_mods)
326319 else
327320 AM . Hear(rendered, src , message_language, message, , spans, message_mods)
321+ if (speak_sound && ismob(AM ))
322+ var /mob /hearing_mob = AM
323+ if (hearing_mob. client?. prefs?. read_preference(/ datum / preference/ toggle/ speech_hear) && hearing_mob. has_language(message_language))
324+ var /volume = hearing_mob. client?. prefs?. read_preference(/ datum / preference/ numeric/ speech_volume) || DEFAULT_SPEECH_VOLUME
325+ volume *= 6 // the sounds are actually really quiet, we just reduced the numbers shown in preferences to not confuse players
326+ hearing_mob. playsound_local(src , speak_sound, volume, TRUE , pressure_affected = FALSE , use_reverb = FALSE ) // virtualspeaker handles radio stuff
328327 SEND_GLOBAL_SIGNAL (COMSIG_GLOB_LIVING_SAY_SPECIAL , src , message)
329328
330329 // speech bubble
0 commit comments