From 98bf39bf529ac7d42d25add60da734fcff1d9fad Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Thu, 23 Sep 2021 03:39:47 +0200 Subject: [PATCH] Fix quirks list in preferences menu being empty before SSquirks (#8327) Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> Co-authored-by: Gandalf --- .../subsystem/processing/quirks.dm | 29 ++++++++++++------- .../client/preferences/middleware/quirks.dm | 6 ++-- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index 5edbe026ee7..d85104d379b 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -17,19 +17,28 @@ PROCESSING_SUBSYSTEM_DEF(quirks) ///An assoc list of quirks that can be obtained as a hardcore character, and their hardcore value. var/list/hardcore_quirks = list() + var/static/list/quirks_blacklist = list( + list("Blind","Nearsighted"), + list("Jolly","Depression","Apathetic","Hypersensitive"), + list("Ageusia","Vegetarian","Deviant Tastes"), + list("Ananas Affinity","Ananas Aversion"), + list("Alcohol Tolerance","Light Drinker"), + list("Clown Fan","Mime Fan"), + list("Bad Touch", "Friendly"), + list("Extrovert", "Introvert"), + ) + /datum/controller/subsystem/processing/quirks/Initialize(timeofday) - if(!quirks.len) + get_quirks() + return ..() + +/// Returns the list of possible quirks +/datum/controller/subsystem/processing/quirks/proc/get_quirks() + RETURN_TYPE(/list) + if (!quirks.len) SetupQuirks() - quirk_blacklist = list(list("Blind","Nearsighted"), \ - list("Jolly","Depression","Apathetic","Hypersensitive"), \ - list("Ageusia","Vegetarian","Deviant Tastes"), \ - list("Ananas Affinity","Ananas Aversion"), \ - list("Alcohol Tolerance","Light Drinker"), \ - list("Clown Fan","Mime Fan"), \ - list("Bad Touch", "Friendly"), \ - list("Extrovert", "Introvert")) - return ..() + return quirks /datum/controller/subsystem/processing/quirks/proc/SetupQuirks() // Sort by Positive, Negative, Neutral; and then by name diff --git a/code/modules/client/preferences/middleware/quirks.dm b/code/modules/client/preferences/middleware/quirks.dm index f508c204ab5..babbad37d2b 100644 --- a/code/modules/client/preferences/middleware/quirks.dm +++ b/code/modules/client/preferences/middleware/quirks.dm @@ -29,8 +29,10 @@ /datum/preference_middleware/quirks/get_constant_data() var/list/quirk_info = list() - for (var/quirk_name in SSquirks.quirks) - var/datum/quirk/quirk = SSquirks.quirks[quirk_name] + var/list/quirks = SSquirks.get_quirks() + + for (var/quirk_name in quirks) + var/datum/quirk/quirk = quirks[quirk_name] quirk_info[sanitize_css_class_name(quirk_name)] = list( "description" = initial(quirk.desc), "icon" = initial(quirk.icon),