From 401f31643d4eb63d4adac85787adf2964df8e84a Mon Sep 17 00:00:00 2001 From: KasparoVy Date: Thu, 21 Apr 2016 19:50:46 -0400 Subject: [PATCH] Attaching a prosthetic head that isn't a monitor won't cause you to go bald & Fixes disembodied prosthetic heads being bald & ... cont'd: Adds the rendering of markings on disembodied heads. --- code/modules/surgery/limb_reattach.dm | 5 ++++- code/modules/surgery/organs/organ_icon.dm | 12 ++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/code/modules/surgery/limb_reattach.dm b/code/modules/surgery/limb_reattach.dm index e9464fab9a1..3386f4b9366 100644 --- a/code/modules/surgery/limb_reattach.dm +++ b/code/modules/surgery/limb_reattach.dm @@ -97,7 +97,10 @@ E.forceMove(target) if(target.get_species() == "Machine")//as this is the only step needed for ipc put togethers if(target_zone == "head") - target.h_style = "" + var/obj/item/organ/external/head/H = target.organs_by_name["head"] + var/datum/robolimb/robohead = all_robolimbs[H.model] + if(robohead.is_monitor) //Ensures that if an IPC gets a head that's got a human hair wig attached to their body, the hair won't wipe. + target.h_style = "" E.status &= ~ORGAN_DESTROYED if(E.children) for(var/obj/item/organ/external/C in E.children) diff --git a/code/modules/surgery/organs/organ_icon.dm b/code/modules/surgery/organs/organ_icon.dm index ee0e450ae15..db6ffd81a2a 100644 --- a/code/modules/surgery/organs/organ_icon.dm +++ b/code/modules/surgery/organs/organ_icon.dm @@ -71,6 +71,14 @@ var/global/list/limb_icon_cache = list() overlays |= lip_icon mob_icon.Blend(lip_icon, ICON_OVERLAY) + if(owner.m_style) + var/datum/sprite_accessory/marking_style = marking_styles_list[owner.m_style] + if(marking_style && marking_style.species_allowed && (species.name in marking_style.species_allowed) && marking_style.marking_location == "head") + var/icon/markings_s = new/icon("icon" = marking_style.icon, "icon_state" = "[marking_style.icon_state]_s") + if(marking_style.do_colouration) + markings_s.Blend(rgb(owner.r_markings, owner.g_markings, owner.b_markings), ICON_ADD) + overlays |= markings_s + if(owner.ha_style) var/datum/sprite_accessory/head_accessory_style = head_accessory_styles_list[owner.ha_style] if(head_accessory_style && head_accessory_style.species_allowed && (species.name in head_accessory_style.species_allowed)) @@ -81,7 +89,7 @@ var/global/list/limb_icon_cache = list() if(owner.f_style) var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[owner.f_style] - if(facial_hair_style && facial_hair_style.species_allowed && (species.name in facial_hair_style.species_allowed)) + if(facial_hair_style && ((facial_hair_style.species_allowed && (species.name in facial_hair_style.species_allowed)) || (src.species.flags & ALL_RPARTS))) var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") if(species.name == "Slime People") // I am el worstos facial_s.Blend(rgb(owner.r_skin, owner.g_skin, owner.b_skin, 160), ICON_AND) @@ -91,7 +99,7 @@ var/global/list/limb_icon_cache = list() if(owner.h_style && !(owner.head && (owner.head.flags & BLOCKHEADHAIR))) var/datum/sprite_accessory/hair_style = hair_styles_list[owner.h_style] - if(hair_style && (species.name in hair_style.species_allowed)) + if(hair_style && ((species.name in hair_style.species_allowed) || (src.species.flags & ALL_RPARTS))) var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") if(species.name == "Slime People") // I am el worstos hair_s.Blend(rgb(owner.r_skin, owner.g_skin, owner.b_skin, 160), ICON_AND)