diff --git a/code/modules/mob/living/carbon/human/human_powers_vr.dm b/code/modules/mob/living/carbon/human/human_powers_vr.dm index e8ba13c437..72eda2e609 100644 --- a/code/modules/mob/living/carbon/human/human_powers_vr.dm +++ b/code/modules/mob/living/carbon/human/human_powers_vr.dm @@ -22,7 +22,7 @@ if(stat) to_chat(src, "You must be awake and standing to perform this action!") return - var/obj/item/organ/external/head/vr/H = organs_by_name[BP_HEAD] + var/obj/item/organ/external/head/H = organs_by_name[BP_HEAD] if(!H) to_chat(src, "You don't seem to have a head!") return diff --git a/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm b/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm index 625f79a3da..c175412f3b 100644 --- a/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm +++ b/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm @@ -90,7 +90,7 @@ has_limbs = list( BP_TORSO = list("path" = /obj/item/organ/external/chest), BP_GROIN = list("path" = /obj/item/organ/external/groin), - BP_HEAD = list("path" = /obj/item/organ/external/head/vr/shadekin), + BP_HEAD = list("path" = /obj/item/organ/external/head/shadekin), BP_L_ARM = list("path" = /obj/item/organ/external/arm), BP_R_ARM = list("path" = /obj/item/organ/external/arm/right), BP_L_LEG = list("path" = /obj/item/organ/external/leg), diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm index 707368c88a..801fde1afa 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm @@ -487,7 +487,7 @@ has_limbs = list( BP_TORSO = list("path" = /obj/item/organ/external/chest), BP_GROIN = list("path" = /obj/item/organ/external/groin), - BP_HEAD = list("path" = /obj/item/organ/external/head/vr/werebeast), + BP_HEAD = list("path" = /obj/item/organ/external/head/werebeast), BP_L_ARM = list("path" = /obj/item/organ/external/arm), BP_R_ARM = list("path" = /obj/item/organ/external/arm/right), BP_L_LEG = list("path" = /obj/item/organ/external/leg), diff --git a/code/modules/mob/living/carbon/human/species/station/station_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_vr.dm index dc3a5ed74d..d28019f63f 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_vr.dm @@ -51,7 +51,7 @@ has_limbs = list( BP_TORSO = list("path" = /obj/item/organ/external/chest), BP_GROIN = list("path" = /obj/item/organ/external/groin), - BP_HEAD = list("path" = /obj/item/organ/external/head/vr/sergal), + BP_HEAD = list("path" = /obj/item/organ/external/head/sergal), BP_L_ARM = list("path" = /obj/item/organ/external/arm), BP_R_ARM = list("path" = /obj/item/organ/external/arm/right), BP_L_LEG = list("path" = /obj/item/organ/external/leg), @@ -486,7 +486,7 @@ datum/species/harpy has_limbs = list( BP_TORSO = list("path" = /obj/item/organ/external/chest/crewkin), BP_GROIN = list("path" = /obj/item/organ/external/groin/crewkin), - BP_HEAD = list("path" = /obj/item/organ/external/head/vr/crewkin), + BP_HEAD = list("path" = /obj/item/organ/external/head/crewkin), BP_L_ARM = list("path" = /obj/item/organ/external/arm/crewkin), BP_R_ARM = list("path" = /obj/item/organ/external/arm/right/crewkin), BP_L_LEG = list("path" = /obj/item/organ/external/leg/crewkin), diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index f876ebc24d..69c10d6152 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -531,7 +531,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() if(!head_organ.eye_icon) return - var/icon/eyes_icon = new/icon(head_organ.eye_icon_location, head_organ.eye_icon) + var/icon/eyes_icon = new/icon(head_organ.eye_icon_location, head_organ.eye_icon) //VOREStation Edit if(eyes) eyes_icon.Blend(rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3]), ICON_ADD) else diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index 6239577b8d..43b4e35788 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -51,69 +51,6 @@ var/global/list/limb_icon_cache = list() var/obj/item/organ/internal/eyes/eyes = owner.internal_organs_by_name[O_EYES] if(eyes) eyes.update_colour() -/obj/item/organ/external/head/get_icon() - ..() - - //The overlays are not drawn on the mob, they are used for if the head is removed and becomes an item - cut_overlays() - - //Every 'addon' below requires information from species - if(!iscarbon(owner) || !owner.species) - return - - var/icon/eyecon //VOREStation Edit -- holds eye icon to render over markings later. - - //Eye color/icon - var/should_have_eyes = owner.should_have_organ(O_EYES) - var/has_eye_color = owner.species.appearance_flags & HAS_EYE_COLOR - if((should_have_eyes || has_eye_color) && eye_icon) - var/obj/item/organ/internal/eyes/eyes = owner.internal_organs_by_name[O_EYES] - var/icon/eyes_icon = new/icon(eye_icon_location, eye_icon) - //Should have eyes - if(should_have_eyes) - //And we have them - if(eyes) - if(has_eye_color) - eyes_icon.Blend(rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3]), ICON_ADD) - //They're gone! - else - eyes_icon.Blend(rgb(128,0,0), ICON_ADD) - //We have weird other-sorts of eyes (as we're not supposed to have eye organ, but we have HAS_EYE_COLOR species) - else - eyes_icon.Blend(rgb(owner.r_eyes, owner.g_eyes, owner.b_eyes), ICON_ADD) - - //VOREStation edit -- allow rendering of eyes over markings. - if(eyes_over_markings) - eyecon = eyes_icon - else - add_overlay(eyes_icon) - mob_icon.Blend(eyes_icon, ICON_OVERLAY) - icon_cache_key += "[eye_icon]" - - //Lip color/icon - if(owner.lip_style && (species && (species.appearance_flags & HAS_LIPS))) - var/icon/lip_icon = new/icon('icons/mob/human_face.dmi', "lips_[owner.lip_style]_s") - add_overlay(lip_icon) - mob_icon.Blend(lip_icon, ICON_OVERLAY) - - //Head markings - for(var/M in markings) - var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"] - var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]") - mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit - add_overlay(mark_s) //So when it's not on your body, it has icons - mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons - icon_cache_key += "[M][markings[M]["color"]]" - - if(eyes_over_markings && eyecon) //VOREStation edit -- toggle to render eyes above markings. - add_overlay(eyecon) - mob_icon.Blend(eyecon, ICON_OVERLAY) - icon_cache_key += "[eye_icon]" - - add_overlay(get_hair_icon()) - - return mob_icon - /obj/item/organ/external/head/proc/get_hair_icon() var/image/res = image('icons/mob/human_face.dmi',"bald_s") //Facial hair diff --git a/code/modules/organs/subtypes/shadekin_vr.dm b/code/modules/organs/subtypes/shadekin_vr.dm index 8b17b70d6e..90ecbad9cf 100644 --- a/code/modules/organs/subtypes/shadekin_vr.dm +++ b/code/modules/organs/subtypes/shadekin_vr.dm @@ -4,11 +4,11 @@ /obj/item/organ/external/groin/crewkin min_broken_damage = 20 -/obj/item/organ/external/head/vr/crewkin +/obj/item/organ/external/head/crewkin min_broken_damage = 15 - eye_icons_vr = 'icons/mob/human_face_vr.dmi' - eye_icon_vr = "eyes_shadekin_station" + eye_icon_location = 'icons/mob/human_face_vr.dmi' + eye_icon = "eyes_shadekin_station" /obj/item/organ/external/arm/crewkin min_broken_damage = 15 diff --git a/code/modules/organs/subtypes/standard.dm b/code/modules/organs/subtypes/standard.dm index 79eb04f255..9dc249167b 100644 --- a/code/modules/organs/subtypes/standard.dm +++ b/code/modules/organs/subtypes/standard.dm @@ -266,15 +266,13 @@ encased = "skull" base_miss_chance = 40 var/can_intake_reagents = 1 - var/eye_icons = 'icons/mob/human_face_alt.dmi' var/head_offset = 0 var/eye_icon = "eyes_s" + var/eye_icon_location = 'icons/mob/human_face.dmi' force = 3 throwforce = 7 var/eyes_over_markings = FALSE //VOREStation edit - var/eye_icon_location = 'icons/mob/human_face.dmi' - /obj/item/organ/external/head/Initialize() if(config.allow_headgibs) cannot_gib = FALSE @@ -328,50 +326,65 @@ /obj/item/organ/external/head/get_icon() ..() - overlays.Cut() - if(!owner || !owner.species) + + //The overlays are not drawn on the mob, they are used for if the head is removed and becomes an item + cut_overlays() + + //Every 'addon' below requires information from species + if(!iscarbon(owner) || !owner.species) return + var/icon/eyecon //VOREStation Edit -- holds eye icon to render over markings later. + + //Eye color/icon + var/should_have_eyes = owner.should_have_organ(O_EYES) + var/has_eye_color = owner.species.appearance_flags & HAS_EYE_COLOR + if((should_have_eyes || has_eye_color) && eye_icon) + var/obj/item/organ/internal/eyes/eyes = owner.internal_organs_by_name[O_EYES] + var/icon/eyes_icon = new/icon(eye_icon_location, eye_icon) + //Should have eyes + if(should_have_eyes) + //And we have them + if(eyes) + if(has_eye_color) + eyes_icon.Blend(rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3]), ICON_ADD) + //They're gone! + else + eyes_icon.Blend(rgb(128,0,0), ICON_ADD) + //We have weird other-sorts of eyes (as we're not supposed to have eye organ, but we have HAS_EYE_COLOR species) + else + eyes_icon.Blend(rgb(owner.r_eyes, owner.g_eyes, owner.b_eyes), ICON_ADD) + + //VOREStation edit -- allow rendering of eyes over markings. + if(eyes_over_markings) + eyecon = eyes_icon + else + add_overlay(eyes_icon) + mob_icon.Blend(eyes_icon, ICON_OVERLAY) + icon_cache_key += "[eye_icon]" + + //Lip color/icon + if(owner.lip_style && (species && (species.appearance_flags & HAS_LIPS))) + var/icon/lip_icon = new/icon('icons/mob/human_face.dmi', "lips_[owner.lip_style]_s") + add_overlay(lip_icon) + mob_icon.Blend(lip_icon, ICON_OVERLAY) + + //Head markings for(var/M in markings) var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"] var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]") - mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) - overlays |= mark_s //So when it's not on your body, it has icons + mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit + add_overlay(mark_s) //So when it's not on your body, it has icons mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons icon_cache_key += "[M][markings[M]["color"]]" - if(owner.should_have_organ(O_EYES))//Moved on top of markings. - var/obj/item/organ/internal/eyes/eyes = owner.internal_organs_by_name[O_EYES] - if(eye_icon) - var/icon/eyes_icon = new/icon(eye_icons, eye_icon) - if(eyes) - if(owner.species.appearance_flags & HAS_EYE_COLOR) - eyes_icon.Blend(rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3]), ICON_ADD) - else - eyes_icon.Blend(rgb(128,0,0), ICON_ADD) - mob_icon.Blend(eyes_icon, ICON_OVERLAY) - overlays |= eyes_icon + if(eyes_over_markings && eyecon) //VOREStation edit -- toggle to render eyes above markings. + add_overlay(eyecon) + mob_icon.Blend(eyecon, ICON_OVERLAY) + icon_cache_key += "[eye_icon]" - if(owner.lip_style && (species && (species.appearance_flags & HAS_LIPS))) - var/icon/lip_icon = new/icon('icons/mob/human_face.dmi', "lips_[owner.lip_style]_s") - overlays |= lip_icon - mob_icon.Blend(lip_icon, ICON_OVERLAY) + add_overlay(get_hair_icon()) - 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.get_bodytype(owner) in facial_hair_style.species_allowed)) - var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") - if(facial_hair_style.do_colouration) - facial_s.Blend(rgb(owner.r_facial, owner.g_facial, owner.b_facial), ICON_ADD) - overlays |= image(facial_s, "pixel_y" = head_offset) - - if(owner.h_style && !(owner.head && (owner.head.flags_inv & BLOCKHEADHAIR))) - var/datum/sprite_accessory/hair_style = hair_styles_list[owner.h_style] - if(hair_style && (species.get_bodytype(owner) in hair_style.species_allowed)) - var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") - if(hair_style.do_colouration && islist(h_col) && h_col.len >= 3) - hair_s.Blend(rgb(h_col[1], h_col[2], h_col[3]), ICON_MULTIPLY) - overlays |= image(hair_s, "pixel_y" = head_offset) return mob_icon /obj/item/organ/external/head/skrell diff --git a/code/modules/organs/subtypes/standard_vr.dm b/code/modules/organs/subtypes/standard_vr.dm index fb3fe58364..2337ea3c7c 100644 --- a/code/modules/organs/subtypes/standard_vr.dm +++ b/code/modules/organs/subtypes/standard_vr.dm @@ -1,21 +1,21 @@ //For custom heads with custom parts since the base code is restricted to a single icon file. -/obj/item/organ/external/head/vr - var/eye_icons_vr = 'icons/mob/human_face_vr.dmi' - var/eye_icon_vr = "blank_eyes" +/obj/item/organ/external/head/blank_vr // Unused for now. Might be at some point. + eye_icon_location = 'icons/mob/human_face_vr.dmi' eye_icon = "blank_eyes" -/obj/item/organ/external/head/vr/sergal - eye_icon_vr = "eyes_sergal" +/obj/item/organ/external/head/sergal + eye_icon_location = 'icons/mob/human_face_vr.dmi' + eye_icon = "eyes_sergal" -/obj/item/organ/external/head/vr/werebeast - eye_icons_vr = 'icons/mob/werebeast_face_vr.dmi' - eye_icon_vr = "werebeast_eyes" +/obj/item/organ/external/head/werebeast + eye_icon_location = 'icons/mob/werebeast_face_vr.dmi' + eye_icon = "werebeast_eyes" head_offset = 6 -/obj/item/organ/external/head/vr/shadekin +/obj/item/organ/external/head/shadekin cannot_gib = 1 cannot_amputate = 1 - eye_icons_vr = 'icons/mob/human_face_vr.dmi' - eye_icon_vr = "eyes_shadekin" + eye_icon_location = 'icons/mob/human_face_vr.dmi' + eye_icon = "eyes_shadekin"