From 89e32a5e0f7b7ce35e46590131e37b21778dc7a1 Mon Sep 17 00:00:00 2001 From: Mira <42539014+MiraHell@users.noreply.github.com> Date: Tue, 4 Feb 2025 11:14:50 +0300 Subject: [PATCH] Fix appearance changes from the mirror resetting on any UpdateAppearance() call (#28125) * add APPEARANCE_UPDATE_DNA flag * kind of fix --- code/game/dna/dna2.dm | 8 ++++++-- code/game/dna/dna2_helpers.dm | 1 + code/modules/tgui/modules/appearance_changer.dm | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index f0db39b99bf..341067b016c 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -101,7 +101,7 @@ GLOBAL_LIST_EMPTY(bad_blocks) ResetUI(1) // Hair // FIXME: Species-specific defaults pls - var/obj/item/organ/external/head/H = character.get_organ("head") + var/obj/item/organ/external/head/head = character.get_organ("head") var/obj/item/organ/internal/eyes/eyes_organ = character.get_int_organ(/obj/item/organ/internal/eyes) /*// Body Accessory @@ -117,7 +117,7 @@ GLOBAL_LIST_EMPTY(bad_blocks) var/body_marks = GLOB.marking_styles_list.Find(character.m_styles["body"]) var/tail_marks = GLOB.marking_styles_list.Find(character.m_styles["tail"]) - head_traits_to_dna(character, H) + head_traits_to_dna(character, head) eye_color_to_dna(eyes_organ) SetUIValueRange(DNA_UI_SKIN_R, color2R(character.skin_colour), 255, 1) @@ -163,6 +163,10 @@ GLOBAL_LIST_EMPTY(bad_blocks) if(PLURAL) SetUITriState(DNA_UI_GENDER, DNA_GENDER_PLURAL, 1) + if(head) + head.dna.UI = character.dna.UI + if(eyes_organ) + eyes_organ.dna.UI = character.dna.UI UpdateUI() diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm index c387b34e5c3..73973a1944d 100644 --- a/code/game/dna/dna2_helpers.dm +++ b/code/game/dna/dna2_helpers.dm @@ -217,6 +217,7 @@ if((hair > 0) && (hair <= length(GLOB.hair_styles_full_list))) head_organ.h_style = GLOB.hair_styles_full_list[hair] + // dna is taken from the head, not from the mob head_organ.hair_colour = rgb(head_organ.dna.GetUIValueRange(DNA_UI_HAIR_R, 255), head_organ.dna.GetUIValueRange(DNA_UI_HAIR_G, 255), head_organ.dna.GetUIValueRange(DNA_UI_HAIR_B, 255)) head_organ.sec_hair_colour = rgb(head_organ.dna.GetUIValueRange(DNA_UI_HAIR2_R, 255), head_organ.dna.GetUIValueRange(DNA_UI_HAIR2_G, 255), head_organ.dna.GetUIValueRange(DNA_UI_HAIR2_B, 255)) diff --git a/code/modules/tgui/modules/appearance_changer.dm b/code/modules/tgui/modules/appearance_changer.dm index 975b0fd07d8..cacf106a791 100644 --- a/code/modules/tgui/modules/appearance_changer.dm +++ b/code/modules/tgui/modules/appearance_changer.dm @@ -314,7 +314,7 @@ return data /datum/ui_module/appearance_changer/proc/update_dna() - if(owner && (flags & APPEARANCE_UPDATE_DNA)) + if(owner) owner.update_dna() /datum/ui_module/appearance_changer/proc/can_change(flag)