Fixup wings and custom vorestation tails to the new update_icons() system.

Adjust taur suits.  Keep some job alt titles.
This commit is contained in:
Leshana
2018-03-16 00:46:10 -04:00
parent a0de41f24f
commit 5831a8705a
7 changed files with 84 additions and 41 deletions
+10 -1
View File
@@ -97,4 +97,13 @@
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi',
"Xenochimera" = 'icons/mob/species/tajaran/mask_vr.dmi'
)
//"Spider" = 'icons/mob/species/spider/mask_vr.dmi' Add this later when they have custom mask sprites and everything.
//"Spider" = 'icons/mob/species/spider/mask_vr.dmi' Add this later when they have custom mask sprites and everything.
// Taur suits need to be shifted so its centered on their taur half.
// TODO - Instead of just assuming this junk, shift some of the data onto the taur tail datum.
/obj/item/clothing/suit/make_worn_icon(var/body_type,var/slot_name,var/inhands,var/default_icon,var/default_layer = 0)
var/image/standing = ..()
if(icon_override && icon_override == 'icons/mob/taursuits_vr.dmi')
standing.pixel_x = -16
standing.layer = BODY_LAYER + 15 // 15 is above tail layer, so will not be covered by taurbody.
return standing
@@ -77,12 +77,10 @@
src << "<span class='warning'>You don't have a tail that supports this.</span>"
return 0
if(setting != null)
wagging = setting
else
wagging = !wagging
update_tail_showing()
var/new_wagging = isnull(setting) ? !wagging : setting
if(new_wagging != wagging)
wagging = new_wagging
update_tail_showing()
return 1
/mob/living/carbon/human/proc/toggle_wing_vr(var/setting,var/message = 0)
@@ -91,12 +89,10 @@
src << "<span class='warning'>You don't have a tail that supports this.</span>"
return 0
if(setting != null)
var/new_flapping = isnull(setting) ? !flapping : setting
if(new_flapping != flapping)
flapping = setting
else
flapping = !flapping
update_wing_showing()
update_wing_showing()
return 1
/mob/living/carbon/human/verb/toggle_gender_identity_vr()
@@ -121,6 +121,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
crash_with("CANARY: Old human update_icons_huds was called.")
/mob/living/carbon/human/update_transform()
/* VOREStation Edit START - TODO - Consider switching to icon_scale
// First, get the correct size.
var/desired_scale = icon_scale
@@ -129,6 +130,9 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
for(var/datum/modifier/M in modifiers)
if(!isnull(M.icon_scale_percent))
desired_scale *= M.icon_scale_percent
*/
var/desired_scale = size_multiplier
//VOREStation Edit End
// Regular stuff again.
var/matrix/M = matrix()
@@ -247,7 +251,12 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
icon_key += "[rgb(part.s_col[1],part.s_col[2],part.s_col[3])]"
if(part.body_hair && part.h_col && part.h_col.len >= 3)
icon_key += "[rgb(part.h_col[1],part.h_col[2],part.h_col[3])]"
icon_key += "[part.s_col_blend]"
//VOREStation Edit - Different way of tracking add/mult species
if(species.color_mult)
icon_key += "[ICON_MULTIPLY]"
else
icon_key += "[ICON_ADD]"
//VOREStation Edit End
else
icon_key += "#000000"
for(var/M in part.markings)
@@ -321,6 +330,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
//tail
update_tail_showing()
update_wing_showing() // VOREStation Edit
/mob/living/carbon/human/proc/update_skin()
if(QDESTROYING(src))
@@ -403,7 +413,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
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)
facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_MULTIPLY) //VOREStation edit
face_standing.Blend(facial_s, ICON_OVERLAY)
@@ -418,6 +428,12 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
face_standing.Blend(hair_s, ICON_OVERLAY)
// VOREStation Edit - START
var/icon/ears_s = get_ears_overlay()
if (ears_s)
face_standing.Blend(ears_s, ICON_OVERLAY)
// VOREStation Edit - END
if(head_organ.nonsolid)
face_standing += rgb(,,,120)
@@ -708,6 +724,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
update_inv_w_uniform()
update_inv_shoes()
update_tail_showing()
update_wing_showing() // VOREStation Edit
if(!wear_suit)
return //No point, no suit.
@@ -757,6 +774,9 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
//update whether handcuffs appears on our hud.
/mob/living/carbon/proc/update_hud_handcuffed()
if(QDESTROYING(src))
return
if(hud_used && hud_used.l_hand_hud_object && hud_used.r_hand_hud_object)
hud_used.l_hand_hud_object.update_icon()
hud_used.r_hand_hud_object.update_icon()
@@ -819,6 +839,16 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
return
remove_layer(TAIL_LAYER)
// VOREStation Edit - START
var/image/vr_tail_image = get_tail_image()
if(vr_tail_image)
vr_tail_image.layer = BODY_LAYER+TAIL_LAYER
overlays_standing[TAIL_LAYER] = vr_tail_image
apply_layer(TAIL_LAYER)
return
// VOREStation Edit - END
var/species_tail = species.get_tail(src) // Species tail icon_state prefix.
//This one is actually not that bad I guess.
@@ -834,9 +864,10 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
if(!tail_icon)
//generate a new one
var/species_tail_anim = species.get_tail_animation(src)
if(!species_tail_anim && species.icobase_tail) species_tail_anim = species.icobase //VOREStation Code - Allow override of file for non-animated tails
if(!species_tail_anim) species_tail_anim = 'icons/effects/species.dmi'
tail_icon = new/icon(species_tail_anim)
tail_icon.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD)
tail_icon.Blend(rgb(r_skin, g_skin, b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD) // VOREStation edit
// The following will not work with animated tails.
var/use_species_tail = species.get_tail_hair(src)
if(use_species_tail)
@@ -900,6 +931,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
set_tail_state("[species.get_tail(src)]_idle[rand(0,9)]")
else
set_tail_state("[species.get_tail(src)]_static")
toggle_tail_vr(FALSE) //VOREStation Add - So tails stop when someone dies. TODO - Fix this hack ~Leshana
/mob/living/carbon/human/proc/animate_tail_stop()
if(QDESTROYING(src))
@@ -907,6 +939,20 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
set_tail_state("[species.get_tail(src)]_static")
// VOREStation Edit - Wings! See update_icons_vr.dm for more wing procs
/mob/living/carbon/human/proc/update_wing_showing()
if(QDESTROYING(src))
return
remove_layer(SUIT_LAYER)
var/image/vr_wing_image = get_wing_image()
if(vr_wing_image)
vr_wing_image = BODY_LAYER+WING_LAYER
overlays_standing[WING_LAYER] = vr_wing_image
apply_layer(WING_LAYER)
// VOREStation Edit end
/mob/living/carbon/human/update_modifier_visuals()
if(QDESTROYING(src))
return
@@ -1,3 +1,4 @@
// WARNING - UNUSED PROC
/mob/living/carbon/human/proc/get_wing_icon()
if(QDESTROYING(src))
return
@@ -24,6 +25,7 @@
return wing_icon
// WARNING - UNUSED PROC
/mob/living/carbon/human/proc/set_wing_state(var/t_state)
if(QDESTROYING(src))
return
@@ -35,23 +37,19 @@
return wing_overlay
return null
// WARNING - UNUSED PROC
/mob/living/carbon/human/proc/animate_wing_reset(var/update_icons=1)
if(QDESTROYING(src))
return
if(stat != DEAD)
set_wing_state("[species.get_wing(src)]_idle[rand(0,9)]")
else
set_wing_state("[species.get_wing(src)]_static")
toggle_wing_vr(0)
if(update_icons)
update_icons_layers()
toggle_wing_vr(FALSE)
/mob/living/carbon/human/proc/get_wing_image()
if(QDESTROYING(src))
return
//If you are FBP with tail style and didn't set a custom one
//If you are FBP with wing style and didn't set a custom one
if(synthetic && synthetic.includes_wing && !wing_style)
var/icon/wing_s = new/icon("icon" = synthetic.icon, "icon_state" = "wing") //I dunno. If synths have some custom wing?
wing_s.Blend(rgb(src.r_skin, src.g_skin, src.b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD)
@@ -67,23 +65,14 @@
return image(wing_s)
return null
/mob/living/carbon/human/proc/update_wing_showing(var/update_icons=1)
// TODO - Move this to where it should go ~Leshana
/mob/proc/stop_flying()
if(QDESTROYING(src))
return
flying = FALSE
return 1
overlays_standing[WING_LAYER] = null
overlays_standing[WING_LAYER] = get_wing_image()
if(overlays_standing[WING_LAYER])
if(update_icons)
update_icons_layers()
return
/mob/proc/stop_flying(var/update_icons=1)
if(QDESTROYING(src))
return
flying = 0
if(update_icons)
update_icons_layers()
/mob/living/carbon/human/stop_flying()
if((. = ..()))
update_wing_showing()
@@ -24,7 +24,7 @@
var/r_tail2 = 30
var/g_tail2 = 30
var/b_tail2 = 30
var/datum/sprite_accessory/tail/wing_style = null
var/datum/sprite_accessory/wing/wing_style = null
var/r_wing = 30
var/g_wing = 30
var/b_wing = 30
@@ -360,7 +360,7 @@
var/color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1
var/extra_overlay // Icon state of an additional overlay to blend in.
var/clothing_can_hide = 1 // If true, clothing with HIDETAIL hides it. If the clothing is bulky enough to hide a tail, it should also hide wings.
var/show_species_tail = 1 // Just so
// var/show_species_tail = 1 // Just so // TODO - Seems not needed ~Leshana
var/desc = "You should not see this..."
var/ani_state // State when flapping/animated
var/extra_overlay_w // Flapping state for extra overlay