mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 02:16:05 +00:00
Fixes
This commit is contained in:
@@ -95,8 +95,8 @@
|
||||
if (!ismob(target))
|
||||
extra_classes |= "small"
|
||||
|
||||
// Append radio icon if from a virtual speaker
|
||||
if (extra_classes.Find("virtual-speaker"))
|
||||
// Append radio icon if comes from a radio
|
||||
if (extra_classes.Find("spoken_into_radio"))
|
||||
var/image/r_icon = image('icons/chat_icons.dmi', icon_state = "radio")
|
||||
text = "\icon[r_icon] " + text
|
||||
|
||||
@@ -172,13 +172,14 @@
|
||||
* * spans - Additional classes to be added to the message
|
||||
* * message_mode - Bitflags relating to the mode of the message
|
||||
*/
|
||||
/mob/proc/create_chat_message(atom/movable/speaker, datum/language/message_language, raw_message, mode)
|
||||
var/extra_classes = list()
|
||||
|
||||
/mob/proc/create_chat_message(atom/movable/speaker, datum/language/message_language, raw_message, mode, list/existing_extra_classes)
|
||||
// Check for virtual speakers (aka hearing a message through a radio)
|
||||
if (istype(speaker, /atom/movable/virtualspeaker))
|
||||
if (existing_extra_classes.Find("radio"))
|
||||
return
|
||||
|
||||
var/list/extra_classes = list()
|
||||
extra_classes += existing_extra_classes
|
||||
|
||||
if (mode == SPEECH_MODE_WHISPER)
|
||||
extra_classes |= "small"
|
||||
|
||||
@@ -249,3 +250,9 @@
|
||||
return "[rgb(x,m,c)]C8"
|
||||
if(5)
|
||||
return "[rgb(c,m,x)]C8"
|
||||
|
||||
/client/verb/toggle_runechat_outline()
|
||||
set category = "OOC"
|
||||
set name = "Toggle Runechat Outlines"
|
||||
toggle_runechat_outlines = !toggle_runechat_outlines
|
||||
to_chat(mob, "<span class='notice'>Runechat outlines are now [toggle_runechat_outlines ? "enabled" : "disabled"].</span>")
|
||||
|
||||
@@ -164,5 +164,7 @@
|
||||
if(data)
|
||||
wrapper_classes=data.Copy()
|
||||
|
||||
wrapper_classes.Add("radio")
|
||||
|
||||
/datum/speech/proc/set_language(var/lang_id)
|
||||
language = all_languages[lang_id]
|
||||
|
||||
@@ -546,9 +546,3 @@ NOTE: You will only be polled about this role once per round. To change your ch
|
||||
/client/proc/handle_hear_voice(var/mob/origin)
|
||||
if(prefs.hear_voicesound)
|
||||
mob.playsound_local(get_turf(origin), get_sfx("voice"),50,1)
|
||||
|
||||
/client/verb/toggle_runechat_outlight()
|
||||
set category = "OOC"
|
||||
set name = "Toggle Runechat Outlines"
|
||||
toggle_runechat_outlines = !toggle_runechat_outlines
|
||||
to_chat(mob, "<span class='notice'>Runechat outlines are now [toggle_runechat_outlines ? "enabled" : "disabled"].</span>")
|
||||
|
||||
@@ -46,6 +46,6 @@
|
||||
say_testing(src, "/mob/dead/observer/Hear(): CHAT_GHOSTRADIO is disabled, blocking. ([client.prefs.toggles] & [CHAT_GHOSTRADIO]) = [client.prefs.toggles & CHAT_GHOSTRADIO]")
|
||||
return
|
||||
if (client?.prefs.mob_chat_on_map && (client.prefs.obj_chat_on_map || ismob(speech.speaker)))
|
||||
create_chat_message(speech.speaker, speech.language, speech.message, speech.mode)
|
||||
create_chat_message(speech.speaker, speech.language, speech.message, speech.mode, speech.wrapper_classes)
|
||||
|
||||
to_chat(src, "<a href='?src=\ref[src];follow=\ref[source]'>(Follow)</a> [rendered_speech]")
|
||||
|
||||
@@ -74,6 +74,19 @@ var/list/department_radio_keys = list(
|
||||
":&" = "borerchat", "#&" = "borerchat", ".&" = "borerchat",
|
||||
)
|
||||
|
||||
var/list/headset_modes = list(
|
||||
"Response Team",
|
||||
"Command",
|
||||
"Service",
|
||||
"Engineering",
|
||||
"Security",
|
||||
"Syndicate",
|
||||
"Supply",
|
||||
"Medical",
|
||||
"Science",
|
||||
"department",
|
||||
)
|
||||
|
||||
/mob/living/proc/get_default_language()
|
||||
if(!default_language)
|
||||
if(languages && languages.len)
|
||||
@@ -181,6 +194,8 @@ var/list/department_radio_keys = list(
|
||||
treat_speech(speech)
|
||||
|
||||
var/radio_return = get_speech_flags(message_mode)
|
||||
if (speech_was_spoken_into_radio(message_mode))
|
||||
speech.wrapper_classes.Add("spoken_into_radio")
|
||||
if(radio_return & NOPASS) //There's a whisper() message_mode, no need to continue the proc if that is called
|
||||
whisper(speech.message, speech.language)
|
||||
returnToPool(speech)
|
||||
@@ -263,9 +278,9 @@ var/list/department_radio_keys = list(
|
||||
|
||||
// Runechat messages
|
||||
if (ismob(speech.speaker) && client?.prefs.mob_chat_on_map && stat != UNCONSCIOUS && !is_deaf())
|
||||
create_chat_message(speech.speaker, speech.language, speech.message, speech.mode)
|
||||
create_chat_message(speech.speaker, speech.language, speech.message, speech.mode, speech.wrapper_classes)
|
||||
else if (client?.prefs.obj_chat_on_map && stat != UNCONSCIOUS && !is_deaf())
|
||||
create_chat_message(speech.speaker, speech.language, speech.message, speech.mode)
|
||||
create_chat_message(speech.speaker, speech.language, speech.message, speech.mode, speech.wrapper_classes)
|
||||
if (ismob(speech.speaker))
|
||||
show_message(rendered_message, type, deaf_message, deaf_type, src)
|
||||
else if (!client.prefs.no_goonchat_for_obj || length_char(speech.message) > client?.prefs.max_chat_length) // Objects : only display if no goonchat on map or if the runemessage is too small.
|
||||
@@ -463,6 +478,14 @@ var/list/department_radio_keys = list(
|
||||
|
||||
return 0
|
||||
|
||||
/mob/living/proc/speech_was_spoken_into_radio(var/message_mode)
|
||||
if (message_mode in headset_modes)
|
||||
return TRUE
|
||||
switch (message_mode)
|
||||
if(MODE_HEADSET, MODE_SECURE_HEADSET, MODE_R_HAND, MODE_L_HAND, MODE_INTERCOM, MODE_BINARY)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/mob/living/proc/radio(var/datum/speech/speech, var/message_mode)
|
||||
switch(message_mode)
|
||||
if(MODE_R_HAND)
|
||||
|
||||
Reference in New Issue
Block a user