Ports some Bay hair code

This commit is contained in:
Atermonera
2018-06-12 00:43:43 -07:00
committed by VirgoBot
parent d669d8a97f
commit 7cd1442e8f
5 changed files with 161 additions and 17 deletions

View File

@@ -219,3 +219,7 @@
#define SUIT_SENSOR_BINARY 1 #define SUIT_SENSOR_BINARY 1
#define SUIT_SENSOR_VITAL 2 #define SUIT_SENSOR_VITAL 2
#define SUIT_SENSOR_TRACKING 3 #define SUIT_SENSOR_TRACKING 3
// Hair Defines
#define HAIR_VERY_SHORT 0x1
#define HAIR_TIEABLE 0x4

View File

@@ -1,6 +1,38 @@
// These should all be procs, you can add them to humans/subspecies by // These should all be procs, you can add them to humans/subspecies by
// species.dm's inherent_verbs ~ Z // species.dm's inherent_verbs ~ Z
/mob/living/carbon/human/proc/tie_hair()
set name = "Tie Hair"
set desc = "Style your hair."
set category = "IC"
if(incapacitated())
to_chat(src, "<span class='warning'>You can't mess with your hair right now!</span>")
return
if(h_style)
var/datum/sprite_accessory/hair/hair_style = hair_styles_list[h_style]
var/selected_string
if(!(hair_style.flags & HAIR_TIEABLE))
to_chat(src, "<span class ='warning'>Your hair isn't long enough to tie.</span>")
return
else
var/list/datum/sprite_accessory/hair/valid_hairstyles = list()
for(var/hair_string in hair_styles_list)
var/list/datum/sprite_accessory/hair/test = hair_styles_list[hair_string]
if(test.flags & HAIR_TIEABLE)
valid_hairstyles.Add(hair_string)
selected_string = input("Select a new hairstyle", "Your hairstyle", hair_style) as null|anything in valid_hairstyles
if(incapacitated())
to_chat(src, "<span class='warning'>You can't mess with your hair right now!</span>")
return
else if(selected_string && h_style != selected_string)
h_style = selected_string
regenerate_icons()
visible_message("<span class='notice'>[src] pauses a moment to style their hair.</span>")
else
to_chat(src, "<span class ='notice'>You're already using that style.</span>")
/mob/living/carbon/human/proc/tackle() /mob/living/carbon/human/proc/tackle()
set category = "Abilities" set category = "Abilities"
set name = "Tackle" set name = "Tackle"

View File

@@ -23,6 +23,9 @@
spawn_flags = SPECIES_CAN_JOIN spawn_flags = SPECIES_CAN_JOIN
appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR | HAS_EYE_COLOR appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR | HAS_EYE_COLOR
inherent_verbs = list(
/mob/living/carbon/human/proc/tie_hair)
/datum/species/human/get_bodytype(var/mob/living/carbon/human/H) /datum/species/human/get_bodytype(var/mob/living/carbon/human/H)
return SPECIES_HUMAN return SPECIES_HUMAN

View File

