diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index ae8ab435c98..fbd7950cd34 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -156,11 +156,14 @@ var/list/department_radio_keys = list( message = uppertext(message) // General public key. Special message handling - else if (copytext(message, 1, 2) == ";" || prob(braindam/2)) - if (ishuman(src)) - message_mode = "headset" - else if(ispAI(src) || isrobot(src)) - message_mode = "pAI" + var/mmode + var/cprefix = "" + if(length(message) >= 2) + cprefix = copytext(message, 1, 3) + if(cprefix in department_radio_keys) + mmode = department_radio_keys[cprefix] + if (copytext(message, 1, 2) == ";" || (prob(braindam/2) && !mmode)) + message_mode = "headset" message = copytext(message, 2) // Begin checking for either a message mode or a language to speak. else if (length(message) >= 2) @@ -299,7 +302,10 @@ var/list/department_radio_keys = list( if(C:r_ear) devices += C:r_ear if(issilicon(src)) var/mob/living/silicon/Ro=src - if(Ro:radio) devices += Ro:radio + if(Ro:radio) + devices += Ro:radio + else + warning("[src] has no radio!") message_range = 1 italics = 1 if(devices.len>0)