diff --git a/code/modules/antagonists/villain/vampire/actions.dm b/code/modules/antagonists/villain/vampire/actions.dm
index f4343409275..96dde8ecb4f 100644
--- a/code/modules/antagonists/villain/vampire/actions.dm
+++ b/code/modules/antagonists/villain/vampire/actions.dm
@@ -80,6 +80,7 @@
src.last_telepathy_use = world.time
var/message = span_narsie("A message from [real_name]: [msg]")
+ log_telepathy("[key_name(src)] used vampiric telepathy to say: [msg]")
to_chat(clan?.clan_members, message)
/mob/living/carbon/human/proc/disguise_button()
diff --git a/code/modules/mob/living/living_say.dm b/code/modules/mob/living/living_say.dm
index 0eaa4e6f3e7..4e254f1ea27 100644
--- a/code/modules/mob/living/living_say.dm
+++ b/code/modules/mob/living/living_say.dm
@@ -59,7 +59,7 @@
if(ic_blocked)
//The filter warning message shows the sanitized message though.
- to_chat(src, "That message contained a word prohibited in IC chat! Consider reviewing the server rules.\n\"[message]\"")
+ to_chat(src, span_warning("That message contained a word prohibited in IC chat! Consider reviewing the server rules.\n\"[message]\""))
SSblackbox.record_feedback("tally", "ic_blocked_words", 1, lowertext(config.ic_filter_regex.match))
return
@@ -67,29 +67,29 @@
var/original_message = message
message = get_message_mods(message, message_mods)
var/datum/saymode/saymode = SSradio.saymodes[message_mods[RADIO_KEY]]
- var/in_critical = InCritical()
- if(message_mods[RADIO_EXTENSION] == MODE_ADMIN)
- if(client)
- client.cmd_admin_say(message)
- return
-
- if(message_mods[RADIO_EXTENSION] == MODE_DEADMIN)
- if(client)
- client.dsay(message)
- return
+ if(client)
+ switch(message_mods[RADIO_EXTENSION])
+ if(MODE_ADMIN)
+ client.cmd_admin_say(message)
+ return
+ if(MODE_DEADMIN)
+ client.dsay(message)
+ return
if(stat == DEAD)
say_dead(original_message)
return
- if(check_emote(original_message, forced) || !can_speak_basic(original_message, ignore_spam, forced))
+ if(!can_speak_basic(original_message, ignore_spam, forced))
return
-
- if(check_whisper(original_message, forced) || !can_speak_basic(original_message, ignore_spam, forced))
+ if(check_emote(original_message, forced))
+ return
+ if(check_whisper(original_message, forced))
return
- if(in_critical) // There are cheaper ways to do this, but they're less flexible, and this isn't ran all that often
+ var/in_crit = InCritical()
+ if(in_crit) // There are cheaper ways to do this, but they're less flexible, and this isn't ran all that often
var/end = TRUE
for(var/index in message_mods)
if(crit_allowed_modes[index])
@@ -107,9 +107,11 @@
return
language = message_mods[LANGUAGE_EXTENSION] || get_default_language()
+ var/datum/language/speaker_language = GLOB.language_datum_instances[language]
+ var/signed = speaker_language?.flags & SIGNLANG
- if(!can_speak_vocal(message))
- to_chat(src, "I can't talk.")
+ if(signed && !can_speak_vocal(message))
+ to_chat(src, span_warning("I can't talk."))
return
var/message_range = 7
@@ -117,7 +119,7 @@
var/succumbed = FALSE
var/fullcrit = InFullCritical()
- if((InCritical() && !fullcrit) || message_mods[WHISPER_MODE] == MODE_WHISPER)
+ if((in_crit && !fullcrit) || message_mods[WHISPER_MODE] == MODE_WHISPER)
message_range = 1
message_mods[WHISPER_MODE] = MODE_WHISPER
src.log_talk("whispered: [message]", LOG_WHISPER)
@@ -151,16 +153,15 @@
spans |= speech_span
- if(language)
- var/datum/language/L = GLOB.language_datum_instances[language]
+ if(speaker_language)
if(ishuman(src))
var/mob/living/carbon/human/H = src
if(H.dna?.species)
- var/list/stuff = H.dna.species.get_span_language(L)
+ var/list/stuff = H.dna.species.get_span_language(speaker_language)
if(stuff)
spans |= stuff
else
- spans |= L.spans
+ spans |= speaker_language.spans
if(message_mods[MODE_SING])
var/randomnote = pick("\u2669", "\u266A", "\u266B", "\u266C")
@@ -185,8 +186,7 @@
if(radio_return & NOPASS)
return TRUE
- var/datum/language/speaker_language = GLOB.language_datum_instances[language]
- if(speaker_language?.flags & SIGNLANG)
+ if(signed)
send_speech_sign(message, message_range, src, bubble_type, spans, language, message_mods, original_message)
else
send_speech(message, message_range, src, bubble_type, spans, language, message_mods, original_message)