Fixes a bunch of organ-related bugs

This commit is contained in:
Crazylemon64
2016-08-18 19:08:29 -07:00
parent fed1101568
commit 6aedd26beb
5 changed files with 14 additions and 10 deletions
+7 -3
View File
@@ -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
@@ -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()
@@ -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()
@@ -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]
+1 -1
View File
@@ -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)