Merge pull request #1905 from Verkister/blehh

It's the char setup update. (Wouldn't let me reopen the original PR after some explosive shenanigans)
This commit is contained in:
Spades
2017-07-25 23:34:18 -04:00
committed by GitHub
19 changed files with 373 additions and 8 deletions

View File

@@ -7,10 +7,16 @@
// Define a place to save appearance in character setup
/datum/preferences
var/ear_style // Type of selected ear style
var/red_ear = 30 // Ear color. Goddarn dupe var names.
var/g_ear = 30 // Ear color
var/b_ear = 30 // Ear color
var/tail_style // Type of selected tail style
var/r_tail = 30 // Tail/Taur color
var/g_tail = 30 // Tail/Taur color
var/b_tail = 30 // Tail/Taur color
var/r_tail2 = 30 // For extra overlay.
var/g_tail2 = 30 // For extra overlay.
var/b_tail2 = 30 // For extra overlay.
var/dress_mob = TRUE
// Definition of the stuff for Ears
@@ -20,22 +26,40 @@
/datum/category_item/player_setup_item/vore/ears/load_character(var/savefile/S)
S["ear_style"] >> pref.ear_style
S["red_ear"] >> pref.red_ear
S["g_ear"] >> pref.g_ear
S["b_ear"] >> pref.b_ear
S["tail_style"] >> pref.tail_style
S["r_tail"] >> pref.r_tail
S["g_tail"] >> pref.g_tail
S["b_tail"] >> pref.b_tail
S["r_tail2"] >> pref.r_tail2
S["g_tail2"] >> pref.g_tail2
S["b_tail2"] >> pref.b_tail2
/datum/category_item/player_setup_item/vore/ears/save_character(var/savefile/S)
S["ear_style"] << pref.ear_style
S["red_ear"] << pref.red_ear
S["g_ear"] << pref.g_ear
S["b_ear"] << pref.b_ear
S["tail_style"] << pref.tail_style
S["r_tail"] << pref.r_tail
S["g_tail"] << pref.g_tail
S["b_tail"] << pref.b_tail
S["r_tail2"] << pref.r_tail2
S["g_tail2"] << pref.g_tail2
S["b_tail2"] << pref.b_tail2
/datum/category_item/player_setup_item/vore/ears/sanitize_character()
pref.red_ear = sanitize_integer(pref.red_ear, 0, 255, initial(pref.red_ear))
pref.g_ear = sanitize_integer(pref.g_ear, 0, 255, initial(pref.g_ear))
pref.b_ear = sanitize_integer(pref.b_ear, 0, 255, initial(pref.b_ear))
pref.r_tail = sanitize_integer(pref.r_tail, 0, 255, initial(pref.r_tail))
pref.g_tail = sanitize_integer(pref.g_tail, 0, 255, initial(pref.g_tail))
pref.b_tail = sanitize_integer(pref.b_tail, 0, 255, initial(pref.b_tail))
pref.r_tail2 = sanitize_integer(pref.r_tail2, 0, 255, initial(pref.r_tail2))
pref.g_tail2 = sanitize_integer(pref.g_tail2, 0, 255, initial(pref.g_tail2))
pref.b_tail2 = sanitize_integer(pref.b_tail2, 0, 255, initial(pref.b_tail2))
if(pref.ear_style)
pref.ear_style = sanitize_inlist(pref.ear_style, ear_styles_list, initial(pref.ear_style))
if(pref.tail_style)
@@ -43,10 +67,16 @@
/datum/category_item/player_setup_item/vore/ears/copy_to_mob(var/mob/living/carbon/human/character)
character.ear_style = ear_styles_list[pref.ear_style]
character.red_ear = pref.red_ear
character.b_ear = pref.b_ear
character.g_ear = pref.g_ear
character.tail_style = tail_styles_list[pref.tail_style]
character.r_tail = pref.r_tail
character.b_tail = pref.b_tail
character.g_tail = pref.g_tail
character.r_tail2 = pref.r_tail2
character.b_tail2 = pref.b_tail2
character.g_tail2 = pref.g_tail2
/datum/category_item/player_setup_item/vore/ears/content(var/mob/user)
. += "<h2>VORE Station Settings</h2>"
@@ -63,10 +93,15 @@
if(pref.ear_style && (pref.ear_style in ear_styles_list))
var/datum/sprite_accessory/ears/instance = ear_styles_list[pref.ear_style]
ear_display = instance.name
else if(pref.ear_style)
ear_display = "REQUIRES UPDATE"
. += "<b>Ears</b><br>"
. += " Style: <a href='?src=\ref[src];ear_style=1'>[ear_display]</a><br>"
if(ear_styles_list[pref.ear_style])
var/datum/sprite_accessory/ears/ear = ear_styles_list[pref.ear_style]
if (ear.do_colouration)
. += "<a href='?src=\ref[src];ear_color=1'>Change Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.red_ear, 2)][num2hex(pref.g_ear, 2)][num2hex(pref.b_ear, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.red_ear, 2)][num2hex(pref.g_ear, 2)][num2hex(pref.b_ear)]'><tr><td>__</td></tr></table> </font><br>"
var/tail_display = "Normal"
if(pref.tail_style && (pref.tail_style in tail_styles_list))
@@ -81,6 +116,8 @@
var/datum/sprite_accessory/tail/T = tail_styles_list[pref.tail_style]
if (T.do_colouration)
. += "<a href='?src=\ref[src];tail_color=1'>Change Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_tail, 2)][num2hex(pref.g_tail, 2)][num2hex(pref.b_tail, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_tail, 2)][num2hex(pref.g_tail, 2)][num2hex(pref.b_tail)]'><tr><td>__</td></tr></table> </font><br>"
if (T.extra_overlay)
. += "<a href='?src=\ref[src];tail_color2=1'>Change Secondary Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_tail2, 2)][num2hex(pref.g_tail2, 2)][num2hex(pref.b_tail2, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_tail2, 2)][num2hex(pref.g_tail2, 2)][num2hex(pref.b_tail2)]'><tr><td>__</td></tr></table> </font><br>"
/datum/category_item/player_setup_item/vore/ears/OnTopic(var/href,var/list/href_list, var/mob/user)
if(!CanUseTopic(user))
@@ -100,6 +137,15 @@
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["ear_color"])
var/new_earc = input(user, "Choose your character's ear colour:", "Character Preference",
rgb(pref.red_ear, pref.g_ear, pref.b_ear)) as color|null
if(new_earc)
pref.red_ear = hex2num(copytext(new_earc, 2, 4))
pref.g_ear = hex2num(copytext(new_earc, 4, 6))
pref.b_ear = hex2num(copytext(new_earc, 6, 8))
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["tail_style"])
// Construct the list of names allowed for this user.
var/list/pretty_tail_styles = list("Normal" = null)
@@ -123,6 +169,15 @@
pref.b_tail = hex2num(copytext(new_tailc, 6, 8))
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["tail_color2"])
var/new_tailc2 = input(user, "Choose your character's secondary tail/taur colour:", "Character Preference",
rgb(pref.r_tail2, pref.g_tail2, pref.b_tail2)) as color|null
if(new_tailc2)
pref.r_tail2 = hex2num(copytext(new_tailc2, 2, 4))
pref.g_tail2 = hex2num(copytext(new_tailc2, 4, 6))
pref.b_tail2 = hex2num(copytext(new_tailc2, 6, 8))
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["toggle_clothing"])
pref.dress_mob = !pref.dress_mob
return TOPIC_REFRESH_UPDATE_PREVIEW

