diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm
index 221863ce..47d5d1e7 100644
--- a/code/modules/mob/hear_say.dm
+++ b/code/modules/mob/hear_say.dm
@@ -166,9 +166,9 @@
return
if(say_understands(speaker, language))
- message = "[src] [verb], \"[message]\""
+ message = "[speaker.real_name] [verb], \"[message]\""
else
- message = "[src] [verb]."
+ message = "[speaker.real_name] gestures."
if(src.status_flags & PASSEMOTES)
for(var/obj/item/weapon/holder/H in src.contents)
diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm
index 859fa02f..53dd12ee 100644
--- a/code/modules/mob/living/carbon/human/say.dm
+++ b/code/modules/mob/living/carbon/human/say.dm
@@ -56,45 +56,52 @@
if(ending=="?")
verb="asks"
+ if(speaking && speaking.flags & SIGNLANG || speaking.flags & NONVERBAL)
+ ..(message, speaking, verb, alt_name, italics, message_range)
+ return
+
var/list/obj/item/used_radios = new
switch (message_mode)
if("headset")
- if(l_ear && istype(l_ear,/obj/item/device/radio))
- var/obj/item/device/radio/R = l_ear
- R.talk_into(src,message,null,verb,speaking)
- used_radios += l_ear
- else if(r_ear && istype(r_ear,/obj/item/device/radio))
- var/obj/item/device/radio/R = r_ear
- R.talk_into(src,message,null,verb,speaking)
- used_radios += r_ear
+ if(!(stunned >= 4))
+ if(l_ear && istype(l_ear,/obj/item/device/radio))
+ var/obj/item/device/radio/R = l_ear
+ R.talk_into(src,message,null,verb,speaking)
+ used_radios += l_ear
+ else if(r_ear && istype(r_ear,/obj/item/device/radio))
+ var/obj/item/device/radio/R = r_ear
+ R.talk_into(src,message,null,verb,speaking)
+ used_radios += r_ear
if("right ear")
- var/obj/item/device/radio/R
- var/has_radio = 0
- if(r_ear && istype(r_ear,/obj/item/device/radio))
- R = r_ear
- has_radio = 1
- if(r_hand && istype(r_hand, /obj/item/device/radio))
- R = r_hand
- has_radio = 1
- if(has_radio)
- R.talk_into(src,message,null,verb,speaking)
- used_radios += R
+ if(!(stunned >= 4))
+ var/obj/item/device/radio/R
+ var/has_radio = 0
+ if(r_ear && istype(r_ear,/obj/item/device/radio))
+ R = r_ear
+ has_radio = 1
+ if(r_hand && istype(r_hand, /obj/item/device/radio))
+ R = r_hand
+ has_radio = 1
+ if(has_radio)
+ R.talk_into(src,message,null,verb,speaking)
+ used_radios += R
if("left ear")
- var/obj/item/device/radio/R
- var/has_radio = 0
- if(l_ear && istype(l_ear,/obj/item/device/radio))
- R = l_ear
- has_radio = 1
- if(l_hand && istype(l_hand,/obj/item/device/radio))
- R = l_hand
- has_radio = 1
- if(has_radio)
- R.talk_into(src,message,null,verb,speaking)
- used_radios += R
+ if(!(stunned >= 4))
+ var/obj/item/device/radio/R
+ var/has_radio = 0
+ if(l_ear && istype(l_ear,/obj/item/device/radio))
+ R = l_ear
+ has_radio = 1
+ if(l_hand && istype(l_hand,/obj/item/device/radio))
+ R = l_hand
+ has_radio = 1
+ if(has_radio)
+ R.talk_into(src,message,null,verb,speaking)
+ used_radios += R
if("intercom")
for(var/obj/item/device/radio/intercom/I in view(1, null))
@@ -114,14 +121,15 @@
Changeling << "[mind.changeling.changelingID]: [message]"
return
else
- if(message_mode)
- if(message_mode in (radiochannels | "department"))
- if(l_ear && istype(l_ear,/obj/item/device/radio))
- l_ear.talk_into(src,message, message_mode, verb, speaking)
- used_radios += l_ear
- else if(r_ear && istype(r_ear,/obj/item/device/radio))
- r_ear.talk_into(src,message, message_mode, verb, speaking)
- used_radios += r_ear
+ if(!(stunned >= 4))
+ if(message_mode)
+ if(message_mode in (radiochannels | "department"))
+ if(l_ear && istype(l_ear,/obj/item/device/radio))
+ l_ear.talk_into(src,message, message_mode, verb, speaking)
+ used_radios += l_ear
+ else if(r_ear && istype(r_ear,/obj/item/device/radio))
+ r_ear.talk_into(src,message, message_mode, verb, speaking)
+ used_radios += r_ear
var/sound/speech_sound
var/sound_vol
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index addc6717..42d9243a 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -171,7 +171,7 @@ var/list/department_radio_keys = list(
return 1
/mob/living/proc/say_signlang(var/message, var/verb="gestures", var/datum/language/language)
- for (var/mob/O in viewers(src, null))
+ for (var/mob/O in viewers(world.view, src))
O.hear_signlang(message, verb, language, src)
/obj/effect/speech_bubble