diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index d2bcbfd5a68..07bfca799f6 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -546,7 +546,12 @@ proc/get_damage_icon_part(damage_state, body_part) if(!t_color) t_color = icon_state var/image/standing = image("icon_state" = "[t_color]_s") - standing.icon = ((w_uniform.icon_override) ? w_uniform.icon_override : (species.sprite_sheets["uniform"] ? species.sprite_sheets["uniform"] : 'icons/mob/uniform.dmi')) + if(w_uniform.icon_override) + 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 + standing.icon = 'icons/mob/uniform.dmi' if(w_uniform.blood_DNA) var/image/bloodsies = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "uniformblood") @@ -594,7 +599,15 @@ proc/get_damage_icon_part(damage_state, body_part) if(gloves) var/t_state = gloves.item_state if(!t_state) t_state = gloves.icon_state - var/image/standing = image("icon" = ((gloves.icon_override) ? gloves.icon_override : (species.sprite_sheets["gloves"] ? species.sprite_sheets["gloves"] : 'icons/mob/hands.dmi')), "icon_state" = "[t_state]") + + var/image/standing + if(gloves.icon_override) + 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 + standing = image("icon" = 'icons/mob/hands.dmi', "icon_state" = "[t_state]") + if(gloves.blood_DNA) var/image/bloodsies = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "bloodyhands") bloodsies.color = gloves.blood_color @@ -613,7 +626,14 @@ proc/get_damage_icon_part(damage_state, body_part) /mob/living/carbon/human/update_inv_glasses(var/update_icons=1) if(glasses) - overlays_standing[GLASSES_LAYER] = image("icon" = ((glasses.icon_override) ? glasses.icon_override : (species.sprite_sheets["eyes"] ? species.sprite_sheets["eyes"] : 'icons/mob/eyes.dmi')), "icon_state" = "[glasses.icon_state]") + + if(glasses.icon_override) + 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 + overlays_standing[GLASSES_LAYER]= image("icon" = 'icons/mob/eyes.dmi', "icon_state" = "[glasses.icon_state]") + else overlays_standing[GLASSES_LAYER] = null if(update_icons) update_icons() @@ -621,20 +641,44 @@ proc/get_damage_icon_part(damage_state, body_part) /mob/living/carbon/human/update_inv_ears(var/update_icons=1) if(l_ear || r_ear) if(l_ear) + var/t_type = l_ear.icon_state - if(l_ear.icon_override || species.sprite_sheets["ears"]) t_type = "[t_type]_l" - overlays_standing[EARS_LAYER] = image("icon" = ((l_ear.icon_override) ? l_ear.icon_override : (species.sprite_sheets["ears"] ? species.sprite_sheets["ears"] : 'icons/mob/ears.dmi')), "icon_state" = "[t_type]") + if(l_ear.icon_override) + t_type = "[t_type]_l" + overlays_standing[EARS_LAYER] = image("icon" = l_ear.icon_override, "icon_state" = "[t_type]") + else if(l_ear.sprite_sheets && l_ear.sprite_sheets[species.name]) + t_type = "[t_type]_l" + overlays_standing[EARS_LAYER] = image("icon" = l_ear.sprite_sheets[species.name], "icon_state" = "[t_type]") + else + overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[t_type]") + if(r_ear) + var/t_type = r_ear.icon_state - if(r_ear.icon_override || species.sprite_sheets["ears"]) t_type = "[t_type]_r" - overlays_standing[EARS_LAYER] = image("icon" = ((r_ear.icon_override) ? r_ear.icon_override : (species.sprite_sheets["ears"] ? species.sprite_sheets["ears"] : 'icons/mob/ears.dmi')), "icon_state" = "t_type]") + if(r_ear.icon_override) + t_type = "[t_type]_r" + overlays_standing[EARS_LAYER] = image("icon" = r_ear.icon_override, "icon_state" = "[t_type]") + else if(r_ear.sprite_sheets && r_ear.sprite_sheets[species.name]) + t_type = "[t_type]_r" + overlays_standing[EARS_LAYER] = image("icon" = r_ear.sprite_sheets[species.name], "icon_state" = "[t_type]") + else + overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[t_type]") + else overlays_standing[EARS_LAYER] = null if(update_icons) update_icons() /mob/living/carbon/human/update_inv_shoes(var/update_icons=1) if(shoes) - var/image/standing = image("icon" = ((shoes.icon_override) ? shoes.icon_override : (species.sprite_sheets["feet"] ? species.sprite_sheets["feet"] : 'icons/mob/feet.dmi')), "icon_state" = "[shoes.icon_state]") + + var/image/standing + if(shoes.icon_override) + 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 + standing = image("icon" = 'icons/mob/feet.dmi', "icon_state" = "[shoes.icon_state]") + if(shoes.blood_DNA) var/image/bloodsies = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "shoeblood") bloodsies.color = shoes.blood_color @@ -665,14 +709,22 @@ proc/get_damage_icon_part(damage_state, body_part) head.screen_loc = ui_head //TODO var/image/standing if(istype(head,/obj/item/clothing/head/kitty)) - standing = image("icon" = head:mob) + standing = image("icon" = head:mob) else - standing = image("icon" = ((head.icon_override) ? head.icon_override : (species.sprite_sheets["head"] ? species.sprite_sheets["head"] : 'icons/mob/head.dmi')), "icon_state" = "[head.icon_state]") + if(head.icon_override) + 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 + standing = image("icon" = 'icons/mob/head.dmi', "icon_state" = "[head.icon_state]") + if(head.blood_DNA) var/image/bloodsies = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "helmetblood") bloodsies.color = head.blood_color standing.overlays += bloodsies - overlays_standing[HEAD_LAYER] = standing + + overlays_standing[HEAD_LAYER] = standing + else overlays_standing[HEAD_LAYER] = null if(update_icons) update_icons() @@ -682,16 +734,29 @@ proc/get_damage_icon_part(damage_state, body_part) belt.screen_loc = ui_belt //TODO var/t_state = belt.item_state if(!t_state) t_state = belt.icon_state - overlays_standing[BELT_LAYER] = image("icon" = ((belt.icon_override) ? belt.icon_override : (species.sprite_sheets["belt"] ? species.sprite_sheets["belt"] : 'icons/mob/belt.dmi')), "icon_state" = "[t_state]") + + if(belt.icon_override) + 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 + overlays_standing[BELT_LAYER] = image("icon" = 'icons/mob/belt.dmi', "icon_state" = "[t_state]") else - overlays_standing[BELT_LAYER] = null + overlays_standing[BELT_LAYER] = null if(update_icons) update_icons() /mob/living/carbon/human/update_inv_wear_suit(var/update_icons=1) if( wear_suit && istype(wear_suit, /obj/item/clothing/suit) ) //TODO check this wear_suit.screen_loc = ui_oclothing //TODO - var/image/standing = image("icon" = ((wear_suit.icon_override) ? wear_suit.icon_override : (species.sprite_sheets["suit"] ? species.sprite_sheets["suit"] : 'icons/mob/suit.dmi')), "icon_state" = "[wear_suit.icon_state]") + + var/image/standing + if(wear_suit.icon_override) + 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 + standing = image("icon" = 'icons/mob/suit.dmi', "icon_state" = "[wear_suit.icon_state]") if( istype(wear_suit, /obj/item/clothing/suit/straight_jacket) ) drop_from_inventory(handcuffed) @@ -726,7 +791,15 @@ proc/get_damage_icon_part(damage_state, body_part) /mob/living/carbon/human/update_inv_wear_mask(var/update_icons=1) if( wear_mask && ( istype(wear_mask, /obj/item/clothing/mask) || istype(wear_mask, /obj/item/clothing/tie) ) ) wear_mask.screen_loc = ui_mask //TODO - var/image/standing = image("icon" = ((wear_mask.icon_override) ? wear_mask.icon_override : (species.sprite_sheets["mask"] ? species.sprite_sheets["mask"] : 'icons/mob/mask.dmi')), "icon_state" = "[wear_mask.icon_state]") + + var/image/standing + if(wear_mask.icon_override) + 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 + standing = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]") + if( !istype(wear_mask, /obj/item/clothing/mask/cigarette) && wear_mask.blood_DNA ) var/image/bloodsies = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood") bloodsies.color = wear_mask.blood_color @@ -740,7 +813,12 @@ proc/get_damage_icon_part(damage_state, body_part) /mob/living/carbon/human/update_inv_back(var/update_icons=1) if(back) back.screen_loc = ui_back //TODO - overlays_standing[BACK_LAYER] = image("icon" = ((back.icon_override) ? back.icon_override : (species.sprite_sheets["back"] ? species.sprite_sheets["back"] : 'icons/mob/back.dmi')), "icon_state" = "[back.icon_state]") + if(back.icon_override) + 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 + overlays_standing[BACK_LAYER] = image("icon" = 'icons/mob/back.dmi', "icon_state" = "[back.icon_state]") else overlays_standing[BACK_LAYER] = null if(update_icons) update_icons() @@ -781,8 +859,16 @@ proc/get_damage_icon_part(damage_state, body_part) r_hand.screen_loc = ui_rhand //TODO var/t_state = r_hand.item_state if(!t_state) t_state = r_hand.icon_state - if(r_hand.icon_override || species.sprite_sheets["held"]) t_state = "[t_state]_r" - overlays_standing[R_HAND_LAYER] = image("icon" = ((r_hand.icon_override) ? r_hand.icon_override : (species.sprite_sheets["held"] ? species.sprite_sheets["held"] : 'icons/mob/items_righthand.dmi')), "icon_state" = "[t_state]") + + 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.sprite_sheets && r_hand.sprite_sheets[species.name]) + t_state = "[t_state]_r" + overlays_standing[R_HAND_LAYER] = image("icon" = r_hand.sprite_sheets[species.name], "icon_state" = "[t_state]") + else + overlays_standing[R_HAND_LAYER] = image("icon" = 'icons/mob/items_righthand.dmi', "icon_state" = "[t_state]") + if (handcuffed) drop_r_hand() else overlays_standing[R_HAND_LAYER] = null @@ -794,8 +880,16 @@ proc/get_damage_icon_part(damage_state, body_part) l_hand.screen_loc = ui_lhand //TODO var/t_state = l_hand.item_state if(!t_state) t_state = l_hand.icon_state - if(l_hand.icon_override || species.sprite_sheets["held"]) t_state = "[t_state]_l" - overlays_standing[L_HAND_LAYER] = image("icon" = ((l_hand.icon_override) ? l_hand.icon_override : (species.sprite_sheets["held"] ? species.sprite_sheets["held"] : 'icons/mob/items_lefthand.dmi')), "icon_state" = "[t_state]") + + 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.sprite_sheets && l_hand.sprite_sheets[species.name]) + t_state = "[t_state]_l" + overlays_standing[L_HAND_LAYER] = image("icon" = l_hand.sprite_sheets[species.name], "icon_state" = "[t_state]") + else + overlays_standing[L_HAND_LAYER] = image("icon" = 'icons/mob/items_lefthand.dmi', "icon_state" = "[t_state]") + if (handcuffed) drop_l_hand() else overlays_standing[L_HAND_LAYER] = null diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index 096631f2dd1..bef9282daac 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -49,26 +49,6 @@ var/race_key = 0 var/icon/icon_template - /* Species-specific sprites, concept stolen from Paradise//vg/. - ex: - sprite_sheets = list( - "held" = 'icons/mob/path', - "uniform" = 'icons/mob/path', - "suit" = 'icons/mob/path', - "belt" = 'icons/mob/path' - "head" = 'icons/mob/path', - "back" = 'icons/mob/path', - "mask" = 'icons/mob/path', - "ears" = 'icons/mob/path', - "eyes" = 'icons/mob/path', - "feet" = 'icons/mob/path', - "gloves" = 'icons/mob/path' - ) - If index term exists and icon_override is not set, this sprite sheet will be used. - */ - - var/list/sprite_sheets = list() - /datum/species/proc/create_organs(var/mob/living/carbon/human/H) //Handles creation of mob organs. //This is a basic humanoid limb setup. H.organs = list() @@ -210,14 +190,6 @@ blood_color = "#2299FC" flesh_color = "#808D11" - sprite_sheets = list( - "suit" = 'icons/mob/species/vox/suit.dmi', - "head" = 'icons/mob/species/vox/head.dmi', - "mask" = 'icons/mob/species/vox/mask.dmi', - "feet" = 'icons/mob/species/vox/feet.dmi', - "gloves" = 'icons/mob/species/vox/gloves.dmi' - ) - /datum/species/vox/handle_post_spawn(var/mob/living/carbon/human/H) H.verbs += /mob/living/carbon/human/proc/leap @@ -261,14 +233,6 @@ tail = "armalis_tail" icon_template = 'icons/mob/human_races/r_armalis.dmi' - sprite_sheets = list( - "suit" = 'icons/mob/species/armalis/suit.dmi', - "gloves" = 'icons/mob/species/armalis/gloves.dmi', - "feet" = 'icons/mob/species/armalis/feet.dmi', - "head" = 'icons/mob/species/armalis/head.dmi', - "held" = 'icons/mob/species/armalis/held.dmi' - ) - /datum/species/vox/create_organs(var/mob/living/carbon/human/H) ..() //create organs first.