diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 9b5915292d..e3d4ad4cc5 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -34,7 +34,7 @@ desc = "It's hood that covers the head. It keeps you warm during the space winters." icon_state = "chaplain_hood" item_state_slots = list(slot_r_hand_str = "beret_black", slot_l_hand_str = "beret_black") - flags_inv = BLOCKHEADHAIR + flags_inv = BLOCKHAIR body_parts_covered = HEAD //Chaplain @@ -43,7 +43,7 @@ desc = "Maximum piety in this star system." icon_state = "nun_hood" item_state_slots = list(slot_r_hand_str = "beret_black", slot_l_hand_str = "beret_black") - flags_inv = BLOCKHEADHAIR + flags_inv = BLOCKHAIR body_parts_covered = HEAD //Mime diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 1351408a5f..d354ec315e 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -81,7 +81,7 @@ desc = "It's unspeakably stylish" icon_state = "hasturhood" item_state_slots = list(slot_r_hand_str = "enginering_beret", slot_l_hand_str = "enginering_beret") - flags_inv = BLOCKHEADHAIR + flags_inv = BLOCKHAIR body_parts_covered = HEAD|FACE|EYES /obj/item/clothing/head/nursehat diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 421553f49e..c66ff3440c 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -44,7 +44,8 @@ icon_state = "beret_badge" item_state_slots = list(slot_r_hand_str = "beret", slot_l_hand_str = "beret") armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 30, rad = 30) - flags_inv = BLOCKHEADHAIR + item_flags = STOPPRESSUREDAMAGE + flags_inv = BLOCKHAIR siemens_coefficient = 0.9 //Space santa outfit suit diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 3f34bda5b2..9629a53283 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -78,7 +78,7 @@ name = "Radiation Hood" icon_state = "rad" desc = "A hood with radiation protective properties. Label: Made with lead, do not eat insulation" - flags_inv = BLOCKHEADHAIR + flags_inv = BLOCKHAIR body_parts_covered = HEAD|FACE|EYES armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index bfb4fab370..2629e51f0b 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -363,7 +363,31 @@ var/global/list/damage_icon_parts = list() if(update_icons) update_icons() return - overlays_standing[HAIR_LAYER] = head_organ.get_hair_icon() + //base icons + var/icon/face_standing = new /icon('icons/mob/human_face.dmi',"bald_s") + + if(f_style) + var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style] + if(facial_hair_style && facial_hair_style.species_allowed && (src.species.get_bodytype(src) 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(r_facial, g_facial, b_facial), ICON_ADD) + + face_standing.Blend(facial_s, ICON_OVERLAY) + + if(h_style && !(head && (head.flags_inv & BLOCKHEADHAIR))) + var/datum/sprite_accessory/hair_style = hair_styles_list[h_style] + if(hair_style && (src.species.get_bodytype(src) 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) + hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) + + face_standing.Blend(hair_s, ICON_OVERLAY) + + if(head_organ.nonsolid) + face_standing += rgb(,,,120) + + overlays_standing[HAIR_LAYER] = image(face_standing) if(update_icons) update_icons() diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index f6ac4db227..9e2cdf02e0 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -46,19 +46,16 @@ /datum/sprite_accessory/hair icon = 'icons/mob/Human_face.dmi' // default icon for all hairs - var/veryshort bald name = "Bald" icon_state = "bald" gender = MALE species_allowed = list("Human","Unathi") - veryshort=1 short name = "Short Hair" // try to capatilize the names please~ icon_state = "hair_a" // you do not need to define _s or _l sub-states, game automatically does this for you - veryshort=1 short2 name = "Short Hair 2" @@ -99,12 +96,10 @@ halfbang name = "Half-banged Hair" icon_state = "hair_halfbang" - veryshort=1 halfbangalt name = "Half-banged Hair Alt" icon_state = "hair_halfbang_alt" - veryshort=1 ponytail1 name = "Ponytail 1" @@ -172,7 +167,6 @@ sleeze name = "Sleeze" icon_state = "hair_sleeze" - veryshort=1 quiff name = "Quiff" @@ -223,38 +217,31 @@ bowl name = "Bowl" icon_state = "hair_bowlcut" - veryshort=1 buzz name = "Buzzcut" icon_state = "hair_buzzcut" species_allowed = list("Human","Unathi") - veryshort=1 shavehair name = "Shaved Hair" icon_state = "hair_shaved" - veryshort=1 crew name = "Crewcut" icon_state = "hair_crewcut" - veryshort=1 combover name = "Combover" icon_state = "hair_combover" - veryshort=1 father name = "Father" icon_state = "hair_father" - veryshort=1 reversemohawk name = "Reverse Mohawk" icon_state = "hair_reversemohawk" - veryshort=1 devillock name = "Devil Lock" @@ -283,17 +270,14 @@ rows name = "Rows" icon_state = "hair_rows1" - veryshort=1 rows2 name = "Rows 2" icon_state = "hair_rows2" - veryshort=1 sargeant name = "Flat Top" icon_state = "hair_sargeant" - veryshort=1 emo name = "Emo" @@ -330,7 +314,6 @@ fag name = "Flow Hair" icon_state = "hair_f" - veryshort=1 feather name = "Feather" @@ -397,13 +380,11 @@ skinhead name = "Skinhead" icon_state = "hair_skinhead" - veryshort=1 balding name = "Balding Hair" icon_state = "hair_e" - gender = MALE - veryshort=1 + gender = MALE // turnoff! familyman name = "The Family Man" @@ -483,7 +464,6 @@ shortbangs name = "Short Bangs" icon_state = "hair_shortbangs" - veryshort=1 halfshaved name = "Half-Shaved Emo" @@ -505,24 +485,20 @@ name = "Low Fade" icon_state = "hair_lowfade" gender = MALE - veryshort=1 medfade name = "Medium Fade" icon_state = "hair_medfade" - veryshort=1 highfade name = "High Fade" icon_state = "hair_highfade" gender = MALE - veryshort=1 baldfade name = "Balding Fade" icon_state = "hair_baldfade" gender = MALE - veryshort=1 nofade name = "Regulation Cut" @@ -533,13 +509,11 @@ name = "Trimmed Flat Top" icon_state = "hair_trimflat" gender = MALE - veryshort=1 trimmed name = "Trimmed" icon_state = "hair_trimmed" gender = MALE - veryshort=1 tightbun name = "Tight Bun" @@ -578,8 +552,8 @@ shaved name = "Shaved" icon_state = "bald" - species_allowed = list("Human","Unathi","Tajara","Skrell", "Machine","Teshari", "Vox") gender = NEUTER + species_allowed = list("Human","Unathi","Tajara","Skrell", "Machine","Teshari", "Vox") watson name = "Watson Mustache" @@ -744,14 +718,15 @@ skr_tentacle_m name = "Skrell Male Tentacles" icon_state = "skrell_hair_m" - gender = MALE species_allowed = list("Skrell") + gender = MALE skr_tentacle_f name = "Skrell Female Tentacles" icon_state = "skrell_hair_f" - gender = FEMALE species_allowed = list("Skrell") + gender = FEMALE + //Tajaran hairstyles taj_ears name = "Tajaran Ears" diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index a28084f3c8..0fd12ad9ef 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -65,33 +65,23 @@ var/global/list/limb_icon_cache = list() overlays |= lip_icon mob_icon.Blend(lip_icon, ICON_OVERLAY) - overlays |= 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") 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() in facial_hair_style.species_allowed)) + 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) - res.overlays |= facial_s + overlays |= facial_s - if(owner.h_style) - var/style = owner.h_style - var/datum/sprite_accessory/hair/hair_style = hair_styles_list[style] - if(owner.head && (owner.head.flags_inv & BLOCKHEADHAIR)) - if(!hair_style.veryshort) - hair_style = hair_styles_list["Short Hair"] - if(hair_style && (species.get_bodytype() in hair_style.species_allowed)) + 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_ADD) - res.overlays |= hair_s - return res + overlays |= hair_s + return mob_icon /obj/item/organ/external/proc/get_icon(var/skeletal) diff --git a/code/modules/xenoarcheaology/tools/equipment.dm b/code/modules/xenoarcheaology/tools/equipment.dm index 169f3459d6..1c2b1f9773 100644 --- a/code/modules/xenoarcheaology/tools/equipment.dm +++ b/code/modules/xenoarcheaology/tools/equipment.dm @@ -11,7 +11,6 @@ icon_state = "engspace_helmet" item_state = "engspace_helmet" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100) - flags_inv = BLOCKHEADHAIR /obj/item/clothing/suit/space/anomaly name = "Excavation suit" @@ -28,4 +27,3 @@ icon_state = "cespace_helmet" item_state = "cespace_helmet" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 100) - flags_inv = BLOCKHEADHAIR \ No newline at end of file diff --git a/html/changelogs/nachomeep - HEADHAIR.yml b/html/changelogs/nachomeep - HEADHAIR.yml deleted file mode 100644 index dc0540cd68..0000000000 --- a/html/changelogs/nachomeep - HEADHAIR.yml +++ /dev/null @@ -1,36 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -################################# - -# Your name. -author: nachomeep - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - rscadd: "Helmets and other items with the BLOCKHEADHAIR tag now replace the style with shorthair rather than causing balding."