diff --git a/code/modules/client/preference_setup/loadout/loadout_ears.dm b/code/modules/client/preference_setup/loadout/loadout_ears.dm index 8bae8bd4d6d..ecd8e379f16 100644 --- a/code/modules/client/preference_setup/loadout/loadout_ears.dm +++ b/code/modules/client/preference_setup/loadout/loadout_ears.dm @@ -1,9 +1,14 @@ /datum/gear/ears - display_name = "earmuffs" - path = /obj/item/clothing/ears/earmuffs + display_name = "earwear, circuitry (empty)" + path = /obj/item/clothing/ears/circuitry sort_category = "Earwear" slot = slot_r_ear +/datum/gear/ears/double + display_name = "earmuffs" + path = /obj/item/clothing/ears/earmuffs + slot = null + /datum/gear/ears/bandanna display_name = "neck bandanna selection" path = /obj/item/clothing/ears/bandanna @@ -21,14 +26,10 @@ path = /obj/item/clothing/ears/bandanna_colorable flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION -/datum/gear/ears/headphones +/datum/gear/ears/double/headphones display_name = "headphones" path = /obj/item/clothing/ears/earmuffs/headphones -/datum/gear/ears/circuitry - display_name = "earwear, circuitry (empty)" - path = /obj/item/clothing/ears/circuitry - /datum/gear/ears/earrings display_name = "earring selection" description = "A selection of eye-catching earrings." diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index cb51f7efc61..269601b0381 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -720,7 +720,7 @@ There are several things that need to be remembered: if(QDELING(src)) return - if(check_draw_ears()) + if(check_draw_left_ear()) if(l_ear) var/image/result_layer = null @@ -763,7 +763,7 @@ There are several things that need to be remembered: if(QDELING(src)) return - if(check_draw_ears()) + if(check_draw_right_ear()) if(r_ear) var/image/result_layer = null @@ -1568,15 +1568,24 @@ There are several things that need to be remembered: else return TRUE -/mob/living/carbon/human/proc/check_draw_ears() - if (!l_ear && !r_ear) +/mob/living/carbon/human/proc/check_draw_right_ear() + if (!r_ear) return FALSE - else if ((l_ear && (l_ear.flags_inv & ALWAYSDRAW)) || (r_ear && (r_ear.flags_inv & ALWAYSDRAW))) + else if (r_ear.flags_inv & ALWAYSDRAW) return TRUE - else if( (head && (head.flags_inv & (HIDEEARS))) || (wear_mask && (wear_mask.flags_inv & (HIDEEARS)))) + else if ((head && (head.flags_inv & (HIDEEARS))) || (wear_mask && (wear_mask.flags_inv & (HIDEEARS)))) return FALSE - else + return TRUE + + +/mob/living/carbon/human/proc/check_draw_left_ear() + if (!l_ear) + return FALSE + else if (l_ear.flags_inv & ALWAYSDRAW) return TRUE + else if ((head && (head.flags_inv & (HIDEEARS))) || (wear_mask && (wear_mask.flags_inv & (HIDEEARS)))) + return FALSE + return TRUE /mob/living/carbon/human/proc/check_draw_glasses() if (!glasses) diff --git a/html/changelogs/EarFix.yml b/html/changelogs/EarFix.yml new file mode 100644 index 00000000000..ea035ba4655 --- /dev/null +++ b/html/changelogs/EarFix.yml @@ -0,0 +1,7 @@ +author: TheGreyWolf + +delete-after: True + +changes: + - bugfix: "Ear slot mob sprites will now update properly again." + - bugfix: "Prevented an issue from causing earmuffs & headphones to replace headsets for latejoins. All two ear items will now spawn in bags rather than on the ear."