mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
Merge pull request #3184 from ParadiseSS13/revert-3166-Tail-Fix
Revert "Fixes Tails Overlaying Arms"
This commit is contained in:
@@ -106,35 +106,33 @@ Please contact me on #coderbus IRC. ~Carn x
|
||||
|
||||
//Human Overlays Indexes/////////
|
||||
#define MUTANTRACE_LAYER 1
|
||||
#define TAIL_UNDERLIMBS_LAYER 2
|
||||
#define LIMBS_LAYER 3
|
||||
#define MARKINGS_LAYER 4
|
||||
#define MUTATIONS_LAYER 5
|
||||
#define DAMAGE_LAYER 6
|
||||
#define UNIFORM_LAYER 7
|
||||
#define ID_LAYER 8
|
||||
#define SHOES_LAYER 9
|
||||
#define GLOVES_LAYER 10
|
||||
#define EARS_LAYER 11
|
||||
#define SUIT_LAYER 12
|
||||
#define GLASSES_LAYER 13
|
||||
#define BELT_LAYER 14 //Possible make this an overlay of somethign required to wear a belt?
|
||||
#define TAIL_LAYER 15 //bs12 specific. this hack is probably gonna come back to haunt me
|
||||
#define SUIT_STORE_LAYER 16
|
||||
#define BACK_LAYER 17
|
||||
#define HAIR_LAYER 18 //TODO: make part of head layer?
|
||||
#define HEAD_ACCESSORY_LAYER 19
|
||||
#define FHAIR_LAYER 20
|
||||
#define FACEMASK_LAYER 21
|
||||
#define HEAD_LAYER 22
|
||||
#define COLLAR_LAYER 23
|
||||
#define HANDCUFF_LAYER 24
|
||||
#define LEGCUFF_LAYER 25
|
||||
#define L_HAND_LAYER 26
|
||||
#define R_HAND_LAYER 27
|
||||
#define TARGETED_LAYER 28 //BS12: Layer for the target overlay from weapon targeting system
|
||||
#define FIRE_LAYER 29 //If you're on fire
|
||||
#define TOTAL_LAYERS 29
|
||||
#define MARKINGS_LAYER 2
|
||||
#define MUTATIONS_LAYER 3
|
||||
#define DAMAGE_LAYER 4
|
||||
#define UNIFORM_LAYER 5
|
||||
#define ID_LAYER 6
|
||||
#define SHOES_LAYER 7
|
||||
#define GLOVES_LAYER 8
|
||||
#define EARS_LAYER 9
|
||||
#define SUIT_LAYER 10
|
||||
#define GLASSES_LAYER 11
|
||||
#define BELT_LAYER 12 //Possible make this an overlay of somethign required to wear a belt?
|
||||
#define TAIL_LAYER 13 //bs12 specific. this hack is probably gonna come back to haunt me
|
||||
#define SUIT_STORE_LAYER 14
|
||||
#define BACK_LAYER 15
|
||||
#define HAIR_LAYER 16 //TODO: make part of head layer?
|
||||
#define HEAD_ACCESSORY_LAYER 17
|
||||
#define FHAIR_LAYER 18
|
||||
#define FACEMASK_LAYER 19
|
||||
#define HEAD_LAYER 20
|
||||
#define COLLAR_LAYER 21
|
||||
#define HANDCUFF_LAYER 22
|
||||
#define LEGCUFF_LAYER 23
|
||||
#define L_HAND_LAYER 24
|
||||
#define R_HAND_LAYER 25
|
||||
#define TARGETED_LAYER 26 //BS12: Layer for the target overlay from weapon targeting system
|
||||
#define FIRE_LAYER 27 //If you're on fire
|
||||
#define TOTAL_LAYERS 27
|
||||
|
||||
|
||||
|
||||
@@ -298,7 +296,6 @@ var/global/list/damage_icon_parts = list()
|
||||
if(!(part.icon_position & RIGHT))
|
||||
temp2.Insert(new/icon(temp,dir=WEST),dir=WEST)
|
||||
base_icon.Blend(temp2, ICON_OVERLAY)
|
||||
overlays_standing[LIMBS_LAYER] = image(base_icon) // Diverts limbs to their own layer so they can overlay things (i.e. tails).
|
||||
if(part.icon_position & LEFT)
|
||||
temp2.Insert(new/icon(temp,dir=EAST),dir=EAST)
|
||||
if(part.icon_position & RIGHT)
|
||||
@@ -1012,26 +1009,14 @@ var/global/list/damage_icon_parts = list()
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/update_tail_layer(var/update_icons=1)
|
||||
overlays_standing[TAIL_UNDERLIMBS_LAYER] = null // NSEW direction icons, overlayed by LIMBS_LAYER
|
||||
overlays_standing[TAIL_LAYER] = null // Only N direction icon so tails can still appear on the outside of uniforms and such.
|
||||
overlays_standing[TAIL_LAYER] = null
|
||||
|
||||
if(body_accessory)
|
||||
if(body_accessory.try_restrictions(src))
|
||||
var/icon/accessory_s = new/icon("icon" = body_accessory.icon, "icon_state" = body_accessory.icon_state)
|
||||
accessory_s.Blend(rgb(r_skin, g_skin, b_skin), body_accessory.blend_mode)
|
||||
|
||||
// Gives the underlimbs layer NSEW direction icons since it's overlayed by limbs and just about everything else anyway.
|
||||
// No special treatment.
|
||||
overlays_standing[TAIL_UNDERLIMBS_LAYER] = image(accessory_s, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset)
|
||||
|
||||
// Creates a blank icon, and copies accessory_s' north direction sprite into it
|
||||
// before passing that to the tail layer that overlays uniforms and such.
|
||||
for(var/obj/item/organ/external/part in organs)
|
||||
var/icon/temp = accessory_s
|
||||
if(part.icon_position&(NORTH))
|
||||
var/icon/temp2 = new('icons/mob/human.dmi',"blank")
|
||||
temp2.Insert(new/icon(temp,dir=NORTH),dir=NORTH)
|
||||
overlays_standing[TAIL_LAYER] = image(temp2, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset)
|
||||
overlays_standing[TAIL_LAYER] = image(accessory_s, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset)
|
||||
|
||||
|
||||
else if(species.tail && species.bodyflags & HAS_TAIL) //no tailless tajaran
|
||||
@@ -1039,61 +1024,26 @@ var/global/list/damage_icon_parts = list()
|
||||
var/icon/tail_s = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.tail]_s")
|
||||
tail_s.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD)
|
||||
|
||||
// Gives the underlimbs layer NSEW direction icons since it's overlayed by limbs and just about everything else anyway.
|
||||
// No special treatment.
|
||||
overlays_standing[TAIL_UNDERLIMBS_LAYER] = image(tail_s)
|
||||
|
||||
// Creates a blank icon, and copies accessory_s' north direction sprite into it
|
||||
// before passing that to the tail layer that overlays uniforms and such.
|
||||
for(var/obj/item/organ/external/part in organs)
|
||||
var/icon/temp = tail_s
|
||||
if(part.icon_position&(NORTH))
|
||||
var/icon/temp2 = new('icons/mob/human.dmi',"blank")
|
||||
temp2.Insert(new/icon(temp,dir=NORTH),dir=NORTH)
|
||||
overlays_standing[TAIL_LAYER] = image(temp2)
|
||||
overlays_standing[TAIL_LAYER] = image(tail_s)
|
||||
|
||||
if(update_icons)
|
||||
update_icons()
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/start_tail_wagging(var/update_icons=1)
|
||||
overlays_standing[TAIL_UNDERLIMBS_LAYER] = null // NSEW direction icons, overlayed by LIMBS_LAYER
|
||||
overlays_standing[TAIL_LAYER] = null // Only N direction icon so tails can still appear on the outside of uniforms and such.
|
||||
overlays_standing[TAIL_LAYER] = null
|
||||
|
||||
if(body_accessory)
|
||||
var/icon/accessory_s = new/icon("icon" = body_accessory.get_animated_icon(), "icon_state" = body_accessory.get_animated_icon_state())
|
||||
accessory_s.Blend(rgb(r_skin, g_skin, b_skin), body_accessory.blend_mode)
|
||||
|
||||
// Gives the underlimbs layer NSEW direction icons since it's overlayed by limbs and just about everything else anyway.
|
||||
// No special treatment.
|
||||
overlays_standing[TAIL_UNDERLIMBS_LAYER] = image(accessory_s, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset)
|
||||
|
||||
// Creates a blank icon, and copies accessory_s' north direction sprite into it
|
||||
// before passing that to the tail layer that overlays uniforms and such.
|
||||
for(var/obj/item/organ/external/part in organs)
|
||||
var/icon/temp = accessory_s
|
||||
if(part.icon_position&(NORTH))
|
||||
var/icon/temp2 = new('icons/mob/human.dmi',"blank")
|
||||
temp2.Insert(new/icon(temp,dir=NORTH),dir=NORTH)
|
||||
overlays_standing[TAIL_LAYER] = image(temp2, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset)
|
||||
overlays_standing[TAIL_LAYER] = image(accessory_s, "pixel_x" = body_accessory.pixel_x_offset, "pixel_y" = body_accessory.pixel_y_offset)
|
||||
|
||||
else if(species.tail && species.bodyflags & HAS_TAIL)
|
||||
var/icon/tailw_s = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.tail]w_s")
|
||||
tailw_s.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD)
|
||||
|
||||
|
||||
// Gives the underlimbs layer NSEW direction icons since it's overlayed by limbs and just about everything else anyway.
|
||||
// No special treatment.
|
||||
overlays_standing[TAIL_UNDERLIMBS_LAYER] = image(tailw_s)
|
||||
|
||||
// Creates a blank icon, and copies accessory_s' north direction sprite into it
|
||||
// before passing that to the tail layer that overlays uniforms and such.
|
||||
for(var/obj/item/organ/external/part in organs)
|
||||
var/icon/temp = tailw_s
|
||||
if(part.icon_position&(NORTH))
|
||||
var/icon/temp2 = new('icons/mob/human.dmi',"blank")
|
||||
temp2.Insert(new/icon(temp,dir=NORTH),dir=NORTH)
|
||||
overlays_standing[TAIL_LAYER] = image(temp2)
|
||||
overlays_standing[TAIL_LAYER] = image(tailw_s)
|
||||
|
||||
if(update_icons)
|
||||
update_icons()
|
||||
@@ -1164,8 +1114,6 @@ var/global/list/damage_icon_parts = list()
|
||||
|
||||
//Human Overlays Indexes/////////
|
||||
#undef MUTANTRACE_LAYER
|
||||
#undef TAIL_UNDERLIMBS_LAYER
|
||||
#undef LIMBS_LAYER
|
||||
#undef MARKINGS_LAYER
|
||||
#undef MUTATIONS_LAYER
|
||||
#undef DAMAGE_LAYER
|
||||
|
||||
@@ -211,6 +211,16 @@ datum/preferences
|
||||
preview_icon.Blend(new /icon(icobase, "groin_[g]"), ICON_OVERLAY)
|
||||
preview_icon.Blend(new /icon(icobase, "head_[g]"), ICON_OVERLAY)
|
||||
|
||||
for(var/name in list("r_arm","r_hand","r_leg","r_foot","l_leg","l_foot","l_arm","l_hand"))
|
||||
if(organ_data[name] == "amputated") continue
|
||||
if(organ_data[name] == "cyborg")
|
||||
var/datum/robolimb/R
|
||||
if(rlimb_data[name]) R = all_robolimbs[rlimb_data[name]]
|
||||
if(!R) R = basic_robolimb
|
||||
preview_icon.Blend(icon(R.icon, "[name]"), ICON_OVERLAY) // This doesn't check gendered_icon. Not an issue while only limbs can be robotic.
|
||||
continue
|
||||
preview_icon.Blend(new /icon(icobase, "[name]"), ICON_OVERLAY)
|
||||
|
||||
//Tail
|
||||
if(current_species && (current_species.bodyflags & HAS_TAIL))
|
||||
var/tail_icon
|
||||
@@ -227,16 +237,6 @@ datum/preferences
|
||||
var/icon/temp = new /icon("icon" = tail_icon, "icon_state" = tail_icon_state)
|
||||
preview_icon.Blend(temp, ICON_OVERLAY)
|
||||
|
||||
for(var/name in list("r_arm","r_hand","r_leg","r_foot","l_leg","l_foot","l_arm","l_hand"))
|
||||
if(organ_data[name] == "amputated") continue
|
||||
if(organ_data[name] == "cyborg")
|
||||
var/datum/robolimb/R
|
||||
if(rlimb_data[name]) R = all_robolimbs[rlimb_data[name]]
|
||||
if(!R) R = basic_robolimb
|
||||
preview_icon.Blend(icon(R.icon, "[name]"), ICON_OVERLAY) // This doesn't check gendered_icon. Not an issue while only limbs can be robotic.
|
||||
continue
|
||||
preview_icon.Blend(new /icon(icobase, "[name]"), ICON_OVERLAY)
|
||||
|
||||
// Skin color
|
||||
if(current_species && (current_species.bodyflags & HAS_SKIN_COLOR))
|
||||
preview_icon.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD)
|
||||
|
||||
Reference in New Issue
Block a user