[MIRROR] Fixes Global and Fixes Eyes

This commit is contained in:
Chompstation Bot
2021-03-18 14:40:07 +00:00
parent 5c285eda7d
commit 07dcf04408
4 changed files with 582 additions and 2 deletions
+450
View File
@@ -1,3 +1,4 @@
<<<<<<< HEAD
//max channel is 1024. Only go lower from here, because byond tends to pick the first availiable channel to play sounds on
#define CHANNEL_LOBBYMUSIC 1024
#define CHANNEL_ADMIN 1023
@@ -234,3 +235,452 @@
'sound/ambience/atmospherics/atmospherics1.ogg'\
)
||||||| parent of dd01ae71ab... Merge pull request #9961 from VOREStation/upstream-merge-7976
//max channel is 1024. Only go lower from here, because byond tends to pick the first availiable channel to play sounds on
#define CHANNEL_LOBBYMUSIC 1024
#define CHANNEL_ADMIN 1023
#define CHANNEL_VOX 1022
#define CHANNEL_JUKEBOX 1021
#define CHANNEL_HEARTBEAT 1020 //sound channel for heartbeats
#define CHANNEL_AMBIENCE_FORCED 1019
#define CHANNEL_AMBIENCE 1018
#define CHANNEL_BUZZ 1017
#define CHANNEL_BICYCLE 1016
#define CHANNEL_PREYLOOP 1015 //VORESTATION ADD - Fancy Sound Loop channel
//THIS SHOULD ALWAYS BE THE LOWEST ONE!
//KEEP IT UPDATED
#define CHANNEL_HIGHEST_AVAILABLE 1014 //VORESTATION EDIT - Fancy Sound Loop channel from 1015
#define SOUND_MINIMUM_PRESSURE 10
#define FALLOFF_SOUNDS 0.5
//Sound environment defines. Reverb preset for sounds played in an area, see sound datum reference for more.
#define GENERIC 0
#define PADDED_CELL 1
#define ROOM 2
#define BATHROOM 3
#define LIVINGROOM 4
#define STONEROOM 5
#define AUDITORIUM 6
#define CONCERT_HALL 7
#define CAVE 8
#define ARENA 9
#define HANGAR 10
#define CARPETED_HALLWAY 11
#define HALLWAY 12
#define STONE_CORRIDOR 13
#define ALLEY 14
#define FOREST 15
#define CITY 16
#define MOUNTAINS 17
#define QUARRY 18
#define PLAIN 19
#define PARKING_LOT 20
#define SEWER_PIPE 21
#define UNDERWATER 22
#define DRUGGED 23
#define DIZZY 24
#define PSYCHOTIC 25
#define STANDARD_STATION STONEROOM
#define LARGE_ENCLOSED HANGAR
#define SMALL_ENCLOSED BATHROOM
#define TUNNEL_ENCLOSED CAVE
#define LARGE_SOFTFLOOR CARPETED_HALLWAY
#define MEDIUM_SOFTFLOOR LIVINGROOM
#define SMALL_SOFTFLOOR ROOM
#define ASTEROID CAVE
#define SPACE UNDERWATER
// Ambience presets.
// All you need to do to make an area play one of these is set their ambience var to one of these lists.
// You can even combine them by adding them together, since they're just lists, however you'd have to do that in initialization.
// For weird alien places like the crashed UFO.
#define AMBIENCE_OTHERWORLDLY list(\
'sound/ambience/otherworldly/otherworldly1.ogg',\
'sound/ambience/otherworldly/otherworldly2.ogg',\
'sound/ambience/otherworldly/otherworldly3.ogg'\
)
// Restricted, military, or mercenary aligned locations like the armory, the merc ship/base, BSD, etc.
#define AMBIENCE_HIGHSEC list(\
'sound/ambience/highsec/highsec1.ogg',\
'sound/ambience/highsec/highsec2.ogg',\
'sound/ambience/highsec/highsec3.ogg',\
'sound/ambience/highsec/highsec4.ogg'\
)
// Ruined structures found on the surface or in the caves.
#define AMBIENCE_RUINS list(\
'sound/ambience/ruins/ruins1.ogg',\
'sound/ambience/ruins/ruins2.ogg',\
'sound/ambience/ruins/ruins3.ogg',\
'sound/ambience/ruins/ruins4.ogg',\
'sound/ambience/ruins/ruins5.ogg',\
'sound/ambience/ruins/ruins6.ogg'\
)
// Similar to the above, but for more technology/signaling based ruins.
#define AMBIENCE_TECH_RUINS list(\
'sound/ambience/tech_ruins/tech_ruins1.ogg',\
'sound/ambience/tech_ruins/tech_ruins2.ogg',\
'sound/ambience/tech_ruins/tech_ruins3.ogg'\
)
// The actual chapel room, and maybe some other places of worship.
#define AMBIENCE_CHAPEL list(\
'sound/ambience/chapel/chapel1.ogg',\
'sound/ambience/chapel/chapel2.ogg',\
'sound/ambience/chapel/chapel3.ogg',\
'sound/ambience/chapel/chapel4.ogg'\
)
// For peaceful, serene areas, distinct from the Chapel.
#define AMBIENCE_HOLY list(\
'sound/ambience/holy/holy1.ogg',\
'sound/ambience/holy/holy2.ogg'\
)
// Generic sounds for less special rooms.
#define AMBIENCE_GENERIC list(\
'sound/ambience/generic/generic1.ogg',\
'sound/ambience/generic/generic2.ogg',\
'sound/ambience/generic/generic3.ogg'\
)
// 'sound/ambience/generic/generic4.ogg'\ // VOREStation Edit: Comment out entry 4 as this doesn't fit on Virgo, and we have our own weather system.
// Sounds of PA announcements, presumably involving shuttles?
#define AMBIENCE_ARRIVALS list(\
'sound/ambience/arrivals/arrivals1.ogg',\
'sound/ambience/arrivals/arrivals2.ogg',\
'sound/ambience/arrivals/arrivals3.ogg',\
'sound/ambience/arrivals/arrivals4.ogg',\
'sound/ambience/arrivals/arrivals5.ogg',\
'sound/ambience/arrivals/arrivals6.ogg',\
'sound/ambience/arrivals/arrivals7.ogg'\
)
// Sounds suitable for being inside dark, tight corridors in the underbelly of the station.
#define AMBIENCE_MAINTENANCE list(\
'sound/ambience/maintenance/maintenance1.ogg',\
'sound/ambience/maintenance/maintenance2.ogg',\
'sound/ambience/maintenance/maintenance3.ogg',\
'sound/ambience/maintenance/maintenance4.ogg',\
'sound/ambience/maintenance/maintenance5.ogg',\
'sound/ambience/maintenance/maintenance6.ogg',\
'sound/ambience/maintenance/maintenance7.ogg',\
'sound/ambience/maintenance/maintenance8.ogg',\
'sound/ambience/maintenance/maintenance9.ogg'\
)
// Life support machinery at work, keeping everyone breathing.
#define AMBIENCE_ENGINEERING list(\
'sound/ambience/engineering/engineering1.ogg',\
'sound/ambience/engineering/engineering2.ogg',\
'sound/ambience/engineering/engineering3.ogg'\
)
// Creepy AI/borg stuff.
#define AMBIENCE_AI list(\
'sound/ambience/ai/ai1.ogg',\
'sound/ambience/ai/ai2.ogg',\
'sound/ambience/ai/ai3.ogg'\
)
// Peaceful sounds when floating in the void.
#define AMBIENCE_SPACE list(\
'sound/ambience/space/space_serithi.ogg',\
'sound/ambience/space/space1.ogg'\
)
// Vaguely spooky sounds when around dead things.
#define AMBIENCE_GHOSTLY list(\
'sound/ambience/ghostly/ghostly1.ogg',\
'sound/ambience/ghostly/ghostly2.ogg'\
)
// Concerning sounds, for when one discovers something horrible happened in a PoI.
#define AMBIENCE_FOREBODING list(\
'sound/ambience/foreboding/foreboding1.ogg',\
'sound/ambience/foreboding/foreboding2.ogg',\
'sound/ambience/foreboding/foreboding3.ogg',\
'sound/ambience/foreboding/foreboding4.ogg',\
'sound/ambience/foreboding/foreboding5.ogg',\
'sound/ambience/foreboding/foreboding6.ogg'\
)
// Ambience heard when aboveground on Sif and not in a Point of Interest.
#define AMBIENCE_SIF list(\
'sound/ambience/sif/sif1.ogg'\
)
// If we ever add geothermal PoIs or other places that are really hot, this will do.
#define AMBIENCE_LAVA list(\
'sound/ambience/lava/lava1.ogg'\
)
// Cult-y ambience, for some PoIs, and maybe when the cultists darken the world with the ritual.
#define AMBIENCE_UNHOLY list(\
'sound/ambience/unholy/unholy1.ogg'\
)
// For the memes.
#define AMBIENCE_AESTHETIC list(\
'sound/ambience/vaporwave.ogg'\
)
#define AMBIENCE_OUTPOST list(\
'sound/ambience/expoutpost/expoutpost1.ogg',\
'sound/ambience/expoutpost/expoutpost2.ogg',\
'sound/ambience/expoutpost/expoutpost3.ogg',\
'sound/ambience/expoutpost/expoutpost4.ogg'\
)
#define AMBIENCE_SUBSTATION list(\
'sound/ambience/substation/substation1.ogg',\
'sound/ambience/substation/substation2.ogg'\
)
#define AMBIENCE_HANGAR list(\
'sound/ambience/hangar/hangar1.ogg',\
'sound/ambience/hangar/hangar2.ogg',\
'sound/ambience/hangar/hangar3.ogg',\
'sound/ambience/hangar/hangar4.ogg',\
'sound/ambience/hangar/hangar5.ogg',\
'sound/ambience/hangar/hangar6.ogg'\
)
#define AMBIENCE_ATMOS list(\
'sound/ambience/engineering/engineering1.ogg',\
'sound/ambience/engineering/engineering2.ogg',\
'sound/ambience/engineering/engineering3.ogg',\
'sound/ambience/atmospherics/atmospherics1.ogg'\
)
=======
//max channel is 1024. Only go lower from here, because byond tends to pick the first availiable channel to play sounds on
#define CHANNEL_LOBBYMUSIC 1024
#define CHANNEL_ADMIN 1023
#define CHANNEL_VOX 1022
#define CHANNEL_JUKEBOX 1021
#define CHANNEL_HEARTBEAT 1020 //sound channel for heartbeats
#define CHANNEL_AMBIENCE_FORCED 1019
#define CHANNEL_AMBIENCE 1018
#define CHANNEL_BUZZ 1017
#define CHANNEL_BICYCLE 1016
#define CHANNEL_PREYLOOP 1015 //VORESTATION ADD - Fancy Sound Loop channel
//THIS SHOULD ALWAYS BE THE LOWEST ONE!
//KEEP IT UPDATED
#define CHANNEL_HIGHEST_AVAILABLE 1014 //VORESTATION EDIT - Fancy Sound Loop channel from 1015
#define SOUND_MINIMUM_PRESSURE 10
#define FALLOFF_SOUNDS 0.5
//Sound environment defines. Reverb preset for sounds played in an area, see sound datum reference for more.
#define GENERIC 0
#define PADDED_CELL 1
#define ROOM 2
#define BATHROOM 3
#define LIVINGROOM 4
#define STONEROOM 5
#define AUDITORIUM 6
#define CONCERT_HALL 7
#define CAVE 8
#define ARENA 9
#define HANGAR 10
#define CARPETED_HALLWAY 11
#define HALLWAY 12
#define STONE_CORRIDOR 13
#define ALLEY 14
#define FOREST 15
#define CITY 16
#define MOUNTAINS 17
#define QUARRY 18
#define PLAIN 19
#define PARKING_LOT 20
#define SEWER_PIPE 21
#define UNDERWATER 22
#define DRUGGED 23
#define DIZZY 24
#define PSYCHOTIC 25
#define STANDARD_STATION STONEROOM
#define LARGE_ENCLOSED HANGAR
#define SMALL_ENCLOSED BATHROOM
#define TUNNEL_ENCLOSED CAVE
#define LARGE_SOFTFLOOR CARPETED_HALLWAY
#define MEDIUM_SOFTFLOOR LIVINGROOM
#define SMALL_SOFTFLOOR ROOM
#define ASTEROID CAVE
#define SPACE UNDERWATER
// Ambience presets.
// All you need to do to make an area play one of these is set their ambience var to one of these lists.
// You can even combine them by adding them together, since they're just lists, however you'd have to do that in initialization.
// For weird alien places like the crashed UFO.
#define AMBIENCE_OTHERWORLDLY list(\
'sound/ambience/otherworldly/otherworldly1.ogg',\
'sound/ambience/otherworldly/otherworldly2.ogg',\
'sound/ambience/otherworldly/otherworldly3.ogg'\
)
// Restricted, military, or mercenary aligned locations like the armory, the merc ship/base, BSD, etc.
#define AMBIENCE_HIGHSEC list(\
'sound/ambience/highsec/highsec1.ogg',\
'sound/ambience/highsec/highsec2.ogg',\
'sound/ambience/highsec/highsec3.ogg',\
'sound/ambience/highsec/highsec4.ogg'\
)
// Ruined structures found on the surface or in the caves.
#define AMBIENCE_RUINS list(\
'sound/ambience/ruins/ruins1.ogg',\
'sound/ambience/ruins/ruins2.ogg',\
'sound/ambience/ruins/ruins3.ogg',\
'sound/ambience/ruins/ruins4.ogg',\
'sound/ambience/ruins/ruins5.ogg',\
'sound/ambience/ruins/ruins6.ogg'\
)
// Similar to the above, but for more technology/signaling based ruins.
#define AMBIENCE_TECH_RUINS list(\
'sound/ambience/tech_ruins/tech_ruins1.ogg',\
'sound/ambience/tech_ruins/tech_ruins2.ogg',\
'sound/ambience/tech_ruins/tech_ruins3.ogg'\
)
// The actual chapel room, and maybe some other places of worship.
#define AMBIENCE_CHAPEL list(\
'sound/ambience/chapel/chapel1.ogg',\
'sound/ambience/chapel/chapel2.ogg',\
'sound/ambience/chapel/chapel3.ogg',\
'sound/ambience/chapel/chapel4.ogg'\
)
// For peaceful, serene areas, distinct from the Chapel.
#define AMBIENCE_HOLY list(\
'sound/ambience/holy/holy1.ogg',\
'sound/ambience/holy/holy2.ogg'\
)
// Generic sounds for less special rooms.
#define AMBIENCE_GENERIC list(\
'sound/ambience/generic/generic1.ogg',\
'sound/ambience/generic/generic2.ogg',\
'sound/ambience/generic/generic3.ogg'\
)
// 'sound/ambience/generic/generic4.ogg'\
// Sounds of PA announcements, presumably involving shuttles?
#define AMBIENCE_ARRIVALS list(\
'sound/ambience/arrivals/arrivals1.ogg',\
'sound/ambience/arrivals/arrivals2.ogg',\
'sound/ambience/arrivals/arrivals3.ogg',\
'sound/ambience/arrivals/arrivals4.ogg',\
'sound/ambience/arrivals/arrivals5.ogg',\
'sound/ambience/arrivals/arrivals6.ogg',\
'sound/ambience/arrivals/arrivals7.ogg'\
)
// Sounds suitable for being inside dark, tight corridors in the underbelly of the station.
#define AMBIENCE_MAINTENANCE list(\
'sound/ambience/maintenance/maintenance1.ogg',\
'sound/ambience/maintenance/maintenance2.ogg',\
'sound/ambience/maintenance/maintenance3.ogg',\
'sound/ambience/maintenance/maintenance4.ogg',\
'sound/ambience/maintenance/maintenance5.ogg',\
'sound/ambience/maintenance/maintenance6.ogg',\
'sound/ambience/maintenance/maintenance7.ogg',\
'sound/ambience/maintenance/maintenance8.ogg',\
'sound/ambience/maintenance/maintenance9.ogg'\
)
// Life support machinery at work, keeping everyone breathing.
#define AMBIENCE_ENGINEERING list(\
'sound/ambience/engineering/engineering1.ogg',\
'sound/ambience/engineering/engineering2.ogg',\
'sound/ambience/engineering/engineering3.ogg'\
)
// Creepy AI/borg stuff.
#define AMBIENCE_AI list(\
'sound/ambience/ai/ai1.ogg',\
'sound/ambience/ai/ai2.ogg',\
'sound/ambience/ai/ai3.ogg'\
)
// Peaceful sounds when floating in the void.
#define AMBIENCE_SPACE list(\
'sound/ambience/space/space_serithi.ogg',\
'sound/ambience/space/space1.ogg'\
)
// Vaguely spooky sounds when around dead things.
#define AMBIENCE_GHOSTLY list(\
'sound/ambience/ghostly/ghostly1.ogg',\
'sound/ambience/ghostly/ghostly2.ogg'\
)
// Concerning sounds, for when one discovers something horrible happened in a PoI.
#define AMBIENCE_FOREBODING list(\
'sound/ambience/foreboding/foreboding1.ogg',\
'sound/ambience/foreboding/foreboding2.ogg',\
'sound/ambience/foreboding/foreboding3.ogg',\
'sound/ambience/foreboding/foreboding4.ogg',\
'sound/ambience/foreboding/foreboding5.ogg',\
'sound/ambience/foreboding/foreboding6.ogg'\
)
// Ambience heard when aboveground on Sif and not in a Point of Interest.
#define AMBIENCE_SIF list(\
'sound/ambience/sif/sif1.ogg'\
)
// If we ever add geothermal PoIs or other places that are really hot, this will do.
#define AMBIENCE_LAVA list(\
'sound/ambience/lava/lava1.ogg'\
)
// Cult-y ambience, for some PoIs, and maybe when the cultists darken the world with the ritual.
#define AMBIENCE_UNHOLY list(\
'sound/ambience/unholy/unholy1.ogg'\
)
// For the memes.
#define AMBIENCE_AESTHETIC list(\
'sound/ambience/vaporwave.ogg'\
)
#define AMBIENCE_OUTPOST list(\
'sound/ambience/expoutpost/expoutpost1.ogg',\
'sound/ambience/expoutpost/expoutpost2.ogg',\
'sound/ambience/expoutpost/expoutpost3.ogg',\
'sound/ambience/expoutpost/expoutpost4.ogg'\
)
#define AMBIENCE_SUBSTATION list(\
'sound/ambience/substation/substation1.ogg',\
'sound/ambience/substation/substation2.ogg'\
)
#define AMBIENCE_HANGAR list(\
'sound/ambience/hangar/hangar1.ogg',\
'sound/ambience/hangar/hangar2.ogg',\
'sound/ambience/hangar/hangar3.ogg',\
'sound/ambience/hangar/hangar4.ogg',\
'sound/ambience/hangar/hangar5.ogg',\
'sound/ambience/hangar/hangar6.ogg'\
)
#define AMBIENCE_ATMOS list(\
'sound/ambience/engineering/engineering1.ogg',\
'sound/ambience/engineering/engineering2.ogg',\
'sound/ambience/engineering/engineering3.ogg',\
'sound/ambience/atmospherics/atmospherics1.ogg'\
)
>>>>>>> dd01ae71ab... Merge pull request #9961 from VOREStation/upstream-merge-7976
+1 -1
View File
@@ -746,7 +746,7 @@ var/global/datum/controller/occupations/job_master
to_chat(C, "Your chosen spawnpoint ([spawnpos.display_name]) is unavailable for your chosen job. Spawning you at the Arrivals shuttle instead.")
var/spawning = pick(latejoin)
.["turf"] = get_turf(spawning)
.["msg"] = "will arrive at the station shortly" //VOREStation Edit - Grammar but mostly 'shuttle' reference removal, and this also applies to notified spawn-character verb use
.["msg"] = "will arrive at the station shortly"
else if(!fail_deadly)
var/spawning = pick(latejoin)
.["turf"] = get_turf(spawning)
@@ -46,7 +46,7 @@
starts_with = null
if(!opened) // if closed, any item at the crate's loc is put in the contents
if(istype(loc, /mob/living)) return //VOREStation Edit - No collecting mob organs if spawned inside mob
if(istype(loc, /mob/living)) return
var/obj/item/I
for(I in loc)
if(I.density || I.anchored || I == src) continue
+130
View File
@@ -324,6 +324,136 @@
"<span class='notice'>You make \the [I] kiss \the [src]!.</span>")
return ..()
<<<<<<< HEAD
||||||| parent of dd01ae71ab... Merge pull request #9961 from VOREStation/upstream-merge-7976
/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/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
//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)
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
>>>>>>> dd01ae71ab... Merge pull request #9961 from VOREStation/upstream-merge-7976
/obj/item/organ/external/head/skrell
eye_icon = "skrell_eyes_s"