diff --git a/code/game/say.dm b/code/game/say.dm index 35a1b1d072..a5691ad11f 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -110,6 +110,8 @@ GLOBAL_LIST_INIT(freqtospan, list( /// Quirky citadel proc for our custom sayverbs to strip the verb out. Snowflakey as hell, say rewrite 3.0 when? /atom/movable/proc/quoteless_say_quote(input, list/spans = list(speech_span), message_mode) + if((input[1] == "!") && (length_char(input) > 1)) + return "" var/pos = findtext(input, "*") return pos? copytext(input, pos + 1) : input @@ -144,6 +146,8 @@ GLOBAL_LIST_INIT(freqtospan, list( return "[copytext_char("[freq]", 1, 4)].[copytext_char("[freq]", 4, 5)]" /atom/movable/proc/attach_spans(input, list/spans) + if((input[1] == "!") && (length(input) > 2)) + return var/customsayverb = findtext(input, "*") if(customsayverb) input = capitalize(copytext(input, customsayverb + length(input[customsayverb]))) diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 14ddc5c720..3ceafe4a11 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -50,12 +50,16 @@ usr.emote("me",1,message,TRUE) /mob/say_mod(input, message_mode) + if(message_mode == MODE_WHISPER_CRIT) + return ..() + if((input[1] == "!") && (length_char(input) > 1)) + message_mode = MODE_CUSTOM_SAY + return copytext_char(input, 2) var/customsayverb = findtext(input, "*") - if(customsayverb && message_mode != MODE_WHISPER_CRIT) + if(customsayverb) message_mode = MODE_CUSTOM_SAY return lowertext(copytext_char(input, 1, customsayverb)) - else - return ..() + return ..() /proc/uncostumize_say(input, message_mode) . = input