diff --git a/code/game/say.dm b/code/game/say.dm index 6b923d4e83..a5691ad11f 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -110,7 +110,7 @@ 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] == "!") + if((input[1] == "!") && (length_char(input) > 1)) return "" var/pos = findtext(input, "*") return pos? copytext(input, pos + 1) : input @@ -146,12 +146,11 @@ 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] == "!") - input = copytext(input, 1, length(input) + 1) - else - var/customsayverb = findtext(input, "*") - if(customsayverb) - input = capitalize(copytext(input, customsayverb + length(input[customsayverb]))) + if((input[1] == "!") && (length(input) > 2)) + return + var/customsayverb = findtext(input, "*") + if(customsayverb) + input = capitalize(copytext(input, customsayverb + length(input[customsayverb]))) if(input) return "[message_spans_start(spans)][input]" else diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index a2cae0691f..b7ea70732b 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -50,14 +50,16 @@ usr.emote("me",1,message,TRUE) /mob/say_mod(input, message_mode) - if(input[1] == "!") - return "" + 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 ..() /mob/proc/whisper_keybind() var/message = input(src, "", "whisper") as text|null