diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm index 3aecc2fb918..aca9e292ae4 100644 --- a/code/game/dna/dna2_helpers.dm +++ b/code/game/dna/dna2_helpers.dm @@ -205,11 +205,15 @@ // This proc gives the DNA info for eye color to the given eyes /datum/dna/proc/write_eyes_attributes(obj/item/organ/internal/eyes/eyes_organ) + var/red = GetUIValueRange(DNA_UI_EYES_R, 255) + var/green = GetUIValueRange(DNA_UI_EYES_G, 255) + var/blue = GetUIValueRange(DNA_UI_EYES_B, 255) eyes_organ.eye_colour = list( - GetUIValueRange(DNA_UI_EYES_R, 255), - GetUIValueRange(DNA_UI_EYES_G, 255), - GetUIValueRange(DNA_UI_EYES_B, 255) + red, + green, + blue ) + log_debug("[red],[green],[blue]") /* TRAIT CHANGING PROCS diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index b2521e02b0d..635169bf89b 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -1850,8 +1850,6 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts character.age = age character.b_type = b_type - character.change_eye_color(r_eyes, g_eyes, b_eyes) - //Head-specific var/obj/item/organ/external/head/H = character.get_organ("head") H.r_hair = r_hair @@ -1971,6 +1969,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts message_admins("[key_name_admin(character)] has spawned with their gender as plural or neuter. Please notify coders.") character.change_gender(MALE) + character.change_eye_color(r_eyes, g_eyes, b_eyes) + character.dna.ready_dna(character, flatten_SE = 0) character.sync_organ_dna(assimilate=1) character.UpdateAppearance() diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index c4fb4b89dac..986b57cf2e2 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -177,6 +177,7 @@ var/eyes_red = eyes_organ.eye_colour[1] var/eyes_green = eyes_organ.eye_colour[2] var/eyes_blue = eyes_organ.eye_colour[3] + log_debug("change_eye_color called with ([red],[green],[blue]), Eyes currently ([eyes_red],[eyes_green],[eyes_blue])") if(red == eyes_red && green == eyes_green && blue == eyes_blue) return @@ -184,6 +185,7 @@ eyes_organ.eye_colour[2] = green eyes_organ.eye_colour[3] = blue dna.eye_color_to_dna(eyes_organ) + eyes_organ.set_dna(dna) if(update_dna) update_dna() diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index bdb64ba0a98..8982d1a11fd 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -192,10 +192,8 @@ for(var/index in has_organ) var/organ = has_organ[index] - H.internal_organs |= new organ(H) - - for(var/obj/item/organ/internal/I in H.internal_organs) - I.insert(H) + // organ new code calls `insert` on its own + new organ(H) for(var/name in H.organs_by_name) H.organs |= H.organs_by_name[name] diff --git a/code/modules/surgery/limb_reattach.dm b/code/modules/surgery/limb_reattach.dm index 873506338a7..a0dcd29525f 100644 --- a/code/modules/surgery/limb_reattach.dm +++ b/code/modules/surgery/limb_reattach.dm @@ -157,6 +157,7 @@ // Fixes fabricator IPC heads if(!(E.dna) && E.robotic == 2 && target.dna) E.set_dna(target.dna) + ..() if(E.limb_name == "head") var/obj/item/organ/external/head/H = target.get_organ("head") var/datum/robolimb/robohead = all_robolimbs[H.model] @@ -164,7 +165,6 @@ H.h_style = "" H.f_style = "" target.m_style = "" - ..() E.status &= ~ORGAN_DESTROYED if(E.children) for(var/obj/item/organ/external/C in E.children)