From fabfd684ce4de44c22e0070172ff43b39dbac63c Mon Sep 17 00:00:00 2001
From: Yawet330 <65188584+Yawet330@users.noreply.github.com>
Date: Thu, 4 Jun 2020 23:53:39 +0100
Subject: [PATCH] Silicon Flavortexts. (SCRUTINISE HEAVILY) (#12395)
* Part 1 - Adding the component
* Part 2 - Making the WRITE_FILE before changing the pref menu.
* Part 3 - Mirroring existing code, instead of tacking it on because im both lazy, and want a distinction
* Part 4 - Changes the preference tab to accomodate this.
* we made a brief fucky wucky!
* make it look noice
* fuckywucky mk2
* Part 5 - make it apart of the helper list (woops)
* that'yll do it.
* maybe fix?
* nope, just hit the delete button on their flavortext entirely :agony:
* Update preferences_savefile.dm
* Update silicon.dm
* Update preferences.dm
* Update silicon.dm
---
code/__HELPERS/mobs.dm | 1 +
code/modules/client/preferences.dm | 15 +++++++++++++++
code/modules/client/preferences_savefile.dm | 5 +++++
code/modules/mob/living/silicon/silicon.dm | 6 ++++++
.../code/modules/client/preferences_savefile.dm | 1 +
5 files changed, 28 insertions(+)
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index e0714a87b3..e62bcc6738 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -216,6 +216,7 @@
"ipc_screen" = snowflake_ipc_antenna_list ? pick(snowflake_ipc_antenna_list) : "None",
"ipc_antenna" = "None",
"flavor_text" = "",
+ "silicon_flavor_text" = "",
"meat_type" = "Mammalian",
"body_model" = body_model,
"body_size" = RESIZE_DEFAULT_SIZE
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index ec3656f007..c0ac79e449 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -154,6 +154,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
"ipc_screen" = "Sunburst",
"ipc_antenna" = "None",
"flavor_text" = "",
+ "silicon_flavor_text" = "",
"ooc_notes" = "",
"meat_type" = "Mammalian",
"body_model" = MALE,
@@ -367,6 +368,15 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "[features["flavor_text"]]"
else
dat += "[TextPreview(features["flavor_text"])]...
"
+ dat += "
Silicon Flavor Text
"
+ dat += "Set Silicon Examine Text
"
+ if(length(features["silicon_flavor_text"]) <= 40)
+ if(!length(features["silicon_flavor_text"]))
+ dat += "\[...\]"
+ else
+ dat += "[features["silicon_flavor_text"]]"
+ else
+ dat += "[TextPreview(features["silicon_flavor_text"])]...
"
dat += "OOC notes
"
dat += "Set OOC notes
"
var/ooc_notes_len = length(features["ooc_notes"])
@@ -1615,6 +1625,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/msg = stripped_multiline_input(usr, "Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Flavor Text", features["flavor_text"], MAX_FLAVOR_LEN, TRUE)
if(!isnull(msg))
features["flavor_text"] = html_decode(msg)
+
+ if("silicon_flavor_text")
+ var/msg = stripped_multiline_input(usr, "Set the silicon flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Silicon Flavor Text", features["silicon_flavor_text"], MAX_FLAVOR_LEN, TRUE)
+ if(!isnull(msg))
+ features["silicon_flavor_text"] = html_decode(msg)
if("ooc_notes")
var/msg = stripped_multiline_input(usr, "Set always-visible OOC notes related to content preferences. THIS IS NOT FOR CHARACTER DESCRIPTIONS!", "OOC notes", features["ooc_notes"], MAX_FLAVOR_LEN, TRUE)
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index a2da5d1ae2..c173dfa625 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -552,8 +552,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
else //We have no old flavortext, default to new
S["feature_flavor_text"] >> features["flavor_text"]
+
+
+ S["silicon_feature_flavor_text"] >> features["silicon_flavor_text"]
S["feature_ooc_notes"] >> features["ooc_notes"]
+ S["silicon_flavor_text"] >> features["silicon_flavor_text"]
S["vore_flags"] >> vore_flags
S["vore_taste"] >> vore_taste
@@ -678,6 +682,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
features["flavor_text"] = copytext(features["flavor_text"], 1, MAX_FLAVOR_LEN)
+ features["silicon_flavor_text"] = copytext(features["silicon_flavor_text"], 1, MAX_FLAVOR_LEN)
features["ooc_notes"] = copytext(features["ooc_notes"], 1, MAX_FLAVOR_LEN)
joblessrole = sanitize_integer(joblessrole, 1, 3, initial(joblessrole))
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index 0d0f7f9c97..173db6f69b 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -56,6 +56,12 @@
diag_hud_set_status()
diag_hud_set_health()
+/mob/living/silicon/ComponentInitialize()
+ . = ..()
+ AddElement(/datum/element/flavor_text, _name = "Silicon Flavor Text", _save_key = "silicon_flavor_text")
+ AddElement(/datum/element/flavor_text, "", "Temporary Flavor Text", "This should be used only for things pertaining to the current round!")
+ AddElement(/datum/element/flavor_text, _name = "OOC Notes", _addendum = "Put information on ERP/vore/lewd-related preferences here. THIS SHOULD NOT CONTAIN REGULAR FLAVORTEXT!!", _always_show = TRUE, _save_key = "ooc_notes", _examine_no_preview = TRUE)
+
/mob/living/silicon/med_hud_set_health()
return //we use a different hud
diff --git a/modular_citadel/code/modules/client/preferences_savefile.dm b/modular_citadel/code/modules/client/preferences_savefile.dm
index d0363d228f..c747c4cf32 100644
--- a/modular_citadel/code/modules/client/preferences_savefile.dm
+++ b/modular_citadel/code/modules/client/preferences_savefile.dm
@@ -35,4 +35,5 @@
WRITE_FILE(S["feature_xeno_head"], features["xenohead"])
//flavor text
WRITE_FILE(S["feature_flavor_text"], features["flavor_text"])
+ WRITE_FILE(S["silicon_feature_flavor_text"], features["silicon_flavor_text"])