From 6934727f2b4a0b359eb4d72d851bfc173a80e27f Mon Sep 17 00:00:00 2001 From: Cameron Lennox Date: Wed, 4 Jun 2025 08:11:21 -0400 Subject: [PATCH] Some vanity fixes (#17797) --- code/modules/client/preferences.dm | 10 ++++++++-- .../mob/living/carbon/human/species/species_getters.dm | 7 +++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index be74466a5d4..57ccd3013a7 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -505,6 +505,9 @@ var/list/preferences_datums = list() var/datum/preference/numeric/wing_alpha = GLOB.preference_entries[/datum/preference/numeric/human/wing_alpha] wing_alpha.apply_pref_to(character,read_preference(/datum/preference/numeric/human/wing_alpha)) + var/datum/preference/numeric/skin_color = GLOB.preference_entries[/datum/preference/color/human/skin_color] + skin_color.apply_pref_to(character,read_preference(/datum/preference/color/human/skin_color)) + character.set_gender(biological_gender) // Destroy/cyborgize organs and limbs. @@ -529,7 +532,7 @@ var/list/preferences_datums = list() else var/bodytype var/datum/species/selected_species = GLOB.all_species[species] - if(selected_species.selects_bodytype) + if(custom_base) bodytype = custom_base else bodytype = selected_species.get_bodytype() @@ -577,6 +580,7 @@ var/list/preferences_datums = list() character.fuzzy = fuzzy character.offset_override = offset_override character.voice_freq = voice_freq + character.size_multiplier = size_multiplier character.resize(size_multiplier, animate = FALSE, ignore_prefs = TRUE) var/list/traits_to_copy = list(/datum/trait/neutral/tall, @@ -611,13 +615,15 @@ var/list/preferences_datums = list() var/datum/species/selected_species = GLOB.all_species[species] var/bodytype_selected - if(selected_species.selects_bodytype) + if(custom_base) bodytype_selected = custom_base else bodytype_selected = selected_species.get_bodytype(character) character.dna.base_species = bodytype_selected character.species.base_species = bodytype_selected + character.species.icobase = character.species.get_icobase() + character.species.deform = character.species.get_icobase(get_deform = TRUE) character.species.vanity_base_fit = bodytype_selected if (istype(character.species, /datum/species/shapeshifter)) wrapped_species_by_ref["\ref[character]"] = bodytype_selected diff --git a/code/modules/mob/living/carbon/human/species/species_getters.dm b/code/modules/mob/living/carbon/human/species/species_getters.dm index a1ccf8206eb..03d0575307c 100644 --- a/code/modules/mob/living/carbon/human/species/species_getters.dm +++ b/code/modules/mob/living/carbon/human/species/species_getters.dm @@ -26,6 +26,13 @@ return name /datum/species/proc/get_icobase(var/mob/living/carbon/human/H, var/get_deform) + if(base_species == name) //We don't have a custom base_species? Return the normal icobase. + return (get_deform ? deform : icobase) + else + var/datum/species/S = GLOB.all_species[base_species] + if(S) //So species can have multiple iconbases. + return S.get_icobase(H, get_deform) + //fallback return (get_deform ? deform : icobase) /datum/species/proc/get_station_variant()