Fix some bugs with prefs

This commit is contained in:
ShadowLarkens
2024-09-08 00:28:33 -07:00
parent e9ee57df18
commit b71dc95f04
3 changed files with 24 additions and 7 deletions
@@ -506,11 +506,17 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
++ind
if(ind > 1)
. += ", "
var/datum/robolimb/R
if(pref.rlimb_data[name] && all_robolimbs[pref.rlimb_data[name]])
R = all_robolimbs[pref.rlimb_data[name]]
var/datum/robolimb/R = basic_robolimb
var/key = pref.rlimb_data[name]
if(!istext(key))
log_debug("Bad rlimb_data for [key_name(pref.client)], [name] was set to [key]")
to_chat(usr, span_warning("Error loading robot limb data for `[name]`, clearing pref."))
pref.rlimb_data -= name
else
R = basic_robolimb
R = LAZYACCESS(all_robolimbs, key)
if(!istype(R))
R = basic_robolimb
. += "\t[R.company] [organ_name] prosthesis"
else if(status == "amputated")
++ind
@@ -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 = save_data["pos_traits"]
pref.neu_traits = save_data["neu_traits"]
pref.neg_traits = save_data["neg_traits"]
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.blood_color = save_data["blood_color"]
pref.blood_reagents = save_data["blood_reagents"]
@@ -186,13 +186,16 @@ var/global/list/valid_bloodreagents = list("default","iron","copper","phoron","s
//Neutral traits
for(var/datum/trait/path as anything in pref.neu_traits)
if(!(path in neutral_traits))
to_world_log("removing [path] for not being in neutral_traits")
pref.neu_traits -= path
continue
if(!(pref.species == SPECIES_CUSTOM) && !(path in everyone_traits_neutral))
to_world_log("removing [path] for not being a custom species")
pref.neu_traits -= path
continue
var/take_flags = initial(path.can_take)
if((pref.dirty_synth && !(take_flags & SYNTHETICS)) || (pref.gross_meatbag && !(take_flags & ORGANICS)))
to_world_log("removing [path] for being a dirty synth")
pref.neu_traits -= path
//Negative traits
for(var/datum/trait/path as anything in pref.neg_traits)