From ec0d0f9ada5482e6c603a0390c336b5f411dbfba Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sun, 8 Mar 2020 01:27:14 +0100 Subject: [PATCH 1/5] Update flavor_text.dm --- code/datums/elements/flavor_text.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/datums/elements/flavor_text.dm b/code/datums/elements/flavor_text.dm index 61c549d222..cf1154299b 100644 --- a/code/datums/elements/flavor_text.dm +++ b/code/datums/elements/flavor_text.dm @@ -9,7 +9,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code var/always_show = FALSE var/max_len = MAX_FAVOR_LEN -/datum/element/flavor_text/Attach(datum/target, text = "", _name = "Flavor Text", _desc = "Sets an extended description of your character's features.", _addendum, _max_len = MAX_FAVOR_LEN, _always_show = FALSE, can_edit = TRUE) +/datum/element/flavor_text/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FAVOR_LEN, _always_show = FALSE, can_edit = TRUE) . = ..() if(. == ELEMENT_INCOMPATIBLE || !isatom(target)) //no reason why this shouldn't work on atoms too. @@ -113,7 +113,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code //subtypes with additional hooks for DNA and preferences. /datum/element/flavor_text/carbon -/datum/element/flavor_text/carbon/Attach(datum/target, text = "", _proc, _name = "Flavor Text", _desc = "Sets an extended description of your character's features.", _addendum, _max_len = MAX_FAVOR_LEN, _always_show = FALSE, can_edit = TRUE) +/datum/element/flavor_text/carbon/Attach(datum/target, text = "", _proc, _name = "Flavor Text", _addendum, _max_len = MAX_FAVOR_LEN, _always_show = FALSE, can_edit = TRUE) if(!iscarbon(target)) return ELEMENT_INCOMPATIBLE . = ..() @@ -137,4 +137,4 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code /datum/element/flavor_text/carbon/set_flavor(mob/living/carbon/user) . = ..() if(. && user.dna) - user.dna.features["flavor_text"] = texts_by_mob[user] \ No newline at end of file + user.dna.features["flavor_text"] = texts_by_mob[user] From 5f3496e908b29b1ef9155c0e33d998274ec824ca Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sun, 8 Mar 2020 01:27:35 +0100 Subject: [PATCH 2/5] Update human.dm --- code/modules/mob/living/carbon/human/human.dm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 78f97c69bc..99ad0ea4a1 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -39,9 +39,7 @@ if(!CONFIG_GET(flag/disable_human_mood)) AddComponent(/datum/component/mood) AddElement(/datum/element/flavor_text/carbon) - AddElement(/datum/element/flavor_text, "", "Temporary Flavor Text", - "Sets a description of your character's current appearance. Use this for emotions, poses etc.", - "This should be used only for things pertaining to the current round!") + AddElement(/datum/element/flavor_text, "", "Temporary Flavor Text", "This should be used only for things pertaining to the current round!") /mob/living/carbon/human/Destroy() QDEL_NULL(physiology) From d10f0b0e2f9b0b445e753cecc8cb94bca9b17c0e Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sun, 8 Mar 2020 01:28:42 +0100 Subject: [PATCH 3/5] Update flavor_text.dm --- code/datums/elements/flavor_text.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/elements/flavor_text.dm b/code/datums/elements/flavor_text.dm index cf1154299b..2da9bc994a 100644 --- a/code/datums/elements/flavor_text.dm +++ b/code/datums/elements/flavor_text.dm @@ -113,7 +113,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code //subtypes with additional hooks for DNA and preferences. /datum/element/flavor_text/carbon -/datum/element/flavor_text/carbon/Attach(datum/target, text = "", _proc, _name = "Flavor Text", _addendum, _max_len = MAX_FAVOR_LEN, _always_show = FALSE, can_edit = TRUE) +/datum/element/flavor_text/carbon/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FAVOR_LEN, _always_show = FALSE, can_edit = TRUE) if(!iscarbon(target)) return ELEMENT_INCOMPATIBLE . = ..() From 991f9a75b787157642af496c99933979da15d71f Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sun, 8 Mar 2020 01:33:02 +0100 Subject: [PATCH 4/5] Update flavor_text.dm --- code/datums/elements/flavor_text.dm | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/code/datums/elements/flavor_text.dm b/code/datums/elements/flavor_text.dm index 2da9bc994a..43b2b601f3 100644 --- a/code/datums/elements/flavor_text.dm +++ b/code/datums/elements/flavor_text.dm @@ -4,12 +4,13 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH id_arg_index = 3 var/flavor_name = "Flavor Text" - var/list/texts_by_mob = list() + var/list/texts_by_atom = list() var/addendum = "This can also be used for OOC notes and preferences!" var/always_show = FALSE var/max_len = MAX_FAVOR_LEN + var/can_edit = TRUE -/datum/element/flavor_text/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FAVOR_LEN, _always_show = FALSE, can_edit = TRUE) +/datum/element/flavor_text/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FAVOR_LEN, _always_show = FALSE, _edit = TRUE) . = ..() if(. == ELEMENT_INCOMPATIBLE || !isatom(target)) //no reason why this shouldn't work on atoms too. @@ -17,12 +18,13 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code if(_max_len) max_len = _max_len - texts_by_mob[target] = copytext(text, 1, max_len) + texts_by_atom[target] = copytext(text, 1, max_len) if(_name) flavor_name = _name if(!isnull(addendum)) addendum = _addendum always_show = _always_show + can_edit = _edit RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/show_flavor) @@ -34,12 +36,12 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code /datum/element/flavor_text/Detach(atom/A) . = ..() UnregisterSignal(A, COMSIG_PARENT_EXAMINE) - texts_by_mob -= A - LAZYREMOVE(GLOB.mobs_with_editable_flavor_text[A], src) - if(!GLOB.mobs_with_editable_flavor_text[A]) - GLOB.mobs_with_editable_flavor_text -= A - if(ismob(A)) - var/mob/M = A + texts_by_atom -= A + if(can_edit && ismob(A)) + var/mob/M = A + LAZYREMOVE(GLOB.mobs_with_editable_flavor_text[M], src) + if(!GLOB.mobs_with_editable_flavor_text[M]) + GLOB.mobs_with_editable_flavor_text -= M M.verbs -= /mob/proc/manage_flavor_tests /datum/element/flavor_text/proc/show_flavor(atom/target, mob/user, list/examine_list) @@ -113,7 +115,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code //subtypes with additional hooks for DNA and preferences. /datum/element/flavor_text/carbon -/datum/element/flavor_text/carbon/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FAVOR_LEN, _always_show = FALSE, can_edit = TRUE) +/datum/element/flavor_text/carbon/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FAVOR_LEN, _always_show = FALSE, _edit = TRUE) if(!iscarbon(target)) return ELEMENT_INCOMPATIBLE . = ..() From a139f0adc64b85701786e81b6007df1d1893f28b Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sun, 8 Mar 2020 01:38:42 +0100 Subject: [PATCH 5/5] Update flavor_text.dm --- code/datums/elements/flavor_text.dm | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/code/datums/elements/flavor_text.dm b/code/datums/elements/flavor_text.dm index 43b2b601f3..232d338a05 100644 --- a/code/datums/elements/flavor_text.dm +++ b/code/datums/elements/flavor_text.dm @@ -55,7 +55,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code if(!("...?" in examine_list)) //can't think of anything better in case of multiple flavor texts. examine_list += "...?" return - var/text = texts_by_mob[target] + var/text = texts_by_atom[target] if(!text) return var/msg = replacetext(text, "\n", " ") @@ -70,9 +70,9 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code return if(href_list["show_flavor"]) var/atom/target = href_list["show_flavor"] - var/text = texts_by_mob[target] + var/text = texts_by_atom[target] if(text) - usr << browse("[target.name][replacetext(texts_by_mob[target], "\n", "
")]
", "window=[target.name];size=500x200") + usr << browse("[target.name][replacetext(texts_by_atom[target], "\n", "
")]
", "window=[target.name];size=500x200") onclose(usr, "[target.name]") return TRUE @@ -101,13 +101,13 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code F.set_flavor(src) /datum/element/flavor_text/proc/set_flavor(mob/user) - if(!(user in texts_by_mob)) + if(!(user in texts_by_atom)) return FALSE var/lower_name = lowertext(flavor_name) - var/new_text = stripped_multiline_input(user, "Set the [lower_name] displayed on 'examine'. [addendum]", flavor_name, texts_by_mob[usr], max_len, TRUE) - if(!isnull(new_text) && (user in texts_by_mob)) - texts_by_mob[user] = html_decode(new_text) + var/new_text = stripped_multiline_input(user, "Set the [lower_name] displayed on 'examine'. [addendum]", flavor_name, texts_by_atom[usr], max_len, TRUE) + if(!isnull(new_text) && (user in texts_by_atom)) + texts_by_atom[user] = html_decode(new_text) to_chat(src, "Your [lower_name] has been updated.") return TRUE return FALSE @@ -131,12 +131,12 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code UnregisterSignal(C, list(COMSIG_CARBON_IDENTITY_TRANSFERRED_TO, COMSIG_HUMAN_PREFS_COPIED_TO, COMSIG_HUMAN_HARDSET_DNA)) /datum/element/flavor_text/carbon/proc/update_dna_flavor_text(mob/living/carbon/C) - texts_by_mob[C] = C.dna.features["flavor_text"] + texts_by_atom[C] = C.dna.features["flavor_text"] /datum/element/flavor_text/carbon/proc/update_prefs_flavor_text(mob/living/carbon/human/H, datum/preferences/P, icon_updates = TRUE, roundstart_checks = TRUE) - texts_by_mob[H] = P.features["flavor_text"] + texts_by_atom[H] = P.features["flavor_text"] /datum/element/flavor_text/carbon/set_flavor(mob/living/carbon/user) . = ..() if(. && user.dna) - user.dna.features["flavor_text"] = texts_by_mob[user] + user.dna.features["flavor_text"] = texts_by_atom[user]