View File

@@ -1 +1,23 @@
//File isn't currently being used.
//File isn't currently being used.
//It is now.
/datum/preferences/update_preview_icon() // Lines up and un-overlaps character edit previews. Also un-splits taurs.
var/mob/living/carbon/human/dummy/mannequin/mannequin = get_mannequin(client_ckey)
mannequin.delete_inventory(TRUE)
dress_preview_mob(mannequin)
preview_icon = icon('icons/effects/effects.dmi', "nothing")
preview_icon.Scale(64+64, 16+32)
mannequin.dir = NORTH
var/icon/stamp = getFlatIcon(mannequin)
preview_icon.Blend(stamp, ICON_OVERLAY, 49, 9)
mannequin.dir = WEST
stamp = getFlatIcon(mannequin)
preview_icon.Blend(stamp, ICON_OVERLAY, 1, 9)
mannequin.dir = SOUTH
stamp = getFlatIcon(mannequin)
preview_icon.Blend(stamp, ICON_OVERLAY, 83, 9)
preview_icon.Scale(preview_icon.Width() * 2, preview_icon.Height() * 2) // Scaling here to prevent blurring in the browser.

View File

@@ -44,6 +44,20 @@
"Your overheated skin itches."
)
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_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),
BP_R_LEG = list("path" = /obj/item/organ/external/leg/right),
BP_L_HAND = list("path" = /obj/item/organ/external/hand),
BP_R_HAND = list("path" = /obj/item/organ/external/hand/right),
BP_L_FOOT = list("path" = /obj/item/organ/external/foot),
BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right)
)
/datum/species/akula
name = "Akula"
name_plural = "Akula"
@@ -133,7 +147,7 @@
/datum/species/hi_zoxxen
name = "Highlander Zorren"
name_plural = "Zorren"
icobase = 'icons/mob/human_races/r_fox.dmi'
icobase = 'icons/mob/human_races/r_fox_vr.dmi'
deform = 'icons/mob/human_races/r_def_fox.dmi'
tail = "tail"
icobase_tail = 1
@@ -170,7 +184,7 @@
/datum/species/fl_zorren
name = "Flatland Zorren"
name_plural = "Zorren"
icobase = 'icons/mob/human_races/r_fennec.dmi'
icobase = 'icons/mob/human_races/r_fennec_vr.dmi'
deform = 'icons/mob/human_races/r_def_fennec.dmi'
tail = "tail"
icobase_tail = 1

