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