diff --git a/code/_helpers/text.dm b/code/_helpers/text.dm
index d84cde3cd1e..8cc30a468d1 100644
--- a/code/_helpers/text.dm
+++ b/code/_helpers/text.dm
@@ -450,3 +450,17 @@ proc/TextPreview(var/string,var/len=40)
t = replacetext(t, "\[date\]", "[worlddate2text()]")
t = replacetext(t, "\[editorbr\]", "
")
return t
+
+/proc/html2pencode(t)
+ t = replacetext(t, "", "\[b\]")
+ t = replacetext(t, "", "\[/b\]")
+ t = replacetext(t, "", "\[i\]")
+ t = replacetext(t, "", "\[/i\]")
+ t = replacetext(t, "", "\[u\]")
+ t = replacetext(t, "", "\[/u\]")
+ t = replacetext(t, "", "\[large\]")
+ t = replacetext(t, "", "\[/large\]")
+ t = replacetext(t, "", "\[small\]")
+ t = replacetext(t, "", "\[/small\]")
+
+ return t
diff --git a/code/modules/client/preference_setup/general/06_flavor.dm b/code/modules/client/preference_setup/general/06_flavor.dm
index a3bf412e6e0..a16656066d3 100644
--- a/code/modules/client/preference_setup/general/06_flavor.dm
+++ b/code/modules/client/preference_setup/general/06_flavor.dm
@@ -93,8 +93,8 @@
":flavour_legs" = pref.flavor_texts["legs"],
":flavour_feet" = pref.flavor_texts["feet"],
":robot_default" = pref.flavour_texts_robot["default"],
- ":signature" = pref.signature,
- ":signature_font" = pref.signfont)
+ ":signature_font" = pref.signfont,
+ ":signature" = pref.signature)
for (var/module in robot_module_types)
var_list[":robot_[module]"] += pref.flavour_texts_robot[module]
@@ -115,7 +115,8 @@
. += "Signature: [pref.signature]
"
. += "Edit Text | "
. += "Edit Font | "
- . += "Help
"
+ . += "Help | "
+ . += "Reset
"
/datum/category_item/player_setup_item/general/flavor/OnTopic(var/href,var/list/href_list, var/mob/user)
if(href_list["flavor_text"])
@@ -149,7 +150,7 @@
else if (href_list["edit_signature"])
switch (href_list["edit_signature"])
if ("text")
- var/new_sign = input(usr, "Please input the new character signature.", "New signature", pref.signature) as null|text
+ var/new_sign = input(usr, "Please input the new character signature.", "New signature", html2pencode(pref.signature)) as null|text
if (!new_sign)
to_chat(usr, span("notice", "Cancelled."))
if (pref.signature)
@@ -187,6 +188,11 @@
show_browser(usr, html, "window=signaturehelp;size=350x300")
return TOPIC_HANDLED
+ if ("reset")
+ to_chat(usr, span("notice", "Signature reset."))
+ pref.signfont = "Verdana"
+ pref.signature = "[pref.real_name]"
+ return TOPIC_REFRESH
return ..()