diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm index d1eb262f25..8d4b69a2ea 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -34,9 +34,7 @@ if(head) if(pumpkin)//Pumpkinhead! head.animal_origin = 100 - head.icon = 'icons/obj/clothing/hats.dmi' - head.icon_state = "hardhat1_pumpkin_j" - head.custom_head = TRUE + head.custom_head = image('icons/obj/clothing/hats.dmi', "hardhat1_pumpkin_j") head.drop_limb() if(!QDELETED(head)) //drop_limb() deletes the limb if it's no drop location and dummy humans used for rendering icons are located in nullspace. Do the math. head.throwforce = 25 @@ -138,10 +136,9 @@ if(source.client.eye == src && ((A in view(source.client.view, src)) || (isturf(A) && source.sight & SEE_TURFS) || (ismob(A) && source.sight & SEE_MOBS) || (isobj(A) && source.sight & SEE_OBJS))) return COMPONENT_ALLOW_EXAMINE -/obj/item/dullahan_relay/proc/include_owner(list/processing_list, list/hearers) +/obj/item/dullahan_relay/proc/include_owner(datum/source, list/processing_list, list/hearers) if(!QDELETED(owner)) - var/list/new_hearers = hearers //It throws errors on compile about invalid expressions otherwise. And so far components only allow binary return values. - new_hearers.Add(owner) + hearers += owner /obj/item/dullahan_relay/process() if(!istype(loc, /obj/item/bodypart/head) || QDELETED(owner)) diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index 3e6566e353..f74fc6e968 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -33,7 +33,7 @@ var/lip_style = null var/lip_color = "white" //If the head is a special sprite - var/custom_head + var/image/custom_head /obj/item/bodypart/head/can_dismember(obj/item/I) if(!((owner.stat == DEAD) || owner.InFullCritical())) @@ -120,8 +120,6 @@ ..() /obj/item/bodypart/head/update_icon_dropped() - if(custom_head) - return var/list/standing = get_limb_icon(1) if(!standing.len) icon_state = initial(icon_state)//no overlays found, we default back to initial icon. @@ -132,6 +130,12 @@ add_overlay(standing) /obj/item/bodypart/head/get_limb_icon(dropped) + if(custom_head) + if(!dropped) + custom_head.layer = BODYPARTS_LAYER + else + custom_head.layer = initial(custom_head.layer) + return list(custom_head) cut_overlays() . = ..() if(dropped) //certain overlays only appear when the limb is being detached from its owner.