diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 5f1686e8..1b87ddc6 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -41,6 +41,7 @@ var/obj/item/device/uplink/hidden/hidden_uplink = null // All items can have an uplink hidden inside, just remember to add the triggers. var/zoomdevicename = null //name used for message when binoculars/scope is used var/zoom = 0 //1 if item is actively being used to zoom. For scoped guns and binoculars. + var/contained_sprite = 0 //1 if item_state, lefthand, righthand, and worn sprite are all in one dmi /* Species-specific sprites, concept stolen from Paradise//vg/. ex: diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index b04b3035..909ad66d 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -574,6 +574,8 @@ proc/get_damage_icon_part(damage_state, body_part) standing.icon = w_uniform.icon_override else if(w_uniform.sprite_sheets && w_uniform.sprite_sheets[species.name]) standing.icon = w_uniform.sprite_sheets[species.name] + else if(w_uniform.contained_sprite) + standing = image("icon" = w_uniform.icon, "icon_state" = "[w_uniform.icon_state]_w") else standing.icon = 'icons/mob/uniform.dmi' @@ -629,6 +631,8 @@ proc/get_damage_icon_part(damage_state, body_part) wear_id.screen_loc = ui_id //TODO if(w_uniform && w_uniform:displays_id) overlays_standing[ID_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "id") + else if(wear_id.contained_sprite) + overlays_standing[ID_LAYER] = image("icon" = wear_id.icon_state, "icon_state" = "[wear_id.icon_state]_w") else overlays_standing[ID_LAYER] = null else @@ -649,6 +653,8 @@ proc/get_damage_icon_part(damage_state, body_part) standing = image("icon" = gloves.icon_override, "icon_state" = "[t_state]") else if(gloves.sprite_sheets && gloves.sprite_sheets[species.name]) standing = image("icon" = gloves.sprite_sheets[species.name], "icon_state" = "[t_state]") + else if(gloves.contained_sprite) + standing = image("icon" = gloves.icon, "icon_state" = "[gloves.icon_state]_w") else standing = image("icon" = 'icons/mob/hands.dmi', "icon_state" = "[t_state]") @@ -679,6 +685,8 @@ proc/get_damage_icon_part(damage_state, body_part) overlays_standing[GLASSES_LAYER] = image("icon" = glasses.icon_override, "icon_state" = "[glasses.icon_state]") else if(glasses.sprite_sheets && glasses.sprite_sheets[species.name]) overlays_standing[GLASSES_LAYER]= image("icon" = glasses.sprite_sheets[species.name], "icon_state" = "[glasses.icon_state]") + else if(glasses.contained_sprite) + overlays_standing[GLASSES_LAYER] = image("icon" = glasses.icon, "icon_state" = "[glasses.icon_state]_w") else overlays_standing[GLASSES_LAYER]= image("icon" = 'icons/mob/eyes.dmi', "icon_state" = "[glasses.icon_state]") @@ -729,6 +737,8 @@ proc/get_damage_icon_part(damage_state, body_part) standing = image("icon" = shoes.icon_override, "icon_state" = "[shoes.icon_state]") else if(shoes.sprite_sheets && shoes.sprite_sheets[species.name]) standing = image("icon" = shoes.sprite_sheets[species.name], "icon_state" = "[shoes.icon_state]") + else if(shoes.contained_sprite) + standing = image("icon" = shoes.icon, "icon_state" = "[shoes.icon_state]_w") else standing = image("icon" = 'icons/mob/feet.dmi', "icon_state" = "[shoes.icon_state]") @@ -772,6 +782,8 @@ proc/get_damage_icon_part(damage_state, body_part) standing = image("icon" = head.icon_override, "icon_state" = "[head.icon_state]") else if(head.sprite_sheets && head.sprite_sheets[species.name]) standing = image("icon" = head.sprite_sheets[species.name], "icon_state" = "[head.icon_state]") + else if(head.contained_sprite) + standing = image("icon" = head.icon, "icon_state" = "[head.icon_state]_w") else standing = image("icon" = 'icons/mob/head.dmi', "icon_state" = "[head.icon_state]") @@ -801,6 +813,8 @@ proc/get_damage_icon_part(damage_state, body_part) overlays_standing[BELT_LAYER] = image("icon" = belt.icon_override, "icon_state" = "[t_state]") else if(belt.sprite_sheets && belt.sprite_sheets[species.name]) overlays_standing[BELT_LAYER] = image("icon" = belt.sprite_sheets[species.name], "icon_state" = "[t_state]") + else if(belt.contained_sprite) + overlays_standing[BELT_LAYER] = image("icon" = belt.icon, "icon_state" = "[belt.icon_state]_w") else overlays_standing[BELT_LAYER] = image("icon" = 'icons/mob/belt.dmi', "icon_state" = "[t_state]") else @@ -817,6 +831,8 @@ proc/get_damage_icon_part(damage_state, body_part) standing = image("icon" = wear_suit.icon_override, "icon_state" = "[wear_suit.icon_state]") else if(wear_suit.sprite_sheets && wear_suit.sprite_sheets[species.name]) standing = image("icon" = wear_suit.sprite_sheets[species.name], "icon_state" = "[wear_suit.icon_state]") + else if(wear_suit.contained_sprite) + standing = image("icon" = wear_suit.icon, "icon_state" = "[wear_suit.icon_state]_w") else standing = image("icon" = 'icons/mob/suit.dmi', "icon_state" = "[wear_suit.icon_state]") @@ -865,6 +881,8 @@ proc/get_damage_icon_part(damage_state, body_part) standing = image("icon" = wear_mask.icon_override, "icon_state" = "[wear_mask.icon_state]") else if(wear_mask.sprite_sheets && wear_mask.sprite_sheets[species.name]) standing = image("icon" = wear_mask.sprite_sheets[species.name], "icon_state" = "[wear_mask.icon_state]") + else if(wear_mask.contained_sprite) + standing = image("icon" = wear_mask.icon, "icon_state" = "[wear_mask.icon_state]_w") else standing = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]") @@ -889,6 +907,8 @@ proc/get_damage_icon_part(damage_state, body_part) overlays_standing[BACK_LAYER] = image("icon" = back.icon_override, "icon_state" = "[back.icon_state]") else if(back.sprite_sheets && back.sprite_sheets[species.name]) overlays_standing[BACK_LAYER] = image("icon" = back.sprite_sheets[species.name], "icon_state" = "[back.icon_state]") + else if(back.contained_sprite) + overlays_standing[BACK_LAYER] = image("icon" = back.icon, "icon_state" = "[back.icon_state]_w") else overlays_standing[BACK_LAYER] = image("icon" = 'icons/mob/back.dmi', "icon_state" = "[back.icon_state]") else @@ -935,8 +955,12 @@ proc/get_damage_icon_part(damage_state, body_part) if(r_hand.icon_override) t_state = "[t_state]_r" overlays_standing[R_HAND_LAYER] = image("icon" = r_hand.icon_override, "icon_state" = "[t_state]") + else if(r_hand.contained_sprite) + t_state = "[t_state]_r" + overlays_standing[R_HAND_LAYER] = image("icon" = r_hand.icon, "icon_state" = "[t_state]") else overlays_standing[R_HAND_LAYER] = image("icon" = 'icons/mob/items_righthand.dmi', "icon_state" = "[t_state]") + msg_scopes("[t_state]") if (handcuffed) drop_r_hand() else @@ -953,6 +977,9 @@ proc/get_damage_icon_part(damage_state, body_part) if(l_hand.icon_override) t_state = "[t_state]_l" overlays_standing[L_HAND_LAYER] = image("icon" = l_hand.icon_override, "icon_state" = "[t_state]") + else if(l_hand.contained_sprite) + t_state = "[t_state]_l" + overlays_standing[L_HAND_LAYER] = image("icon" = l_hand.icon, "icon_state" = "[t_state]") else overlays_standing[L_HAND_LAYER] = image("icon" = 'icons/mob/items_lefthand.dmi', "icon_state" = "[t_state]")