View File

@@ -43,6 +43,11 @@
gender = MALE
species_allowed = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Xenochimera", "Xenomorph Hybrid") //Lets all the races be bald if they want.
ponytail6_fixed //Eggnerd's done with waiting for upstream fixes lmao.
name = "Ponytail 6 but fixed"
icon = 'icons/mob/human_face_vr.dmi'
icon_state = "hair_ponytail6"
species_allowed = list("Human","Skrell","Unathi","Tajara", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Xenochimera", "Xenomorph Hybrid")
una_hood
name = "Cobra Hood"
@@ -469,3 +474,122 @@
name = "Tusks"
icon_state = "tusks"
body_parts = list(BP_HEAD)
otie_face
name = "Otie face"
icon_state = "otieface"
body_parts = list(BP_HEAD)
otie_nose
name = "Otie nose"
icon_state = "otie_nose"
body_parts = list(BP_HEAD)
backstripes
name = "Back stripes"
icon_state = "otiestripes"
body_parts = list(BP_TORSO,BP_HEAD)
belly_butt
name = "Belly and butt"
icon_state = "bellyandbutt"
body_parts = list(BP_GROIN,BP_TORSO)
fingers_toes
name = "Fingers and toes"
icon_state = "fingerstoes"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)
otie_socks
name = "Fingerless socks"
icon_state = "otiesocks"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
corvid_beak
name = "Corvid beak"
icon_state = "corvidbeak"
body_parts = list(BP_HEAD)
corvid_belly
name = "Corvid belly"
icon_state = "corvidbelly"
body_parts = list(BP_GROIN,BP_TORSO,BP_HEAD)
cow_body
name = "Cow markings"
icon_state = "cowbody"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
cow_nose
name = "Cow nose"
icon_state = "cownose"
body_parts = list(BP_HEAD)
zmask
name = "Eye mask"
icon_state = "zmask"
body_parts = list(BP_HEAD)
zbody
name = "Thick jagged stripes"
icon_state = "zbody"
body_parts = list(BP_L_LEG,BP_R_LEG,BP_GROIN,BP_TORSO)
znose
name = "Jagged snout"
icon_state = "znose"
body_parts = list(BP_HEAD)
zorren_belly_male
name = "Zorren Male Torso"
icon_state = "zorren_belly"
body_parts = list(BP_TORSO,BP_GROIN)
zorren_belly_female
name = "Zorren Female Torso"
icon_state = "zorren_belly_female"
body_parts = list(BP_TORSO,BP_GROIN)
zorren_back_patch
name = "Zorren Back Patch"
icon_state = "zorren_backpatch"
body_parts = list(BP_TORSO)
zorren_face_male
name = "Zorren Male Face"
icon_state = "zorren_face"
body_parts = list(BP_HEAD)
gender = MALE
zorren_face_female
name = "Zorren Female Face"
icon_state = "zorren_face_female"
body_parts = list(BP_HEAD)
gender = FEMALE
zorren_muzzle_male
name = "Zorren Male Muzzle"
icon_state = "zorren_muzzle"
body_parts = list(BP_HEAD)
gender = MALE
zorren_muzzle_female
name = "Zorren Female Muzzle"
icon_state = "zorren_muzzle_female"
body_parts = list(BP_HEAD)
gender = FEMALE
zorren_socks
name = "Zorren Socks"
icon_state = "zorren_socks"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
zorren_longsocks
name = "Zorren Longsocks"
icon_state = "zorren_longsocks"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
tesh_feathers
name = "Teshari Feathers"
icon_state = "tesh-feathers"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)

