diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm index 3aecc2fb918..a8933e4f37d 100644 --- a/code/game/dna/dna2_helpers.dm +++ b/code/game/dna/dna2_helpers.dm @@ -205,10 +205,13 @@ // 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 ) /* 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..7802cfd53c6 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -184,6 +184,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 702212440cd..33aa58b94d4 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -193,10 +193,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)