diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm
index 60dcc54f30..a4607720c8 100644
--- a/code/modules/mob/hear_say.dm
+++ b/code/modules/mob/hear_say.dm
@@ -67,13 +67,19 @@
src << "[speaker_name][alt_name] talks but you cannot hear \him."
else
if(language)
- src << "[speaker_name][alt_name] [track][language.format_message(message, verb)]"
+ on_hear_say("[speaker_name][alt_name] [track][language.format_message(message, verb)]")
else
- src << "[speaker_name][alt_name] [track][verb], \"[message]\""
+ on_hear_say("[speaker_name][alt_name] [track][verb], \"[message]\"")
if (speech_sound && (get_dist(speaker, src) <= world.view && src.z == speaker.z))
var/turf/source = speaker? get_turf(speaker) : get_turf(src)
src.playsound_local(source, speech_sound, sound_vol, 1)
+/mob/proc/on_hear_say(var/message)
+ src << message
+
+/mob/living/silicon/on_hear_say(var/message)
+ var/time = say_timestamp()
+ src << "[time] [message]"
/mob/proc/hear_radio(var/message, var/verb="says", var/datum/language/language=null, var/part_a, var/part_b, var/mob/speaker = null, var/hard_to_hear = 0, var/vname ="")
@@ -187,15 +193,18 @@
else
on_hear_radio(part_a, speaker_name, track, part_b, formatted)
+/proc/say_timestamp()
+ return "\[[worldtime2text()]\]"
+
/mob/proc/on_hear_radio(part_a, speaker_name, track, part_b, formatted)
src << "[part_a][speaker_name][part_b][formatted]"
/mob/living/silicon/on_hear_radio(part_a, speaker_name, track, part_b, formatted)
- var/time = "\[[worldtime2text()]\]"
+ var/time = say_timestamp()
src << "[time][part_a][speaker_name][part_b][formatted]"
/mob/living/silicon/ai/on_hear_radio(part_a, speaker_name, track, part_b, formatted)
- var/time = "\[[worldtime2text()]\]"
+ var/time = say_timestamp()
src << "[time][part_a][track][part_b][formatted]"
/mob/proc/hear_signlang(var/message, var/verb = "gestures", var/datum/language/language, var/mob/speaker = null)