diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index 99502f500e..7c95646b2d 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 3a676a338a..aab11ee6a2 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 a87b452298..5167197ff2 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 a4dfabddcb..fac81bb89b 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)])