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 = ""
+ var/complete_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[html]>")
+
+
/// 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[html]>")
+ return search.Replace_char(input, "<[html]>$2[html]>")
/// 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[html]>")
-
-
/// 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[html]>")
+
/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