Merge branch 'master' into upstream-merge-10219

This commit is contained in:
Nadyr
2021-04-30 02:05:30 -04:00
committed by GitHub
40 changed files with 314 additions and 225 deletions
@@ -23,8 +23,18 @@
if(!islist(pref.alternate_languages)) pref.alternate_languages = list()
if(pref.species)
var/datum/species/S = GLOB.all_species[pref.species]
if(S && pref.alternate_languages.len > pref.numlanguage()) //CHOMPEdit
if(!istype(S))
return
if(pref.alternate_languages.len > pref.numlanguage()) //CHOMPEdit
pref.alternate_languages.len = pref.numlanguage() // Truncate to allowed length CHOMPEdit
// Sanitize illegal languages
for(var/language in pref.alternate_languages)
var/datum/language/L = GLOB.all_languages[language]
if((L.flags & RESTRICTED) || (!(language in S.secondary_langs) && !is_lang_whitelisted(pref.client, L)))
pref.alternate_languages -= language
if(isnull(pref.language_prefixes) || !pref.language_prefixes.len)
pref.language_prefixes = config.language_prefixes.Copy()
for(var/prefix in pref.language_prefixes)
@@ -244,21 +244,12 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
pref.r_wing3 = sanitize_integer(pref.r_wing3, 0, 255, initial(pref.r_wing3))
pref.g_wing3 = sanitize_integer(pref.g_wing3, 0, 255, initial(pref.g_wing3))
pref.b_wing3 = sanitize_integer(pref.b_wing3, 0, 255, initial(pref.b_wing3))
if(pref.ear_style)
pref.ear_style = sanitize_inlist(pref.ear_style, ear_styles_list, initial(pref.ear_style))
var/datum/sprite_accessory/temp_ear_style = ear_styles_list[pref.ear_style]
if(temp_ear_style.apply_restrictions && (!(pref.species in temp_ear_style.species_allowed)))
pref.ear_style = initial(pref.ear_style)
if(pref.tail_style)
pref.tail_style = sanitize_inlist(pref.tail_style, tail_styles_list, initial(pref.tail_style))
var/datum/sprite_accessory/temp_tail_style = tail_styles_list[pref.tail_style]
if(temp_tail_style.apply_restrictions && (!(pref.species in temp_tail_style.species_allowed)))
pref.tail_style = initial(pref.tail_style)
if(pref.wing_style)
pref.wing_style = sanitize_inlist(pref.wing_style, wing_styles_list, initial(pref.wing_style))
var/datum/sprite_accessory/temp_wing_style = wing_styles_list[pref.wing_style]
if(temp_wing_style.apply_restrictions && (!(pref.species in temp_wing_style.species_allowed)))
pref.wing_style = initial(pref.wing_style)
if(!(pref.ear_style in get_ear_styles()))
pref.ear_style = initial(pref.ear_style)
if(!(pref.wing_style in get_wing_styles()))
pref.wing_style = initial(pref.wing_style)
if(!(pref.tail_style in get_tail_styles()))
pref.tail_style = initial(pref.tail_style)
// Moved from /datum/preferences/proc/copy_to()
/datum/category_item/player_setup_item/general/body/copy_to_mob(var/mob/living/carbon/human/character)
@@ -705,7 +696,15 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
reset_limbs() // Safety for species with incompatible manufacturers; easier than trying to do it case by case.
pref.body_markings.Cut() // Basically same as above.
// Sanitize ear/wing/tail styles
if(!(pref.ear_style in get_ear_styles()))
pref.ear_style = initial(pref.ear_style)
if(!(pref.wing_style in get_wing_styles()))
pref.wing_style = initial(pref.wing_style)
if(!(pref.tail_style in get_tail_styles()))
pref.tail_style = initial(pref.tail_style)
var/min_age = get_min_age()
var/max_age = get_max_age()
pref.age = max(min(pref.age, max_age), min_age)
@@ -1172,11 +1171,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
else if(href_list["ear_style"])
// Construct the list of names allowed for this user.
var/list/pretty_ear_styles = list("Normal" = null)
for(var/path in ear_styles_list)
var/datum/sprite_accessory/ears/instance = ear_styles_list[path]
if(((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)) || check_rights(R_ADMIN | R_EVENT | R_FUN, 0, user)) //VOREStation Edit
pretty_ear_styles[instance.name] = path
var/list/pretty_ear_styles = get_ear_styles()
// Present choice to user
var/new_ear_style = input(user, "Pick ears", "Character Preference", pref.ear_style) as null|anything in pretty_ear_styles
@@ -1214,11 +1209,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
else if(href_list["tail_style"])
// Construct the list of names allowed for this user.
var/list/pretty_tail_styles = list("Normal" = null)
for(var/path in tail_styles_list)
var/datum/sprite_accessory/tail/instance = tail_styles_list[path]
if(((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)) || check_rights(R_ADMIN | R_EVENT | R_FUN, 0, user)) //VOREStation Edit
pretty_tail_styles[instance.name] = path
var/list/pretty_tail_styles = get_tail_styles()
// Present choice to user
var/new_tail_style = input(user, "Pick tails", "Character Preference", pref.tail_style) as null|anything in pretty_tail_styles
@@ -1256,11 +1247,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
else if(href_list["wing_style"])
// Construct the list of names allowed for this user.
var/list/pretty_wing_styles = list("Normal" = null)
for(var/path in wing_styles_list)
var/datum/sprite_accessory/wing/instance = wing_styles_list[path]
if(((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)) || check_rights(R_ADMIN | R_EVENT | R_FUN, 0, user)) //VOREStation Edit
pretty_wing_styles[instance.name] = path
var/list/pretty_wing_styles = get_wing_styles()
// Present choice to user
var/new_wing_style = input(user, "Pick wings", "Character Preference", pref.wing_style) as null|anything in pretty_wing_styles
@@ -1390,3 +1377,26 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
user << browse(dat, "window=species;size=700x400")
/datum/category_item/player_setup_item/general/body/proc/get_tail_styles()
var/list/pretty_tail_styles = list("Normal" = null)
for(var/path in tail_styles_list)
var/datum/sprite_accessory/tail/instance = tail_styles_list[path]
if(((!instance.ckeys_allowed) || (pref.client.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)) || check_rights(R_ADMIN | R_EVENT | R_FUN, 0, pref.client)) //VOREStation Edit
pretty_tail_styles[instance.name] = path
return pretty_tail_styles
/datum/category_item/player_setup_item/general/body/proc/get_ear_styles()
var/list/pretty_ear_styles = list("Normal" = null)
for(var/path in ear_styles_list)
var/datum/sprite_accessory/ears/instance = ear_styles_list[path]
if(((!instance.ckeys_allowed) || (pref.client.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)) || check_rights(R_ADMIN | R_EVENT | R_FUN, 0, pref.client)) //VOREStation Edit
pretty_ear_styles[instance.name] = path
return pretty_ear_styles
/datum/category_item/player_setup_item/general/body/proc/get_wing_styles()
var/list/pretty_wing_styles = list("Normal" = null)
for(var/path in wing_styles_list)
var/datum/sprite_accessory/wing/instance = wing_styles_list[path]
if(((!instance.ckeys_allowed) || (pref.client.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)) || check_rights(R_ADMIN | R_EVENT | R_FUN, 0, pref.client)) //VOREStation Edit
pretty_wing_styles[instance.name] = path
return pretty_wing_styles
@@ -66,21 +66,12 @@ var/list/gear_datums = list()
for(var/gear_name in gear_datums)
var/datum/gear/G = gear_datums[gear_name]
<<<<<<< HEAD
if(G.whitelisted && !is_alien_whitelisted(preference_mob, GLOB.all_species[G.whitelisted]))
continue
||||||| parent of 7ee3781614... Merge pull request #10219 from VOREStation/upstream-merge-8055
//VOREStation Removal Start - No need for species-based whitelists for species clothes
//if(G.whitelisted && G.whitelisted != pref.species)
// continue
//VOREStation Removal End
=======
if(G.whitelisted && config.loadout_whitelist != LOADOUT_WHITELIST_OFF)
if(config.loadout_whitelist == LOADOUT_WHITELIST_STRICT && G.whitelisted != pref.species)
continue
if(config.loadout_whitelist == LOADOUT_WHITELIST_LAX && !is_alien_whitelisted(preference_mob(), GLOB.all_species[G.whitelisted]))
continue
>>>>>>> 7ee3781614... Merge pull request #10219 from VOREStation/upstream-merge-8055
if(max_cost && G.cost > max_cost)
continue
//VOREStation Edit Start
@@ -571,6 +571,12 @@
ckeywhitelist = list("luminescentring")
character_name = list("Briana Moore")
/datum/gear/fluff/entchtut_medal
path = /obj/item/clothing/accessory/medal/conduct
display_name = "Entchtut's Conduct Medal"
ckeywhitelist = list("littlebigkid2000")
character_name = list("Entchtut Cenein")
// M CKEYS
/datum/gear/fluff/phi_box
path = /obj/item/weapon/storage/box/fluff/phi
@@ -739,6 +745,18 @@
character_name = list("Clara Mali")
cost = 1
/datum/gear/fluff/luna_sci_medal
path = /obj/item/clothing/accessory/medal/nobel_science
display_name = "LUNA's Nobel Science Award"
ckeywhitelist = list("residentcody")
character_name = list("LUNA")
/datum/gear/fluff/luna_conduct_medal
path = /obj/item/clothing/accessory/medal/conduct
display_name = "LUNA's Distinguished Conduct Medal"
ckeywhitelist = list("residentcody")
character_name = list("LUNA")
/datum/gear/fluff/nikki_dorky_outfit
path = /obj/item/weapon/storage/box/fluff
display_name = "Nikki's Witchy Outfit"
@@ -129,6 +129,7 @@
for(var/datum/category_item/player_setup_item/PI in items)
PI.load_character(S)
/datum/category_group/player_setup_category/proc/save_character(var/savefile/S)
// Sanitize all data, then save it
for(var/datum/category_item/player_setup_item/PI in items)