From d65ca7ddcc4ff2dd4e73b8277737890ce37d95a7 Mon Sep 17 00:00:00 2001 From: Alexis Date: Tue, 9 Jun 2026 09:48:59 -0400 Subject: [PATCH] Fixes hair/ears/horns clipping on taller height settings [NOVA PORT] (#5762) ## About The Pull Request **PORT OF https://github.com/NovaSector/NovaSector/pull/7002** Does as the title suggests. Also fixes https://github.com/Bubberstation/Bubberstation/issues/3139. ## Why It's Good For The Game Fixes a bug. ## Proof Of Testing See below.
Screenshots/Videos https://github.com/user-attachments/assets/33ee4f1a-bf41-499e-b915-bb1ee80cafa8
## Changelog :cl: Happyowl93 fix: Fixed ears/hair/horns clipping when using the tall/taller/tallest height settings. /:cl: --- code/__DEFINES/mobs.dm | 2 ++ .../mob/living/carbon/human/human_update_icons.dm | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index e1fc285b9c8..59d14cb2820 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -905,6 +905,8 @@ GLOBAL_LIST_INIT(layers_to_offset, list( "[HAIR_LAYER]" = UPPER_BODY, // Doesn't do much "[EYES_LAYER]" = UPPER_BODY, + "[BENEATH_HAIR_LAYER]" = UPPER_BODY, + "[OUTER_HAIR_LAYER]" = UPPER_BODY, // BUBBER EDIT - ADDITION // Long belts (sabre sheathe) will get cut off by filter "[BELT_LAYER]" = LOWER_BODY, // Everything below looks fine with or without a filter, so we can skip it and just offset diff --git a/code/modules/mob/living/carbon/human/human_update_icons.dm b/code/modules/mob/living/carbon/human/human_update_icons.dm index d7b3010611e..dcb1327555b 100644 --- a/code/modules/mob/living/carbon/human/human_update_icons.dm +++ b/code/modules/mob/living/carbon/human/human_update_icons.dm @@ -1147,7 +1147,20 @@ mutant_styles: The mutant style - taur bodytype, STYLE_TESHARI, etc. // SKYRAT E if(isnull(offset_type)) if(islist(raw_applied)) for(var/image/applied_appearance in raw_applied) - apply_height_filters(applied_appearance) + /* + BUBBER EDIT - ADDITION - CHANGE + ORIGINAL: apply_height_filters(applied_appearance) + */ + var/sub_offset_type = GLOB.layers_to_offset[num2text(-applied_appearance.layer)] + if(isnull(sub_offset_type)) + if(findtext(applied_appearance.icon_state, "horns_", 3, 9) || findtext(applied_appearance.icon_state, "ears_", 3, 8)) + sub_offset_type = UPPER_BODY + if(sub_offset_type) + applied_appearance.pixel_z = initial(applied_appearance.pixel_z) + apply_height_offsets(applied_appearance, sub_offset_type) + else + apply_height_filters(applied_appearance) + // BUBBER EDIT - ADDITION - END else if(isimage(raw_applied)) apply_height_filters(raw_applied) else