dereference lists

This commit is contained in:
Kashargul
2024-09-26 02:50:45 +02:00
parent 5070bbd9df
commit 1c5f81efd1
9 changed files with 79 additions and 34 deletions
@@ -8,18 +8,19 @@
var/static/list/forbidden_prefixes = list(";", ":", ".", "!", "*", "^", "-")
/datum/category_item/player_setup_item/general/language/load_character(list/save_data)
pref.alternate_languages = save_data["language"]
pref.alternate_languages = check_list_copy(save_data["language"])
pref.extra_languages = save_data["extra_languages"]
pref.language_prefixes = save_data["language_prefixes"]
pref.species = save_data["species"]
pref.preferred_language = save_data["preflang"]
pref.language_custom_keys = save_data["language_custom_keys"]
pref.language_custom_keys = check_list_copy(save_data["language_custom_keys"])
/datum/category_item/player_setup_item/general/language/save_character(list/save_data)
save_data["language"] = pref.alternate_languages
save_data["language"] = check_list_copy(pref.alternate_languages)
save_data["extra_languages"] = pref.extra_languages
save_data["language_prefixes"] = pref.language_prefixes
save_data["language_custom_keys"] = pref.language_custom_keys
save_data["preflang"] = pref.preferred_language
save_data["preflang"] = check_list_copy(pref.preferred_language)
/datum/category_item/player_setup_item/general/language/sanitize_character()
if(!islist(pref.alternate_languages))
@@ -113,16 +113,16 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
pref.b_eyes = save_data["eyes_blue"]
pref.b_type = save_data["b_type"]
pref.disabilities = save_data["disabilities"]
pref.organ_data = save_data["organ_data"]
pref.rlimb_data = save_data["rlimb_data"]
pref.body_markings = save_data["body_markings"]
pref.organ_data = check_list_copy(save_data["organ_data"])
pref.rlimb_data = check_list_copy(save_data["rlimb_data"])
pref.body_markings = check_list_copy(save_data["body_markings"])
pref.synth_color = save_data["synth_color"]
pref.r_synth = save_data["synth_red"]
pref.g_synth = save_data["synth_green"]
pref.b_synth = save_data["synth_blue"]
pref.synth_markings = save_data["synth_markings"]
pref.bgstate = save_data["bgstate"]
pref.body_descriptors = save_data["body_descriptors"]
pref.body_descriptors = check_list_copy(save_data["body_descriptors"])
pref.ear_style = save_data["ear_style"]
pref.r_ears = save_data["r_ears"]
pref.g_ears = save_data["g_ears"]
@@ -178,16 +178,16 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
save_data["eyes_blue"] = pref.b_eyes
save_data["b_type"] = pref.b_type
save_data["disabilities"] = pref.disabilities
save_data["organ_data"] = pref.organ_data
save_data["rlimb_data"] = pref.rlimb_data
save_data["body_markings"] = pref.body_markings
save_data["organ_data"] = check_list_copy(pref.organ_data)
save_data["rlimb_data"] = check_list_copy(pref.rlimb_data)
save_data["body_markings"] = check_list_copy(pref.body_markings)
save_data["synth_color"] = pref.synth_color
save_data["synth_red"] = pref.r_synth
save_data["synth_green"] = pref.g_synth
save_data["synth_blue"] = pref.b_synth
save_data["synth_markings"] = pref.synth_markings
save_data["bgstate"] = pref.bgstate
save_data["body_descriptors"] = pref.body_descriptors
save_data["body_descriptors"] = check_list_copy(pref.body_descriptors)
save_data["ear_style"] = pref.ear_style
save_data["r_ears"] = pref.r_ears
save_data["g_ears"] = pref.g_ears
@@ -7,8 +7,10 @@
sort_order = 4
/datum/category_item/player_setup_item/general/equipment/load_character(list/save_data)
pref.all_underwear = save_data["all_underwear"]
pref.all_underwear_metadata = save_data["all_underwear_metadata"]
pref.all_underwear = check_list_copy(save_data["all_underwear"])
pref.all_underwear_metadata = check_list_copy(save_data["all_underwear_metadata"])
for(var/i in pref.all_underwear_metadata)
pref.all_underwear_metadata[i] = check_list_copy(path2text_list(pref.all_underwear_metadata[i]))
pref.backbag = save_data["backbag"]
pref.pdachoice = save_data["pdachoice"]
pref.communicator_visibility = save_data["communicator_visibility"]
@@ -17,7 +19,10 @@
/datum/category_item/player_setup_item/general/equipment/save_character(list/save_data)
save_data["all_underwear"] = pref.all_underwear
save_data["all_underwear_metadata"] = pref.all_underwear_metadata
var/list/underwear = list()
for(var/i in pref.all_underwear_metadata)
underwear[i] = pref.all_underwear_metadata[i].Copy()
save_data["all_underwear_metadata"] = underwear
save_data["backbag"] = pref.backbag
save_data["pdachoice"] = pref.pdachoice
save_data["communicator_visibility"] = pref.communicator_visibility
@@ -46,17 +46,37 @@ var/list/gear_datums = list()
var/current_tab = "General"
/datum/category_item/player_setup_item/loadout/load_character(list/save_data)
pref.gear_list = save_data["gear_list"]
pref.gear_list = list()
var/all_gear = check_list_copy(save_data["gear_list"])
for(var/i in all_gear)
var/list/entries = check_list_copy(all_gear["[i]"])
if(!length(entries))
entries = check_list_copy(all_gear[i])
for(var/j in entries)
entries["[j]"] = check_list_copy(path2text_list(entries["[j]"]))
var/index = i
if(!isnum(i))
index = text2num(i)
pref.gear_list["[index]"] = entries
pref.gear_slot = save_data["gear_slot"]
if(pref.gear_list!=null && pref.gear_slot!=null)
pref.gear = pref.gear_list["[pref.gear_slot]"]
else
pref.gear = save_data["gear"]
pref.gear = check_list_copy(save_data["gear"])
pref.gear_slot = 1
/datum/category_item/player_setup_item/loadout/save_character(list/save_data)
pref.gear_list["[pref.gear_slot]"] = pref.gear
save_data["gear_list"] = pref.gear_list
var/list/all_gear = list()
var/worn_gear = check_list_copy(pref.gear_list)
for(var/i in worn_gear)
var/list/entries = check_list_copy(worn_gear["[i]"])
if(!length(entries))
entries = check_list_copy(worn_gear[i])
for(var/j in entries)
entries["[j]"] = check_list_copy(entries["[j]"])
all_gear["[i]"] = entries
save_data["gear_list"] = all_gear
save_data["gear_slot"] = pref.gear_slot
/datum/category_item/player_setup_item/loadout/proc/valid_gear_choices(var/max_cost)
@@ -18,7 +18,7 @@
pref.job_talon_med = save_data["job_talon_med"]
pref.job_talon_high = save_data["job_talon_high"]
//VOREStation Add End
pref.player_alt_titles = save_data["player_alt_titles"]
pref.player_alt_titles = check_list_copy(save_data["player_alt_titles"])
/datum/category_item/player_setup_item/occupation/save_character(list/save_data)
save_data["alternate_option"] = pref.alternate_option
@@ -36,7 +36,7 @@
save_data["job_talon_med"] = pref.job_talon_med
save_data["job_talon_high"] = pref.job_talon_high
//VOREStation Add End
save_data["player_alt_titles"] = pref.player_alt_titles
save_data["player_alt_titles"] = check_list_copy(pref.player_alt_titles)
/datum/category_item/player_setup_item/occupation/sanitize_character()
pref.alternate_option = sanitize_integer(pref.alternate_option, 0, 2, initial(pref.alternate_option))
@@ -3,12 +3,12 @@
sort_order = 1
/datum/category_item/player_setup_item/skills/load_character(list/save_data)
pref.skills = save_data["skills"]
pref.skills = check_list_copy(save_data["skills"])
pref.used_skillpoints = save_data["used_skillpoints"]
pref.skill_specialization = save_data["skill_specialization"]
/datum/category_item/player_setup_item/skills/save_character(list/save_data)
save_data["skills"] = pref.skills
save_data["skills"] = check_list_copy(pref.skills)
save_data["used_skillpoints"] = pref.used_skillpoints
save_data["skill_specialization"] = pref.skill_specialization
@@ -110,9 +110,9 @@ var/global/list/valid_bloodreagents = list("default","iron","copper","phoron","s
/datum/category_item/player_setup_item/vore/traits/load_character(list/save_data)
pref.custom_species = save_data["custom_species"]
pref.custom_base = save_data["custom_base"]
pref.pos_traits = text2path_list(save_data["pos_traits"])
pref.neu_traits = text2path_list(save_data["neu_traits"])
pref.neg_traits = text2path_list(save_data["neg_traits"])
pref.pos_traits = text2path_list(check_list_copy(save_data["pos_traits"]))
pref.neu_traits = text2path_list(check_list_copy(save_data["neu_traits"]))
pref.neg_traits = text2path_list(check_list_copy(save_data["neg_traits"]))
pref.blood_color = save_data["blood_color"]
pref.blood_reagents = save_data["blood_reagents"]
@@ -125,15 +125,15 @@ var/global/list/valid_bloodreagents = list("default","iron","copper","phoron","s
pref.custom_ask = save_data["custom_ask"]
pref.custom_exclaim = save_data["custom_exclaim"]
pref.custom_heat = save_data["custom_heat"]
pref.custom_cold = save_data["custom_cold"]
pref.custom_heat = check_list_copy(save_data["custom_heat"])
pref.custom_cold = check_list_copy(save_data["custom_cold"])
/datum/category_item/player_setup_item/vore/traits/save_character(list/save_data)
save_data["custom_species"] = pref.custom_species
save_data["custom_base"] = pref.custom_base
save_data["pos_traits"] = pref.pos_traits
save_data["neu_traits"] = pref.neu_traits
save_data["neg_traits"] = pref.neg_traits
save_data["pos_traits"] = check_list_copy(pref.pos_traits)
save_data["neu_traits"] = check_list_copy(pref.neu_traits)
save_data["neg_traits"] = check_list_copy(pref.neg_traits)
save_data["blood_color"] = pref.blood_color
save_data["blood_reagents"] = pref.blood_reagents
@@ -146,8 +146,8 @@ var/global/list/valid_bloodreagents = list("default","iron","copper","phoron","s
save_data["custom_ask"] = pref.custom_ask
save_data["custom_exclaim"] = pref.custom_exclaim
save_data["custom_heat"] = pref.custom_heat
save_data["custom_cold"] = pref.custom_cold
save_data["custom_heat"] = check_list_copy(pref.custom_heat)
save_data["custom_cold"] = check_list_copy(pref.custom_cold)
/datum/category_item/player_setup_item/vore/traits/sanitize_character()
if(!pref.pos_traits) pref.pos_traits = list()
@@ -21,7 +21,7 @@
pref.nif_path = save_data_file["nif_path"]
pref.nif_durability = save_data_file["nif_durability"]
pref.nif_savedata = save_data_file["nif_savedata"]
pref.nif_savedata = check_list_copy(save_data_file["nif_savedata"])
/datum/category_item/player_setup_item/vore/nif/save_character()
var/datum/json_savefile/savefile = new /datum/json_savefile(nif_savefile_path(pref.client_ckey))
@@ -29,7 +29,7 @@
save_data_file["nif_path"] = pref.nif_path
save_data_file["nif_durability"] = pref.nif_durability
save_data_file["nif_savedata"] = pref.nif_savedata
save_data_file["nif_savedata"] = check_list_copy(pref.nif_savedata)
savefile.set_entry("character[pref.default_slot]", save_data_file)
savefile.save()