diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index a94a6ef1d5e..3ae44bff924 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -349,6 +349,8 @@ GLOBAL_VAR_INIT(record_id_num, 1001) preview_icon.Blend(face_s, ICON_OVERLAY) + var/icon/hands_icon = icon(preview_icon) + hands_icon.Blend(icon('icons/mob/clothing/masking_helpers.dmi', "l_hand_mask"), ICON_MULTIPLY) var/icon/clothes_s = null var/job_clothes = null @@ -366,7 +368,6 @@ GLOBAL_VAR_INIT(record_id_num, 1001) if("Blueshield") clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s") clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "swat_gl"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "blueshield"), ICON_OVERLAY) if("Magistrate") clothes_s = new /icon('icons/mob/clothing/under/suit.dmi', "really_black_suit_s") @@ -488,11 +489,9 @@ GLOBAL_VAR_INIT(record_id_num, 1001) if("Syndicate Officer") clothes_s = new /icon('icons/mob/clothing/under/syndicate.dmi', "syndicate_s") clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "swat_gl"), ICON_UNDERLAY) if("Syndicate Nuclear Operative") clothes_s = new /icon('icons/mob/clothing/under/syndicate.dmi', "syndicate_s") clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "swat_gl"), ICON_UNDERLAY) else if(H.mind && (H.mind.assigned_role in get_all_centcom_jobs())) clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s") @@ -516,6 +515,8 @@ GLOBAL_VAR_INIT(record_id_num, 1001) if(t_marking_s) temp.Blend(t_marking_s, ICON_OVERLAY) preview_icon.Blend(temp, ICON_OVERLAY) + + preview_icon.Blend(hands_icon, ICON_OVERLAY) qdel(face_s) qdel(clothes_s) diff --git a/code/modules/client/preference/character.dm b/code/modules/client/preference/character.dm index e5acae7ba86..5487efdccb4 100644 --- a/code/modules/client/preference/character.dm +++ b/code/modules/client/preference/character.dm @@ -823,9 +823,6 @@ else preview_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) - var/icon/hands_icon = icon(preview_icon) - hands_icon.Blend(icon('icons/mob/clothing/masking_helpers.dmi', "hands_mask"), ICON_MULTIPLY) - // Body accessory if(current_species && (current_species.bodyflags & HAS_BODY_ACCESSORY)) var/icon @@ -890,6 +887,8 @@ h_marking_s.Blend(m_colours["head"], ICON_ADD) preview_icon.Blend(h_marking_s, ICON_OVERLAY) + var/icon/hands_icon = icon(preview_icon) + hands_icon.Blend(icon('icons/mob/clothing/masking_helpers.dmi', "l_hand_mask"), ICON_MULTIPLY) var/icon/face_s = new/icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = "bald_s") if(!(current_species.bodyflags & NO_EYES)) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 0d4e5609193..378409c8d9b 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -280,6 +280,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) update_head_accessory() //markings update_markings() + update_hands_layer() //hair update_hair() update_fhair() @@ -412,39 +413,29 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) if(w_uniform?.body_parts_covered & HANDS) return - var/mutable_appearance/hands_appearance = new() - hands_appearance.layer = -HANDS_LAYER + var/species_name = "" + if(dna.species.name in list("Drask", "Grey", "Vox")) + species_name = "_[lowertext(dna.species.name)]" - var/obj/item/organ/external/hand/l_hand = get_limb_by_name("l_hand") - var/obj/item/organ/external/hand/right/r_hand = get_limb_by_name("r_hand") + var/icon/hands_mask = icon('icons/mob/body_accessory.dmi', "accessory_none_s") //Needs a blank icon, not actually related to markings at all - if(l_hand) - hands_appearance.overlays += l_hand.mob_icon - if(r_hand) - hands_appearance.overlays += r_hand.mob_icon + if(get_limb_by_name("l_hand")) + hands_mask.Blend(icon('icons/mob/clothing/masking_helpers.dmi', "l_hand_mask[species_name]"), ICON_OVERLAY) + if(get_limb_by_name("r_hand")) + hands_mask.Blend(icon('icons/mob/clothing/masking_helpers.dmi', "r_hand_mask[species_name]"), ICON_OVERLAY) - overlays_standing[HANDS_LAYER] = hands_appearance + var/mutable_appearance/body_layer = overlays_standing[LIMBS_LAYER][1] + var/icon/body_hands = icon(body_layer.icon) + body_hands.Blend(hands_mask, ICON_MULTIPLY) - apply_overlay(HANDS_LAYER) + var/mutable_appearance/markings_layer = overlays_standing[MARKINGS_LAYER] + var/icon/markings_hands = icon(markings_layer.icon) + markings_hands.Blend(hands_mask, ICON_MULTIPLY) -/mob/living/carbon/human/golem/update_hands_layer() - remove_overlay(HANDS_LAYER) + var/mutable_appearance/final_sprite = mutable_appearance(body_hands, layer = -HANDS_LAYER) + final_sprite.overlays += markings_hands - var/mutable_appearance/hands_appearance = new() - hands_appearance.layer = -HANDS_LAYER - - var/obj/item/organ/external/hand/l_hand = get_limb_by_name("l_hand") - var/obj/item/organ/external/hand/right/r_hand = get_limb_by_name("r_hand") - var/datum/species/golem/G = dna.species - var/icon/golem_icon = G.icobase - - if(G.golem_colour) - if(l_hand) - hands_appearance.overlays += icon(golem_icon.ColorTone(G.golem_colour), "l_hand") - if(r_hand) - hands_appearance.overlays += icon(golem_icon.ColorTone(G.golem_colour), "r_hand") - - overlays_standing[HANDS_LAYER] = hands_appearance + overlays_standing[HANDS_LAYER] = final_sprite apply_overlay(HANDS_LAYER) //FACIAL HAIR OVERLAY @@ -571,7 +562,6 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) update_inv_wear_pda() UpdateDamageIcon() force_update_limbs() - update_hands_layer() update_tail_layer() update_wing_layer() update_halo_layer() diff --git a/icons/mob/clothing/masking_helpers.dmi b/icons/mob/clothing/masking_helpers.dmi index ee098b3ba75..ca7f3988945 100644 Binary files a/icons/mob/clothing/masking_helpers.dmi and b/icons/mob/clothing/masking_helpers.dmi differ