View File

@@ -0,0 +1,58 @@
//For custom heads with custom parts since the base code is restricted to a single icon file.
/obj/item/organ/external/head/vr/get_icon()
..()
overlays.Cut()
if(!owner || !owner.species)
return
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"], ICON_ADD)
overlays |= 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_vr, eye_icon_vr)
if(eyes)
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(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)
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 |= facial_s
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)
overlays |= hair_s
return mob_icon
/obj/item/organ/external/head/vr
var/eye_icons_vr = 'icons/mob/human_face_vr.dmi'
var/eye_icon_vr = "blank_eyes"
eye_icon = "blank_eyes"
/obj/item/organ/external/head/vr/sergal
eye_icon_vr = "eyes_sergal"

View File

@@ -11,10 +11,16 @@
// Horray Furries!
var/datum/sprite_accessory/ears/ear_style = null
var/red_ear = 30
var/g_ear = 30
var/b_ear = 30
var/datum/sprite_accessory/tail/tail_style = null
var/r_tail = 30
var/g_tail = 30
var/b_tail = 30
var/r_tail2 = 30
var/g_tail2 = 30
var/b_tail2 = 30
// Custom Species Name
var/custom_species

View File

@@ -176,6 +176,35 @@
desc = ""
icon_state = "antlers"
/datum/sprite_accessory/ears/otie
name = "otie, colorable"
desc = ""
icon_state = "otie"
do_colouration = 1
/datum/sprite_accessory/ears/cow
name = "cow, horns"
desc = ""
icon_state = "cow"
/datum/sprite_accessory/ears/cowc
name = "cow, horns, colorable"
desc = ""
icon_state = "cow-c"
do_colouration = 1
/datum/sprite_accessory/ears/zears
name = "jagged ears"
desc = ""
icon_state = "zears"
do_colouration = 1
/datum/sprite_accessory/ears/elfs
name = "elven ears"
desc = ""
icon_state = "elfs"
do_colouration = 1
// Special snowflake ears go below here.
/datum/sprite_accessory/ears/molenar_kitsune
@@ -261,7 +290,8 @@
var/show_species_tail = 0 // If false, do not render species' tail.
var/clothing_can_hide = 1 // If true, clothing with HIDETAIL hides it
var/desc = "You should not see this..."
var/ani_state //State when wagging/animated
var/ani_state // State when wagging/animated
var/extra_overlay_w // Wagging state for extra overlay
/datum/sprite_accessory/tail/invisible
name = "hide species-sprite tail"
@@ -315,6 +345,7 @@
desc = ""
icon_state = "stripeytail"
do_colouration = 1
extra_overlay = "stripeytail_mark"
/datum/sprite_accessory/tail/stripeytail_brown
name = "stripey taj, brown"
@@ -636,6 +667,7 @@
desc = ""
icon_state = "ringtail"
do_colouration = 1
extra_overlay = "ringtail_mark"
/datum/sprite_accessory/tail/holly
name = "tigress tail (Holly)"
@@ -656,6 +688,8 @@
icon_state = "curltail"
ani_state = "curltail_w"
do_colouration = 1
extra_overlay = "curltail_mark"
extra_overlay_w = "curltail_mark_w"
/datum/sprite_accessory/tail/shorttail
name = "shorttail (vwag)"
@@ -670,6 +704,8 @@
icon_state = "tigertail"
ani_state = "tigertail_w"
do_colouration = 1
extra_overlay = "tigertail_mark"
extra_overlay_w = "tigertail_mark_w"
/datum/sprite_accessory/tail/vulp_new
name = "new vulp tail (vwag)"
@@ -677,6 +713,21 @@
icon_state = "vulptail"
ani_state = "vulptail_w"
do_colouration = 1
extra_overlay = "vulptail_mark"
extra_overlay_w = "vulptail_mark_w"
/datum/sprite_accessory/tail/otietail
name = "otie tail (vwag)"
desc = ""
icon_state = "otie"
ani_state = "otie_w"
do_colouration = 1
/datum/sprite_accessory/tail/ztail
name = "jagged flufftail"
desc = ""
icon_state = "ztail"
do_colouration = 1
/datum/sprite_accessory/tail/shock
name = "pharoah hound tail (Shock Diamond)"
@@ -690,7 +741,6 @@
icon_state = "snaketail"
do_colouration = 1
//For all species tails. Includes haircolored tails.
/datum/sprite_accessory/tail/special
name = "Blank tail. Do not select."
@@ -883,10 +933,20 @@
name = "Wolf"
icon_state = "wolf_s"
/datum/sprite_accessory/tail/taur/wolf/wolf_2c
name = "Wolf dual-color"
icon_state = "wolf_s"
extra_overlay = "wolf_markings"
/datum/sprite_accessory/tail/taur/naga
name = "Naga"
icon_state = "naga_s"
/datum/sprite_accessory/tail/taur/naga/naga_2c
name = "Naga dual-color"
icon_state = "naga_s"
extra_overlay = "naga_markings"
/datum/sprite_accessory/tail/taur/horse
name = "Horse"
icon_state = "horse_s"
@@ -899,6 +959,11 @@
name = "Lizard"
icon_state = "lizard_s"
/datum/sprite_accessory/tail/taur/lizard/lizard_2c
name = "Lizard dual-color"
icon_state = "lizard_s"
extra_overlay = "lizard_markings"
/datum/sprite_accessory/tail/taur/spider
name = "Spider"
icon_state = "spider_s"
@@ -911,10 +976,23 @@
name = "Feline"
icon_state = "feline_s"
/datum/sprite_accessory/tail/taur/feline/feline_2c
name = "Feline dual-color"
icon_state = "feline_s"
extra_overlay = "feline_markings"
/datum/sprite_accessory/tail/taur/slug
name = "Slug"
icon_state = "slug_s"
/*/datum/sprite_accessory/tail/taur/drake //Yeah hold that thought for a bit. These got no suit compatibility yet.
name = "Drake"
icon_state = "drake_s"
/datum/sprite_accessory/tail/taur/otie
name = "Otie"
icon_state = "otie_s"*/
//wickedtemp: Chakat Tempest
/datum/sprite_accessory/tail/taur/feline/tempest
name = "Feline (wickedtemp)"

