diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 1c4bc8cd9d..6f548363f4 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -2101,6 +2101,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) else to_chat(user,"Invalid color. Your color is not bright enough.") + //advanced color mode toggle if("color_scheme") if(features["color_scheme"] == ADVANCED_CHARACTER_COLORING) @@ -2776,7 +2777,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.dna.species.eye_type = eye_type if(chosen_limb_id && (chosen_limb_id in character.dna.species.allowed_limb_ids)) character.dna.species.mutant_bodyparts["limbs_id"] = chosen_limb_id - character.dna.species.limbs_id = chosen_limb_id //just to be safe when cloning character.dna.real_name = character.real_name character.dna.nameless = character.nameless character.dna.custom_species = character.custom_species diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 2553ce59e6..c4fe0a3f5c 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -175,6 +175,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) //Called when cloning, copies some vars that should be kept /datum/species/proc/copy_properties_from(datum/species/old_species) + mutant_bodyparts["limbs_id"] = old_species.mutant_bodyparts["limbs_id"] return //Please override this locally if you want to define when what species qualifies for what rank if human authority is enforced. diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 7d7d420128..731cda3d86 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -708,6 +708,9 @@ use_mob_overlay_icon: if FALSE, it will always use the default_icon_file even if . += "-[BP.dmg_overlay_type]" if(BP.body_markings) . += "-[BP.body_markings]" + if(length(BP.markings_color) && length(BP.markings_color[1])) + for(var/color in BP.markings_color[1]) + . += "-[color]" else . += "-no_marking" diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index 4ebc1e05b1..8c07fe765d 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -638,11 +638,12 @@ species_flags_list = H.dna.species.species_traits //body marking memes + var/advanced_color_system = (H.dna.features["color_scheme"] == ADVANCED_CHARACTER_COLORING) var/list/colorlist = list() colorlist.Cut() - colorlist += ReadRGB("[H.dna.features["mcolor"]]00") - colorlist += ReadRGB("[H.dna.features["mcolor2"]]00") - colorlist += ReadRGB("[H.dna.features["mcolor3"]]00") + colorlist += advanced_color_system ? ReadRGB("[H.dna.features["mam_body_markings_primary"]]00") : ReadRGB("[H.dna.features["mcolor"]]00") + colorlist += advanced_color_system ? ReadRGB("[H.dna.features["mam_body_markings_secondary"]]00") : ReadRGB("[H.dna.features["mcolor2"]]00") + colorlist += advanced_color_system ? ReadRGB("[H.dna.features["mam_body_markings_tertiary"]]00") : ReadRGB("[H.dna.features["mcolor3"]]00") colorlist += list(0,0,0, S.hair_alpha) for(var/index=1, index<=colorlist.len, index++) colorlist[index] = colorlist[index]/255 @@ -685,17 +686,7 @@ else body_markings = "plain" aux_marking = "plain" - var/color_scheme = H.dna.features["color_scheme"] - if(color_scheme == ADVANCED_CHARACTER_COLORING) - var/list/alt_colorlist = list() - alt_colorlist.Cut() - alt_colorlist += ReadRGB("[H.dna.features["primary_mam_body_markings"]]00") - alt_colorlist += ReadRGB("[H.dna.features["secondary_mam_body_markings"]]00") - alt_colorlist += ReadRGB("[H.dna.features["tertiary_mam_body_markings"]]00") - alt_colorlist += list(0,0,0, S.hair_alpha) - markings_color = list(alt_colorlist) - else - markings_color = list(colorlist) + markings_color = list(colorlist) else body_markings = null aux_marking = null