@@ -47,60 +47,80 @@
icon = 'icons/mob/Human_face_m.dmi' // default icon for all hairs icon = 'icons/mob/Human_face_m.dmi' // default icon for all hairs
var/icon_add = 'icons/mob/human_face.dmi' var/icon_add = 'icons/mob/human_face.dmi'
var/flags
bald bald
name = "Bald" name = "Bald"
icon_state = "bald" icon_state = "bald"
gender = MALE gender = MALE
flags = HAIR_VERY_SHORT
species_allowed = list(SPECIES_HUMAN,SPECIES_UNATHI,SPECIES_PROMETHEAN,SPECIES_HUMAN_VATBORN,SPECIES_VOX) species_allowed = list(SPECIES_HUMAN,SPECIES_UNATHI,SPECIES_PROMETHEAN,SPECIES_HUMAN_VATBORN,SPECIES_VOX)
short short
name = "Short Hair" // try to capatilize the names please~ 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 icon_state = "hair_a" // you do not need to define _s or _l sub-states, game automatically does this for you
flags = HAIR_VERY_SHORT
short2 short2
name = "Short Hair 2" name = "Short Hair 2"
icon_state = "hair_shorthair3" icon_state = "hair_shorthair3"
flags = HAIR_VERY_SHORT
short3 short3
name = "Short Hair 3" name = "Short Hair 3"
icon_state = "hair_shorthair4" icon_state = "hair_shorthair4"
flags = HAIR_VERY_SHORT
twintail twintail
name = "Twintail" name = "Twintail"
icon_state = "hair_twintail" icon_state = "hair_twintail"
flags = HAIR_TIEABLE
cut cut
name = "Cut Hair" name = "Cut Hair"
icon_state = "hair_c" icon_state = "hair_c"
flags = HAIR_VERY_SHORT
flair flair
name = "Flaired Hair" name = "Flaired Hair"
icon_state = "hair_flair" icon_state = "hair_flair"
flags = HAIR_TIEABLE
long long
name = "Shoulder-length Hair" name = "Shoulder-length Hair"
icon_state = "hair_b" icon_state = "hair_b"
flags = HAIR_TIEABLE
/*longish /*
longish
name = "Longer Hair" name = "Longer Hair"
icon_state = "hair_b2"*/ icon_state = "hair_b2"
flags = HAIR_TIEABLE
*/
longer longer
name = "Long Hair" name = "Long Hair"
icon_state = "hair_vlong" icon_state = "hair_vlong"
flags = HAIR_TIEABLE
longeralt2
name = "Long Hair Alt 2"
icon_state = "hair_longeralt2"
flags = HAIR_TIEABLE
longest longest
name = "Very Long Hair" name = "Very Long Hair"
icon_state = "hair_longest" icon_state = "hair_longest"
flags = HAIR_TIEABLE
longfringe longfringe
name = "Long Fringe" name = "Long Fringe"
icon_state = "hair_longfringe" icon_state = "hair_longfringe"
flags = HAIR_TIEABLE
longestalt longestalt
name = "Longer Fringe" name = "Longer Fringe"
icon_state = "hair_vlongfringe" icon_state = "hair_vlongfringe"
flags = HAIR_TIEABLE
halfbang halfbang
name = "Half-banged Hair" name = "Half-banged Hair"
@@ -113,57 +133,72 @@
ponytail1 ponytail1
name = "Ponytail 1" name = "Ponytail 1"
icon_state = "hair_ponytail" icon_state = "hair_ponytail"
flags = HAIR_TIEABLE
ponytail2 ponytail2
name = "Ponytail 2" name = "Ponytail 2"
icon_state = "hair_pa" icon_state = "hair_pa"
flags = HAIR_TIEABLE
ponytail3 ponytail3
name = "Ponytail 3" name = "Ponytail 3"
icon_state = "hair_ponytail3" icon_state = "hair_ponytail3"
flags = HAIR_TIEABLE
ponytail4 ponytail4
name = "Ponytail 4" name = "Ponytail 4"
icon_state = "hair_ponytail4" icon_state = "hair_ponytail4"
flags = HAIR_TIEABLE
ponytail5 ponytail5
name = "Ponytail 5" name = "Ponytail 5"
icon_state = "hair_ponytail5" icon_state = "hair_ponytail5"
flags = HAIR_TIEABLE
ponytail6 ponytail6
name = "Ponytail 6" name = "Ponytail 6"
icon_state = "hair_ponytail6" icon_state = "hair_ponytail6"
flags = HAIR_TIEABLE
fringetail fringetail
name = "Fringetail" name = "Fringetail"
icon_state = "hair_fringetail" icon_state = "hair_fringetail"
flags = HAIR_TIEABLE
sideponytail sideponytail
name = "Side Ponytail" name = "Side Ponytail"
icon_state = "hair_stail" icon_state = "hair_stail"
flags = HAIR_TIEABLE
sideponytail4 //Not happy about this... but it's for the save files. sideponytail4 //Not happy about this... but it's for the save files.
name = "Side Ponytail 2" name = "Side Ponytail 2"
icon_state = "hair_ponytailf" icon_state = "hair_ponytailf"
flags = HAIR_TIEABLE
sideponytail2 sideponytail2
name = "One Shoulder" name = "One Shoulder"
icon_state = "hair_oneshoulder" icon_state = "hair_oneshoulder"
flags = HAIR_TIEABLE
sideponytail3 sideponytail3
name = "Tress Shoulder" name = "Tress Shoulder"
icon_state = "hair_tressshoulder" icon_state = "hair_tressshoulder"
flags = HAIR_TIEABLE
spikyponytail spikyponytail
name = "Spiky Ponytail" name = "Spiky Ponytail"
icon_state = "hair_spikyponytail" icon_state = "hair_spikyponytail"
flags = HAIR_TIEABLE
zieglertail zieglertail
name = "Zieglertail" name = "Zieglertail"
icon_state = "hair_ziegler" icon_state = "hair_ziegler"
flags = HAIR_TIEABLE
wisp wisp
name = "Wisp" name = "Wisp"
icon_state = "hair_wisp" icon_state = "hair_wisp"
flags = HAIR_TIEABLE
parted parted
name = "Parted" name = "Parted"
@@ -176,6 +211,7 @@
sleeze sleeze
name = "Sleeze" name = "Sleeze"
icon_state = "hair_sleeze" icon_state = "hair_sleeze"
flags = HAIR_VERY_SHORT
quiff quiff
name = "Quiff" name = "Quiff"
@@ -192,32 +228,39 @@
bedhead3 bedhead3
name = "Bedhead 3" name = "Bedhead 3"
icon_state = "hair_bedheadv3" icon_state = "hair_bedheadv3"
flags = HAIR_TIEABLE
bedheadlong bedheadlong
name = "Bedhead Long" name = "Bedhead Long"
icon_state = "hair_long_bedhead" icon_state = "hair_long_bedhead"
flags = HAIR_TIEABLE
beehive beehive
name = "Beehive" name = "Beehive"
icon_state = "hair_beehive" icon_state = "hair_beehive"
flags = HAIR_TIEABLE
beehive2 beehive2
name = "Beehive 2" name = "Beehive 2"
icon_state = "hair_beehive2" icon_state = "hair_beehive2"
flags = HAIR_TIEABLE
bobcurl bobcurl
name = "Bobcurl" name = "Bobcurl"
icon_state = "hair_bobcurl" icon_state = "hair_bobcurl"
species_allowed = list(SPECIES_HUMAN,SPECIES_PROMETHEAN,SPECIES_HUMAN_VATBORN,SPECIES_UNATHI) species_allowed = list(SPECIES_HUMAN,SPECIES_PROMETHEAN,SPECIES_HUMAN_VATBORN,SPECIES_UNATHI)
flags = HAIR_TIEABLE
bob bob
name = "Bob" name = "Bob"
icon_state = "hair_bobcut" icon_state = "hair_bobcut"
species_allowed = list(SPECIES_HUMAN,SPECIES_PROMETHEAN,SPECIES_HUMAN_VATBORN,SPECIES_UNATHI) species_allowed = list(SPECIES_HUMAN,SPECIES_PROMETHEAN,SPECIES_HUMAN_VATBORN,SPECIES_UNATHI)
flags = HAIR_TIEABLE
bobcutalt bobcutalt
name = "Chin Length Bob" name = "Chin Length Bob"
icon_state = "hair_bobcutalt" icon_state = "hair_bobcutalt"
flags = HAIR_TIEABLE
bun bun
name = "Bun" name = "Bun"
@@ -238,15 +281,18 @@
buzz buzz
name = "Buzzcut" name = "Buzzcut"
icon_state = "hair_buzzcut" icon_state = "hair_buzzcut"
flags = HAIR_VERY_SHORT
species_allowed = list(SPECIES_HUMAN,SPECIES_PROMETHEAN,SPECIES_HUMAN_VATBORN,SPECIES_UNATHI) species_allowed = list(SPECIES_HUMAN,SPECIES_PROMETHEAN,SPECIES_HUMAN_VATBORN,SPECIES_UNATHI)
shavehair shavehair
name = "Shaved Hair" name = "Shaved Hair"
icon_state = "hair_shaved" icon_state = "hair_shaved"
flags = HAIR_VERY_SHORT
crew crew
name = "Crewcut" name = "Crewcut"
icon_state = "hair_crewcut" icon_state = "hair_crewcut"
flags = HAIR_VERY_SHORT
combover combover
name = "Combover" name = "Combover"
@@ -271,6 +317,7 @@
curls curls
name = "Curls" name = "Curls"
icon_state = "hair_curls" icon_state = "hair_curls"
flags = HAIR_TIEABLE
afro afro
name = "Afro" name = "Afro"
@@ -287,14 +334,17 @@
rows rows
name = "Rows" name = "Rows"
icon_state = "hair_rows1" icon_state = "hair_rows1"
flags = HAIR_VERY_SHORT
rows2 rows2
name = "Rows 2" name = "Rows 2"
icon_state = "hair_rows2" icon_state = "hair_rows2"
flags = HAIR_TIEABLE
sargeant sargeant
name = "Flat Top" name = "Flat Top"
icon_state = "hair_sargeant" icon_state = "hair_sargeant"
flags = HAIR_VERY_SHORT
emo emo
name = "Emo" name = "Emo"
@@ -307,10 +357,12 @@
longemo longemo
name = "Long Emo" name = "Long Emo"
icon_state = "hair_emolong" icon_state = "hair_emolong"
flags = HAIR_TIEABLE
fringeemo fringeemo
name = "Emo Fringe" name = "Emo Fringe"
icon_state = "hair_emofringe" icon_state = "hair_emofringe"
flags = HAIR_TIEABLE
veryshortovereyealternate veryshortovereyealternate
name = "Overeye Very Short, Alternate" name = "Overeye Very Short, Alternate"
@@ -327,6 +379,7 @@
longovereye longovereye
name = "Overeye Long" name = "Overeye Long"
icon_state = "hair_longovereye" icon_state = "hair_longovereye"
flags = HAIR_TIEABLE
flowhair flowhair
name = "Flow Hair" name = "Flow Hair"
@@ -335,6 +388,7 @@
feather feather
name = "Feather" name = "Feather"
icon_state = "hair_feather" icon_state = "hair_feather"
flags = HAIR_TIEABLE
hitop hitop
name = "Hitop" name = "Hitop"
@@ -356,6 +410,7 @@
gentle gentle
name = "Gentle" name = "Gentle"
icon_state = "hair_gentle" icon_state = "hair_gentle"
flags = HAIR_TIEABLE
spiky spiky
name = "Spiky" name = "Spiky"
@@ -369,51 +424,63 @@
kagami kagami
name = "Pigtails" name = "Pigtails"
icon_state = "hair_kagami" icon_state = "hair_kagami"
flags = HAIR_TIEABLE
himecut himecut
name = "Hime Cut" name = "Hime Cut"
icon_state = "hair_himecut" icon_state = "hair_himecut"
flags = HAIR_TIEABLE
shorthime shorthime
name = "Short Hime Cut" name = "Short Hime Cut"
icon_state = "hair_shorthime" icon_state = "hair_shorthime"
flags = HAIR_TIEABLE
grandebraid grandebraid
name = "Grande Braid" name = "Grande Braid"
icon_state = "hair_grande" icon_state = "hair_grande"
flags = HAIR_TIEABLE
mbraid mbraid
name = "Medium Braid" name = "Medium Braid"
icon_state = "hair_shortbraid" icon_state = "hair_shortbraid"
flags = HAIR_TIEABLE
braid2 braid2
name = "Long Braid" name = "Long Braid"
icon_state = "hair_hbraid" icon_state = "hair_hbraid"
flags = HAIR_TIEABLE
braid braid
name = "Floorlength Braid" name = "Floorlength Braid"
icon_state = "hair_braid" icon_state = "hair_braid"
flags = HAIR_TIEABLE
odango odango
name = "Odango" name = "Odango"
icon_state = "hair_odango" icon_state = "hair_odango"
flags = HAIR_TIEABLE
ombre ombre
name = "Ombre" name = "Ombre"
icon_state = "hair_ombre" icon_state = "hair_ombre"
flags = HAIR_TIEABLE
updo updo
name = "Updo" name = "Updo"
icon_state = "hair_updo" icon_state = "hair_updo"
flags = HAIR_TIEABLE
skinhead skinhead
name = "Skinhead" name = "Skinhead"
icon_state = "hair_skinhead" icon_state = "hair_skinhead"
flags = HAIR_VERY_SHORT
balding balding
name = "Balding Hair" name = "Balding Hair"
icon_state = "hair_e" icon_state = "hair_e"
gender = MALE gender = MALE
flags = HAIR_VERY_SHORT
familyman familyman
name = "The Family Man" name = "The Family Man"
@@ -434,10 +501,13 @@
poofy poofy
name = "Poofy" name = "Poofy"
icon_state = "hair_poofy" icon_state = "hair_poofy"
flags = HAIR_TIEABLE
poofy2 poofy2
name = "Poofy2" name = "Poofy2"
icon_state = "hair_poofy2" icon_state = "hair_poofy2"
flags = HAIR_TIEABLE
crono crono
name = "Chrono" name = "Chrono"
icon_state = "hair_toriyama" icon_state = "hair_toriyama"
@@ -461,6 +531,7 @@
nitori nitori
name = "Nitori" name = "Nitori"
icon_state = "hair_nitori" icon_state = "hair_nitori"
flags = HAIR_TIEABLE
joestar joestar
name = "Joestar" name = "Joestar"
@@ -469,6 +540,7 @@
volaju volaju
name = "Volaju" name = "Volaju"
icon_state = "hair_volaju" icon_state = "hair_volaju"
flags = HAIR_TIEABLE
eighties eighties
name = "80's" name = "80's"
@@ -486,14 +558,6 @@
name = "Modern" name = "Modern"
icon_state = "hair_modern" icon_state = "hair_modern"
bald
name = "Bald"
icon_state = "bald"
longeralt2
name = "Long Hair Alt 2"
icon_state = "hair_longeralt2"
shortbangs shortbangs
name = "Short Bangs" name = "Short Bangs"
icon_state = "hair_shortbangs" icon_state = "hair_shortbangs"
@@ -505,10 +569,12 @@
bun bun
name = "Casual Bun" name = "Casual Bun"
icon_state = "hair_bun" icon_state = "hair_bun"
flags = HAIR_TIEABLE
doublebun doublebun
name = "Double-Bun" name = "Double-Bun"
icon_state = "hair_doublebun" icon_state = "hair_doublebun"
flags = HAIR_TIEABLE
oxton oxton
name = "Oxton" name = "Oxton"
@@ -518,93 +584,113 @@
name = "Low Fade" name = "Low Fade"
icon_state = "hair_lowfade" icon_state = "hair_lowfade"
gender = MALE gender = MALE
flags = HAIR_VERY_SHORT
medfade medfade
name = "Medium Fade" name = "Medium Fade"
icon_state = "hair_medfade" icon_state = "hair_medfade"
flags = HAIR_VERY_SHORT
highfade highfade
name = "High Fade" name = "High Fade"
icon_state = "hair_highfade" icon_state = "hair_highfade"
gender = MALE gender = MALE
flags = HAIR_VERY_SHORT
baldfade baldfade
name = "Balding Fade" name = "Balding Fade"
icon_state = "hair_baldfade" icon_state = "hair_baldfade"
gender = MALE gender = MALE
flags = HAIR_VERY_SHORT
nofade nofade
name = "Regulation Cut" name = "Regulation Cut"
icon_state = "hair_nofade" icon_state = "hair_nofade"
gender = MALE gender = MALE
flags = HAIR_VERY_SHORT
trimflat trimflat
name = "Trimmed Flat Top" name = "Trimmed Flat Top"
icon_state = "hair_trimflat" icon_state = "hair_trimflat"
gender = MALE gender = MALE
flags = HAIR_VERY_SHORT
trimmed trimmed
name = "Trimmed" name = "Trimmed"
icon_state = "hair_trimmed" icon_state = "hair_trimmed"
gender = MALE gender = MALE
flags = HAIR_VERY_SHORT
tightbun tightbun
name = "Tight Bun" name = "Tight Bun"
icon_state = "hair_tightbun" icon_state = "hair_tightbun"
gender = FEMALE gender = FEMALE
flags = HAIR_VERY_SHORT | HAIR_TIEABLE
coffeehouse coffeehouse
name = "Coffee House Cut" name = "Coffee House Cut"
icon_state = "hair_coffeehouse" icon_state = "hair_coffeehouse"
gender = MALE gender = MALE
flags = HAIR_VERY_SHORT
undercut1 undercut1
name = "Undercut" name = "Undercut"
icon_state = "hair_undercut1" icon_state = "hair_undercut1"
gender = MALE gender = MALE
flags = HAIR_VERY_SHORT
undercut2 undercut2
name = "Undercut Swept Right" name = "Undercut Swept Right"
icon_state = "hair_undercut2" icon_state = "hair_undercut2"
gender = MALE gender = MALE
flags = HAIR_VERY_SHORT
undercut3 undercut3
name = "Undercut Swept Left" name = "Undercut Swept Left"
icon_state = "hair_undercut3" icon_state = "hair_undercut3"
gender = MALE gender = MALE
flags = HAIR_VERY_SHORT
partfade partfade
name = "Parted Fade" name = "Parted Fade"
icon_state = "hair_shavedpart" icon_state = "hair_shavedpart"
gender = MALE gender = MALE
flags = HAIR_VERY_SHORT
hightight hightight
name = "High and Tight" name = "High and Tight"
icon_state = "hair_hightight" icon_state = "hair_hightight"
flags = HAIR_VERY_SHORT
rowbun rowbun
name = "Row Bun" name = "Row Bun"
icon_state = "hair_rowbun" icon_state = "hair_rowbun"
flags = HAIR_TIEABLE
rowdualbraid rowdualbraid
name = "Row Dual Braid" name = "Row Dual Braid"
icon_state = "hair_rowdualtail" icon_state = "hair_rowdualtail"
flags = HAIR_TIEABLE
rowbraid rowbraid
name = "Row Braid" name = "Row Braid"
icon_state = "hair_rowbraid" icon_state = "hair_rowbraid"
flags = HAIR_TIEABLE
regulationmohawk regulationmohawk
name = "Regulation Mohawk" name = "Regulation Mohawk"
icon_state = "hair_shavedmohawk" icon_state = "hair_shavedmohawk"
flags = HAIR_VERY_SHORT
topknot topknot
name = "Topknot" name = "Topknot"
icon_state = "hair_topknot" icon_state = "hair_topknot"
flags = HAIR_TIEABLE
ronin ronin
name = "Ronin" name = "Ronin"
icon_state = "hair_ronin" icon_state = "hair_ronin"
flags = HAIR_TIEABLE
bowlcut2 bowlcut2
name = "Bowl2" name = "Bowl2"
@@ -613,18 +699,22 @@
thinning thinning
name = "Thinning" name = "Thinning"
icon_state = "hair_thinning" icon_state = "hair_thinning"
flags = HAIR_VERY_SHORT
thinningfront thinningfront
name = "Thinning Front" name = "Thinning Front"
icon_state = "hair_thinningfront" icon_state = "hair_thinningfront"
flags = HAIR_VERY_SHORT
thinningback thinningback
name = "Thinning Back" name = "Thinning Back"
icon_state = "hair_thinningrear" icon_state = "hair_thinningrear"
flags = HAIR_VERY_SHORT
manbun manbun
name = "Manbun" name = "Manbun"
icon_state = "hair_manbun" icon_state = "hair_manbun"
flags = HAIR_TIEABLE
shy shy
name = "Shy" name = "Shy"