View File

@@ -5,7 +5,7 @@
if(ear_style && !(head && (head.flags_inv & BLOCKHEADHAIR)))
var/icon/ears_s = new/icon("icon" = ear_style.icon, "icon_state" = ear_style.icon_state)
if(ear_style.do_colouration)
ears_s.Blend(rgb(src.r_hair, src.g_hair, src.b_hair), ear_style.color_blend_mode)
ears_s.Blend(rgb(src.red_ear, src.g_ear, src.b_ear), ear_style.color_blend_mode)
if(ear_style.extra_overlay)
var/icon/overlay = new/icon("icon" = ear_style.icon, "icon_state" = ear_style.extra_overlay)
ears_s.Blend(overlay, ICON_OVERLAY)
@@ -27,8 +27,15 @@
tail_s.Blend(rgb(src.r_tail, src.g_tail, src.b_tail), tail_style.color_blend_mode)
if(tail_style.extra_overlay)
var/icon/overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay)
tail_s.Blend(overlay, ICON_OVERLAY)
qdel(overlay)
if(wagging && tail_style.ani_state)
overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay_w)
overlay.Blend(rgb(src.r_tail2, src.g_tail2, src.b_tail2), tail_style.color_blend_mode)
tail_s.Blend(overlay, ICON_OVERLAY)
qdel(overlay)
else
overlay.Blend(rgb(src.r_tail2, src.g_tail2, src.b_tail2), tail_style.color_blend_mode)
tail_s.Blend(overlay, ICON_OVERLAY)
qdel(overlay)
if(isTaurTail(tail_style))
return image(tail_s, "pixel_x" = -16)