From 2084312e1ce0b2826b9be6f34999c632e4d763a3 Mon Sep 17 00:00:00 2001 From: Archanial <37456678+Archanial@users.noreply.github.com> Date: Thu, 8 Jul 2021 12:50:39 +0200 Subject: [PATCH 1/2] e (#4733) --- code/datums/chatmessage.dm | 2 +- code/modules/mob/living/carbon/human/say.dm | 12 ++++++------ code/modules/mob/living/say.dm | 18 ++++++++---------- code/modules/mob/say.dm | 2 +- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index 99502f500e4..7c95646b2d7 100644 --- a/code/datums/chatmessage.dm +++ b/code/datums/chatmessage.dm @@ -282,7 +282,7 @@ GLOBAL_LIST_INIT(job_colors_pastel, list( if(v.source == src) return //Dont create the overhead radio chat if we are a ghost and can hear global messages. - if(isobserver(src) && !(client.prefs.chat_toggles & CHAT_GHOSTEARS)) + if(isobserver(src)) return //Dont create the overhead radio chat if we heard the speaker speak if(get_dist(get_turf(v.source), get_turf(src)) <= 1) diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 3a676a338af..aab11ee6a26 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -45,12 +45,12 @@ return special_voice /mob/living/carbon/human/binarycheck() - if(ears) - var/obj/item/radio/headset/dongle = ears - if(!istype(dongle)) - return FALSE - if(dongle.translate_binary) - return TRUE + if(stat >= SOFT_CRIT || !ears) + return FALSE + var/obj/item/radio/headset/dongle = ears + if(!istype(dongle)) + return FALSE + return dongle.translate_binary /mob/living/carbon/human/radio(message, list/message_mods = list(), list/spans, language) . = ..() diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index a87b452298b..5167197ff2d 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -22,7 +22,6 @@ GLOBAL_LIST_INIT(department_radio_keys, list( // Misc RADIO_KEY_AI_PRIVATE = RADIO_CHANNEL_AI_PRIVATE, // AI Upload channel - MODE_KEY_VOCALCORDS = MODE_VOCALCORDS, // vocal cords, used by Voice of God //kinda localization -- rastaf0 @@ -47,8 +46,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( "í" = RADIO_CHANNEL_CENTCOM, // Misc - "ù" = RADIO_CHANNEL_AI_PRIVATE, - "÷" = MODE_VOCALCORDS + "ù" = RADIO_CHANNEL_AI_PRIVATE )) /mob/living/proc/Ellipsis(original_msg, chance = 50, keep_words) @@ -140,7 +138,10 @@ GLOBAL_LIST_INIT(department_radio_keys, list( var/succumbed = FALSE var/fullcrit = InFullCritical() - if((InCritical() && !fullcrit) || message_mods[WHISPER_MODE] == MODE_WHISPER) + if((in_critical && !fullcrit) || message_mods[WHISPER_MODE] == MODE_WHISPER) + if(saymode || message_mods[RADIO_EXTENSION]) //no radio while in crit + saymode = null + message_mods -= RADIO_EXTENSION message_range = 1 message_mods[WHISPER_MODE] = MODE_WHISPER src.log_talk(message, LOG_WHISPER) @@ -189,7 +190,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( message_range = 1 message_mods[MODE_RADIO_MESSAGE] = MODE_RADIO_MESSAGE if(radio_return & NOPASS) - return 1 + return TRUE //No screams in space, unless you're next to someone. var/turf/T = get_turf(src) @@ -204,10 +205,10 @@ GLOBAL_LIST_INIT(department_radio_keys, list( send_speech(message, message_range, src, bubble_type, spans, language, message_mods) if(succumbed) - succumb(1) + succumb(TRUE) to_chat(src, compose_message(src, language, message, , spans, message_mods)) - return 1 + return TRUE /mob/living/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, list/message_mods = list()) . = ..() @@ -382,9 +383,6 @@ GLOBAL_LIST_INIT(department_radio_keys, list( I.talk_into(src, message, , spans, language, message_mods) return ITALICS | REDUCE_RANGE - if(MODE_BINARY) - return ITALICS | REDUCE_RANGE //Does not return 0 since this is only reached by humans, not borgs or AIs. - return 0 /mob/living/say_mod(input, list/message_mods = list()) diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index a4dfabddcbd..fac81bb89bd 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -117,7 +117,7 @@ mods[WHISPER_MODE] = MODE_WHISPER else if(key == "%" && !mods[MODE_SING]) mods[MODE_SING] = TRUE - else if(key == ";" && !mods[MODE_HEADSET]) + else if(key == ";" && !mods[MODE_HEADSET] && stat == CONSCIOUS) mods[MODE_HEADSET] = TRUE else if((key in GLOB.department_radio_prefixes) && length(message) > length(key) + 1 && !mods[RADIO_EXTENSION]) mods[RADIO_KEY] = lowertext(message[1 + length(key)]) From 86112533cdc3655434c3a90fe471a9e083806da8 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 8 Jul 2021 10:51:26 +0000 Subject: [PATCH 2/2] You can't radio whisper in crit + radio messages don't double for ghosts