View File

@@ -51,10 +51,10 @@ var/global/list/limb_icon_cache = list()
/obj/item/organ/external/head/get_icon() /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 //The overlays are not drawn on the mob, they are used for if the head is removed and becomes an item
cut_overlays() cut_overlays()
//Every 'addon' below requires information from species //Every 'addon' below requires information from species
if(!owner || !owner.species) if(!owner || !owner.species)
return return
@@ -78,7 +78,7 @@ var/global/list/limb_icon_cache = list()
eyes_icon.Blend(rgb(owner.r_eyes, owner.g_eyes, owner.b_eyes), ICON_ADD) eyes_icon.Blend(rgb(owner.r_eyes, owner.g_eyes, owner.b_eyes), ICON_ADD)
add_overlay(eyes_icon) add_overlay(eyes_icon)
mob_icon.Blend(eyes_icon, ICON_OVERLAY) mob_icon.Blend(eyes_icon, ICON_OVERLAY)
//Lip color/icon //Lip color/icon
if(owner.lip_style && (species && (species.appearance_flags & HAS_LIPS))) 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") var/icon/lip_icon = new/icon('icons/mob/human_face.dmi', "lips_[owner.lip_style]_s")
@@ -94,27 +94,42 @@ var/global/list/limb_icon_cache = list()
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's 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"]]" icon_cache_key += "[M][markings[M]["color"]]"
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")
//Facial hair //Facial hair
if(owner.f_style) if(owner.f_style)
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[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)) 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") 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) if(facial_hair_style.do_colouration)
<<<<<<< HEAD
facial_s.Blend(rgb(owner.r_facial, owner.g_facial, owner.b_facial), ICON_MULTIPLY) // VOREStation edit facial_s.Blend(rgb(owner.r_facial, owner.g_facial, owner.b_facial), ICON_MULTIPLY) // VOREStation edit
add_overlay(facial_s) add_overlay(facial_s)
=======
facial_s.Blend(rgb(owner.r_facial, owner.g_facial, owner.b_facial), ICON_ADD)
res.overlays |= facial_s
>>>>>>> e8020de... Merge pull request #5335 from Anewbe/hair_stealing
//Head hair //Head hair
if(owner.h_style && !(owner.head && (owner.head.flags_inv & BLOCKHEADHAIR))) if(owner.h_style && !(owner.head && (owner.head.flags_inv & BLOCKHEADHAIR)))
var/datum/sprite_accessory/hair/hair_style = hair_styles_list[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.flags & HAIR_VERY_SHORT))
hair_style = hair_styles_list["Short Hair"]
if(hair_style && (species.get_bodytype(owner) in hair_style.species_allowed)) 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") var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
var/icon/hair_s_add = new/icon("icon" = hair_style.icon_add, "icon_state" = "[hair_style.icon_state]_s") var/icon/hair_s_add = new/icon("icon" = hair_style.icon_add, "icon_state" = "[hair_style.icon_state]_s")
if(hair_style.do_colouration && islist(h_col) && h_col.len >= 3) 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) hair_s.Blend(rgb(h_col[1], h_col[2], h_col[3]), ICON_MULTIPLY)
hair_s.Blend(hair_s_add, ICON_ADD) hair_s.Blend(hair_s_add, ICON_ADD)
add_overlay(hair_s) res.overlays |= hair_s
return mob_icon return res
/obj/item/organ/external/proc/get_icon(var/skeletal) /obj/item/organ/external/proc/get_icon(var/skeletal)