From a3ad224e0f3d646e0b092536bc36b5a2b19db892 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 14 Nov 2019 18:21:08 -0700 Subject: [PATCH 1/6] Update config_entry.dm --- code/controllers/configuration/config_entry.dm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/code/controllers/configuration/config_entry.dm b/code/controllers/configuration/config_entry.dm index 4406655375..87fd78c4b5 100644 --- a/code/controllers/configuration/config_entry.dm +++ b/code/controllers/configuration/config_entry.dm @@ -211,3 +211,18 @@ /datum/config_entry/keyed_list/vv_edit_var(var_name, var_value) return var_name != "splitter" && ..() + +//snowflake for donator things being on one line smh +/datum/config_entry/multi_keyed_flag + vv_VAS = FALSE + abstract_type = /datum/config_entry/multi_keyed_flag + config_entry_value = list() + +/datum/config_entry/multi_keyed_flag/ValidateAndSet(str_val) + if(!VASProcCallGuard(str_val)) + return FALSE + str_val = trim(str_val) + var/list/keys = splittext(str_val, " ") + for(var/i in keys) + config_entry_value[i] = TRUE + return length(keys)? TRUE : FALSE From e8938f52a72debe62485f1f6af18690eda8e01d8 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 14 Nov 2019 18:22:21 -0700 Subject: [PATCH 2/6] Update donator.dm --- .../controllers/configuration/entries/donator.dm | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/code/controllers/configuration/entries/donator.dm b/code/controllers/configuration/entries/donator.dm index b74d5f5839..127ec7ff32 100644 --- a/code/controllers/configuration/entries/donator.dm +++ b/code/controllers/configuration/entries/donator.dm @@ -1,22 +1,20 @@ -/datum/config_entry/keyed_list/donator_group - key_mode = KEY_MODE_TEXT - value_mode = VALUE_MODE_FLAG - abstract_type = /datum/config_entry/keyed_list/donator_group +/datum/config_entry/multi_keyed_flag/donator_group + abstract_type = /datum/config_entry/multi_keyed_flag/donator_group //If we're in the middle of a config load, only do the regeneration afterwards to prevent this from wasting a massive amount of CPU for list regenerations. -/datum/config_entry/keyed_list/donator_group/ValidateAndSet(str_val, during_load) +/datum/config_entry/multi_keyed_flag/donator_group/ValidateAndSet(str_val, during_load) . = ..() if(. && during_load) regenerate_donator_grouping_list() -/datum/config_entry/keyed_list/donator_group/OnPostload() +/datum/config_entry/multi_keyed_flag/donator_group/OnPostload() . = ..() regenerate_donator_grouping_list() //This is kinda weird in that the config entries are defined here but all the handling/calculations are in __HELPERS/donator_groupings.dm -/datum/config_entry/keyed_list/donator_group/tier_1_donators +/datum/config_entry/multi_keyed_flag/donator_group/tier_1_donators -/datum/config_entry/keyed_list/donator_group/tier_2_donators +/datum/config_entry/multi_keyed_flag/donator_group/tier_2_donators -/datum/config_entry/keyed_list/donator_group/tier_3_donators +/datum/config_entry/multi_keyed_flag/donator_group/tier_3_donators From 3624f90c455f42f7fdc600c9c18c87ddd540dede Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 14 Nov 2019 18:22:59 -0700 Subject: [PATCH 3/6] Update donator_groupings.dm --- code/__DEFINES/donator_groupings.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/__DEFINES/donator_groupings.dm b/code/__DEFINES/donator_groupings.dm index 4b210609f2..855b9927f5 100644 --- a/code/__DEFINES/donator_groupings.dm +++ b/code/__DEFINES/donator_groupings.dm @@ -1,10 +1,10 @@ -#define DONATOR_GROUP_TIER_1_CONFIG_PATH /datum/config_entry/keyed_list/donator_group/tier_1_donators -#define DONATOR_GROUP_TIER_2_CONFIG_PATH /datum/config_entry/keyed_list/donator_group/tier_2_donators -#define DONATOR_GROUP_TIER_3_CONFIG_PATH /datum/config_entry/keyed_list/donator_group/tier_3_donators +#define DONATOR_GROUP_TIER_1_CONFIG_PATH /datum/config_entry/multi_keyed_flag/donator_group/tier_1_donators +#define DONATOR_GROUP_TIER_2_CONFIG_PATH /datum/config_entry/multi_keyed_flag/donator_group/tier_2_donators +#define DONATOR_GROUP_TIER_3_CONFIG_PATH /datum/config_entry/multi_keyed_flag/donator_group/tier_3_donators -#define DONATOR_GROUP_TIER_1_CONFIG_SUBPATH keyed_list/donator_group/tier_1_donators -#define DONATOR_GROUP_TIER_2_CONFIG_SUBPATH keyed_list/donator_group/tier_2_donators -#define DONATOR_GROUP_TIER_3_CONFIG_SUBPATH keyed_list/donator_group/tier_3_donators +#define DONATOR_GROUP_TIER_1_CONFIG_SUBPATH multi_keyed_flag/donator_group/tier_1_donators +#define DONATOR_GROUP_TIER_2_CONFIG_SUBPATH multi_keyed_flag/donator_group/tier_2_donators +#define DONATOR_GROUP_TIER_3_CONFIG_SUBPATH multi_keyed_flag/donator_group/tier_3_donators #define TIER_1_DONATORS CONFIG_GET(DONATOR_GROUP_TIER_1_CONFIG_SUBPATH) #define TIER_2_DONATORS CONFIG_GET(DONATOR_GROUP_TIER_2_CONFIG_SUBPATH) From 0dcb2d3b9cdbe0d44f9a14bce8f3b2a1542bf5c6 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 14 Nov 2019 18:25:52 -0700 Subject: [PATCH 4/6] Update config_entry.dm --- code/controllers/configuration/config_entry.dm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/code/controllers/configuration/config_entry.dm b/code/controllers/configuration/config_entry.dm index 87fd78c4b5..329b41197a 100644 --- a/code/controllers/configuration/config_entry.dm +++ b/code/controllers/configuration/config_entry.dm @@ -217,12 +217,21 @@ vv_VAS = FALSE abstract_type = /datum/config_entry/multi_keyed_flag config_entry_value = list() + var/delimiter = "|" + +/datum/config_entry/multi_keyed_flag/vv_edit_var(var_name, var_value) + if(var_name == NAMEOF(src, delimiter)) + return FALSE + return ..() /datum/config_entry/multi_keyed_flag/ValidateAndSet(str_val) if(!VASProcCallGuard(str_val)) return FALSE str_val = trim(str_val) - var/list/keys = splittext(str_val, " ") + var/list/keys = splittext(str_val, delimiter) for(var/i in keys) - config_entry_value[i] = TRUE + config_entry_value[process_key(i)] = TRUE return length(keys)? TRUE : FALSE + +/datum/config_entry/multi_keyed_flag/process_key(key) + return trim(key) From b8c45ba6a1a77b6bf5792715b298733f66cd5b42 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 14 Nov 2019 18:26:50 -0700 Subject: [PATCH 5/6] Update donator.dm --- code/controllers/configuration/entries/donator.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/controllers/configuration/entries/donator.dm b/code/controllers/configuration/entries/donator.dm index 127ec7ff32..bb7b5a54c3 100644 --- a/code/controllers/configuration/entries/donator.dm +++ b/code/controllers/configuration/entries/donator.dm @@ -4,9 +4,12 @@ //If we're in the middle of a config load, only do the regeneration afterwards to prevent this from wasting a massive amount of CPU for list regenerations. /datum/config_entry/multi_keyed_flag/donator_group/ValidateAndSet(str_val, during_load) . = ..() - if(. && during_load) + if(. && !during_load) regenerate_donator_grouping_list() +/datum/config_entry/multi_keyed_flag/donator_group/process_key(key) + return ckey(key) + /datum/config_entry/multi_keyed_flag/donator_group/OnPostload() . = ..() regenerate_donator_grouping_list() From 84e84355c384f8b29b4ff5850c4786fec3644399 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 19 Nov 2019 01:07:43 -0700 Subject: [PATCH 6/6] Update code/controllers/configuration/config_entry.dm Co-Authored-By: Lin --- code/controllers/configuration/config_entry.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/controllers/configuration/config_entry.dm b/code/controllers/configuration/config_entry.dm index 329b41197a..be9f7e116b 100644 --- a/code/controllers/configuration/config_entry.dm +++ b/code/controllers/configuration/config_entry.dm @@ -233,5 +233,5 @@ config_entry_value[process_key(i)] = TRUE return length(keys)? TRUE : FALSE -/datum/config_entry/multi_keyed_flag/process_key(key) +/datum/config_entry/multi_keyed_flag/proc/process_key(key) return trim(key)