diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm index 96b0a27e834..8478b2bb46a 100644 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -72,4 +72,5 @@ post_equip(H, visualsOnly) + H.update_body() return 1 \ No newline at end of file diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index cacd3f60dd6..d347342d22c 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -399,13 +399,17 @@ BLIND // can't see anything /obj/item/clothing/under/equipped(mob/user, slot) ..() + if(adjusted) + adjusted = NORMAL_STYLE + fitted = initial(fitted) + if(!alt_covers_chest) + body_parts_covered |= CHEST if(mutantrace_variation && ishuman(user)) var/mob/living/carbon/human/H = user if(DIGITIGRADE in H.dna.species.specflags) adjusted = DIGITIGRADE_STYLE - else if(adjusted == DIGITIGRADE_STYLE) - adjusted = NORMAL_STYLE + H.update_inv_w_uniform() /obj/item/clothing/under/attackby(obj/item/I, mob/user, params) @@ -544,7 +548,10 @@ BLIND // can't see anything usr << "You adjust the suit to wear it more casually." else usr << "You adjust the suit back to normal." - usr.update_inv_w_uniform() + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + H.update_inv_w_uniform() + H.update_body() /obj/item/clothing/under/proc/toggle_jumpsuit_adjust() if(adjusted == DIGITIGRADE_STYLE) @@ -553,13 +560,12 @@ BLIND // can't see anything if(adjusted) if(fitted != FEMALE_UNIFORM_TOP) fitted = NO_FEMALE_UNIFORM - if (alt_covers_chest) // for the special snowflake suits that don't expose the chest when adjusted - body_parts_covered = CHEST|GROIN|LEGS - else - body_parts_covered = GROIN|LEGS + if(!alt_covers_chest) // for the special snowflake suits that expose the chest when adjusted + body_parts_covered &= ~CHEST else fitted = initial(fitted) - body_parts_covered = CHEST|GROIN|LEGS|ARMS + if(!alt_covers_chest) + body_parts_covered |= CHEST return adjusted /obj/item/clothing/under/examine(mob/user) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index bbea8117b31..f250fa7cb85 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -164,7 +164,7 @@ if(exotic_bloodtype && C.dna.blood_type != exotic_bloodtype) C.dna.blood_type = exotic_bloodtype - if(C.dna.features["legs"] == "Digitigrade Legs") + if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Digitigrade Legs") specflags += DIGITIGRADE if(DIGITIGRADE in specflags) C.Digitigrade_Leg_Swap(FALSE) @@ -384,10 +384,13 @@ not_digitigrade = FALSE if(!(DIGITIGRADE in specflags)) //Someone cut off a digitigrade leg and tacked it on specflags += DIGITIGRADE - if(O.use_digitigrade == FULL_DIGITIGRADE && (H.wear_suit && ((H.wear_suit.flags_inv & HIDEJUMPSUIT) || (H.wear_suit.body_parts_covered & LEGS)) || (H.w_uniform && (H.w_uniform.body_parts_covered & LEGS)))) + var/should_be_squished = FALSE + if(H.wear_suit && ((H.wear_suit.flags_inv & HIDEJUMPSUIT) || (H.wear_suit.body_parts_covered & LEGS)) || (H.w_uniform && (H.w_uniform.body_parts_covered & LEGS))) + should_be_squished = TRUE + if(O.use_digitigrade == FULL_DIGITIGRADE && should_be_squished) O.use_digitigrade = SQUISHED_DIGITIGRADE update_needed = TRUE - else if(O.use_digitigrade == SQUISHED_DIGITIGRADE) + else if(O.use_digitigrade == SQUISHED_DIGITIGRADE && !should_be_squished) O.use_digitigrade = FULL_DIGITIGRADE update_needed = TRUE if(update_needed) diff --git a/code/modules/surgery/bodyparts/helpers.dm b/code/modules/surgery/bodyparts/helpers.dm index aed1e1f874c..126578de7d6 100644 --- a/code/modules/surgery/bodyparts/helpers.dm +++ b/code/modules/surgery/bodyparts/helpers.dm @@ -268,4 +268,6 @@ U.adjusted = NORMAL_STYLE else U.adjusted = DIGITIGRADE_STYLE - H.update_inv_w_uniform() \ No newline at end of file + H.update_inv_w_uniform() + if(H.shoes && !swap_back) + H.unEquip(H.shoes) diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 00235ef891f..722a62a1ad4 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