From a4a02953126804a2ba5f8164e2a026818b37d5a1 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 7 Jun 2020 21:27:36 -0700 Subject: [PATCH 01/11] ok --- code/datums/chatmessage.dm | 2 +- code/game/say.dm | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index 7a78e1d001..73d3e69ac4 100644 --- a/code/datums/chatmessage.dm +++ b/code/datums/chatmessage.dm @@ -114,7 +114,7 @@ // BYOND Bug #2563917 // Construct text var/static/regex/html_metachars = new(@"&[A-Za-z]{1,7};", "g") - var/complete_text = "[text]" + var/complete_text = "[owner.say_emphasis(text)]" var/mheight = WXH_TO_HEIGHT(owned_by.MeasureText(replacetext(complete_text, html_metachars, "m"), null, CHAT_MESSAGE_WIDTH)) approx_lines = max(1, mheight / CHAT_MESSAGE_APPROX_LHEIGHT) diff --git a/code/game/say.dm b/code/game/say.dm index 187994f432..3fee6eaee2 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -59,7 +59,7 @@ GLOBAL_LIST_INIT(freqtospan, list( var/endspanpart = "" //Message - var/messagepart = " [lang_treat(speaker, message_language, raw_message, spans, message_mode)]" + var/messagepart = " [say_emphasis(lang_treat(speaker, message_language, raw_message, spans, message_mode))]" var/languageicon = "" var/datum/language/D = GLOB.language_datum_instances[message_language] @@ -96,6 +96,21 @@ GLOBAL_LIST_INIT(freqtospan, list( return "[say_mod(input, message_mode)][spanned ? ", \"[spanned]\"" : ""]" // Citadel edit [spanned ? ", \"[spanned]\"" : ""]" +/atom/movable/proc/say_emphasis(input) + input = encode_html_emphasis(input, "|", "i") + input = encode_html_emphasis(input, "_", "u") + input = encode_html_emphasis(input, "+", "b") + return input + +/** + * Replaces a character inside message with html tags. Note that html var must not include brackets. + * Will not create an open html tag if it would not have a closing one. + */ +/atom/movable/proc/encode_html_emphasis(input, char, html) + var/regex/search = regex("([REGEX_QUOTE(char)])(\\b.*\\b)([REGEX_QUOTE(char)])", "g") + return search.Replace_char(message, "<[html]>$2") + + /// 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) var/pos = findtext(input, "*") From e47ed9356f998e500e0cde2b52191dfe6cef8125 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 7 Jun 2020 21:45:07 -0700 Subject: [PATCH 02/11] spelling --- code/game/say.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/say.dm b/code/game/say.dm index 3fee6eaee2..d0d031ee0d 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -108,7 +108,7 @@ GLOBAL_LIST_INIT(freqtospan, list( */ /atom/movable/proc/encode_html_emphasis(input, char, html) var/regex/search = regex("([REGEX_QUOTE(char)])(\\b.*\\b)([REGEX_QUOTE(char)])", "g") - return search.Replace_char(message, "<[html]>$2") + return search.Replace_char(input, "<[html]>$2") /// Quirky citadel proc for our custom sayverbs to strip the verb out. Snowflakey as hell, say rewrite 3.0 when? From 474873cc62b628f88f8f54f644ebf65010204eb8 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 8 Jun 2020 05:19:22 -0700 Subject: [PATCH 03/11] sigh --- code/game/say.dm | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/code/game/say.dm b/code/game/say.dm index d0d031ee0d..4a361b2461 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -97,20 +97,14 @@ GLOBAL_LIST_INIT(freqtospan, list( // Citadel edit [spanned ? ", \"[spanned]\"" : ""]" /atom/movable/proc/say_emphasis(input) - input = encode_html_emphasis(input, "|", "i") - input = encode_html_emphasis(input, "_", "u") - input = encode_html_emphasis(input, "+", "b") + var/static/regex/italics = regex("|(\\b.*?\\b)|", "g") + input = replacetext_char(input, italics, "$1") + var/static/regex/bold = regex("+(\\b.*?\\b)+", "g") + input = replacetext_char(input, bold, "$1") + var/static/regex/underline = regex("_(\\B.*?\\B)_", "g") + input = replacetext_char(input, underline, "$1") return input -/** - * Replaces a character inside message with html tags. Note that html var must not include brackets. - * Will not create an open html tag if it would not have a closing one. - */ -/atom/movable/proc/encode_html_emphasis(input, char, html) - var/regex/search = regex("([REGEX_QUOTE(char)])(\\b.*\\b)([REGEX_QUOTE(char)])", "g") - return search.Replace_char(input, "<[html]>$2") - - /// 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) var/pos = findtext(input, "*") From dcca70e94ac2a7b332a7c454963747e34521eb02 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 8 Jun 2020 06:46:19 -0700 Subject: [PATCH 04/11] fix --- code/game/say.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/say.dm b/code/game/say.dm index 4a361b2461..3cce5bcfc1 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -97,11 +97,11 @@ GLOBAL_LIST_INIT(freqtospan, list( // Citadel edit [spanned ? ", \"[spanned]\"" : ""]" /atom/movable/proc/say_emphasis(input) - var/static/regex/italics = regex("|(\\b.*?\\b)|", "g") + var/static/regex/italics = regex("\\|(?=\\S)(.*?)(?=\\S)\\|", "g") input = replacetext_char(input, italics, "$1") - var/static/regex/bold = regex("+(\\b.*?\\b)+", "g") + var/static/regex/bold = regex("\+(?=\S)(.*?)(?=\S)\+", "g") input = replacetext_char(input, bold, "$1") - var/static/regex/underline = regex("_(\\B.*?\\B)_", "g") + var/static/regex/underline = regex("_+(?=\S)(.*?)(?=\S)\_", "g") input = replacetext_char(input, underline, "$1") return input From 2c5e8e2f6a4b484fab93ce7dd5d38d9fee5840e8 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 8 Jun 2020 06:51:03 -0700 Subject: [PATCH 05/11] fix --- code/game/say.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/say.dm b/code/game/say.dm index 3cce5bcfc1..da8ecf5a7e 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -99,9 +99,9 @@ GLOBAL_LIST_INIT(freqtospan, list( /atom/movable/proc/say_emphasis(input) var/static/regex/italics = regex("\\|(?=\\S)(.*?)(?=\\S)\\|", "g") input = replacetext_char(input, italics, "$1") - var/static/regex/bold = regex("\+(?=\S)(.*?)(?=\S)\+", "g") + var/static/regex/bold = regex("\\+(?=\\S)(.*?)(?=\\S)\\+", "g") input = replacetext_char(input, bold, "$1") - var/static/regex/underline = regex("_+(?=\S)(.*?)(?=\S)\_", "g") + var/static/regex/underline = regex("_(?=\\S)(.*?)(?=\\S)_", "g") input = replacetext_char(input, underline, "$1") return input From 9866f19eb348736a1a5f1e24f08a2f938503d73c Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 8 Jun 2020 11:18:24 -0700 Subject: [PATCH 06/11] Update code/game/say.dm Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/game/say.dm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/code/game/say.dm b/code/game/say.dm index da8ecf5a7e..35a1b1d072 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -96,15 +96,18 @@ GLOBAL_LIST_INIT(freqtospan, list( return "[say_mod(input, message_mode)][spanned ? ", \"[spanned]\"" : ""]" // Citadel edit [spanned ? ", \"[spanned]\"" : ""]" +#define ENCODE_HTML_EPHASIS(input, char, html, varname) \ + var/static/regex/##varname = regex("[char]{2}(.+?)[char]{2}", "g");\ + input = varname.Replace_char(input, "<[html]>$1") + /atom/movable/proc/say_emphasis(input) - var/static/regex/italics = regex("\\|(?=\\S)(.*?)(?=\\S)\\|", "g") - input = replacetext_char(input, italics, "$1") - var/static/regex/bold = regex("\\+(?=\\S)(.*?)(?=\\S)\\+", "g") - input = replacetext_char(input, bold, "$1") - var/static/regex/underline = regex("_(?=\\S)(.*?)(?=\\S)_", "g") - input = replacetext_char(input, underline, "$1") + ENCODE_HTML_EPHASIS(input, "\\|", "i", italics) + ENCODE_HTML_EPHASIS(input, "\\+", "b", bold) + ENCODE_HTML_EPHASIS(input, "_", "u", underline) return input +#undef ENCODE_HTML_EPHASIS + /// 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) var/pos = findtext(input, "*") From 9523a3c1b3c8943dcf29f6ca63795754e2bf7753 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 9 Jun 2020 10:45:00 -0700 Subject: [PATCH 07/11] Update say_vr.dm --- code/modules/mob/say_vr.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index 44dc3e2a05..de934ee5cd 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -60,7 +60,7 @@ proc/get_top_level_mob(var/mob/S) return FALSE user.log_message(message, LOG_EMOTE) - message = "[user] " + "[message]" + message = "[user] " + "[say_emphasis(message)]" for(var/mob/M in GLOB.dead_mob_list) if(!M.client || isnewplayer(M)) @@ -121,7 +121,7 @@ proc/get_top_level_mob(var/mob/S) return FALSE user.log_message(message, LOG_SUBTLER) - message = "[user] " + "[message]" + message = "[user] " + "[say_emphasis(message)]" if(emote_type == EMOTE_AUDIBLE) user.audible_message(message=message,hearing_distance=1, ignored_mobs = GLOB.dead_mob_list) From e9a8daf8059d50fa747456ddfc7e882682e623a1 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 9 Jun 2020 10:45:52 -0700 Subject: [PATCH 08/11] Update say.dm --- code/modules/mob/say.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index e2b3aee35d..a403845ee2 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -113,7 +113,7 @@ if(name != real_name) alt_name = " (died as [real_name])" - var/spanned = say_quote(message) + var/spanned = say_quote(say_emphasis(message)) message = emoji_parse(message) var/rendered = "DEAD: [name][alt_name] [emoji_parse(spanned)]" log_talk(message, LOG_SAY, tag="DEAD") From d9b3161775acec7763b9df507904b47ce166e393 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 9 Jun 2020 10:53:10 -0700 Subject: [PATCH 09/11] Update emote.dm --- code/modules/mob/living/emote.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 111054c383..675777f3b0 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -457,6 +457,7 @@ message = params if(type_override) emote_type = type_override + message = say_emphasis(message) . = ..() message = null emote_type = EMOTE_VISIBLE From 1ca12319b247e2712b4ebb4caa6c92ba740e3402 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 9 Jun 2020 21:56:49 -0700 Subject: [PATCH 10/11] Update say_vr.dm --- code/modules/mob/say_vr.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index de934ee5cd..5ed24af726 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -60,7 +60,7 @@ proc/get_top_level_mob(var/mob/S) return FALSE user.log_message(message, LOG_EMOTE) - message = "[user] " + "[say_emphasis(message)]" + message = "[user] " + "[user.say_emphasis(message)]" for(var/mob/M in GLOB.dead_mob_list) if(!M.client || isnewplayer(M)) @@ -121,7 +121,7 @@ proc/get_top_level_mob(var/mob/S) return FALSE user.log_message(message, LOG_SUBTLER) - message = "[user] " + "[say_emphasis(message)]" + message = "[user] " + "[user.say_emphasis(message)]" if(emote_type == EMOTE_AUDIBLE) user.audible_message(message=message,hearing_distance=1, ignored_mobs = GLOB.dead_mob_list) From cc51768223b007560dad70794af5e89eec4673eb Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 9 Jun 2020 21:58:11 -0700 Subject: [PATCH 11/11] Update emote.dm --- code/modules/mob/living/emote.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 675777f3b0..7d0a701e8f 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -457,7 +457,7 @@ message = params if(type_override) emote_type = type_override - message = say_emphasis(message) + message = user.say_emphasis(message) . = ..() message = null emote_type = EMOTE_VISIBLE