From 960372f6eac90e6ae2498fffa6e14feb3c206977 Mon Sep 17 00:00:00 2001 From: CygnusB <39594514+MalricB@users.noreply.github.com> Date: Wed, 23 Sep 2020 23:28:48 -0300 Subject: [PATCH] lmao penis music --- code/datums/chatmessage.dm | 2 +- code/game/say.dm | 14 +++++++++++++- code/modules/mob/living/emote.dm | 1 + code/modules/mob/say.dm | 2 +- code/modules/mob/say_vr.dm | 4 ++-- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index 695c1477..02f43a12 100644 --- a/code/datums/chatmessage.dm +++ b/code/datums/chatmessage.dm @@ -116,7 +116,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 2bb67dfc..9c2ef0a9 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -57,7 +57,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] @@ -94,6 +94,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) + ENCODE_HTML_EPHASIS(input, "\\|", "i", italics) + ENCODE_HTML_EPHASIS(input, "\\+", "b", bold) + ENCODE_HTML_EPHASIS(input, "_", "u", underline) + return input + +#undef ENCODE_HTML_EPHASIS + /atom/movable/proc/lang_treat(atom/movable/speaker, datum/language/language, raw_message, list/spans, message_mode, no_quote = FALSE) if(has_language(language)) var/atom/movable/AM = speaker.GetSource() diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index af65d317..43293556 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -443,6 +443,7 @@ message = params if(type_override) emote_type = type_override + message = user.say_emphasis(message) . = ..() message = null emote_type = EMOTE_VISIBLE diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 5c795242..4d338dd3 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -69,7 +69,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") diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index 4bbeef70..3772dae5 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -99,7 +99,7 @@ proc/get_top_level_mob(var/mob/S) return FALSE user.log_message(message, INDIVIDUAL_EMOTE_LOG) - message = "[user] " + "[message]" + message = "[user] " + "[user.say_emphasis(message)]" for(var/mob/M in GLOB.dead_mob_list) if(!M.client || isnewplayer(M)) @@ -170,7 +170,7 @@ proc/get_top_level_mob(var/mob/S) return FALSE user.log_message(message, INDIVIDUAL_EMOTE_LOG) - message = "[user] " + "[message]" + message = "[user] " + "[user.say_emphasis(message)]" if(emote_type == EMOTE_AUDIBLE) user.audible_message(message=message,hearing_distance=1, no_ghosts = TRUE)