diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index f9f526e6f28..00bf7e50840 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -2,7 +2,7 @@ #define SAVEFILE_VERSION_MIN 10 //This is the current version, anything below this will attempt to update (if it's not obsolete) -#define SAVEFILE_VERSION_MAX 16 +#define SAVEFILE_VERSION_MAX 17 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn This proc checks if the current directory of the savefile S needs updating @@ -123,7 +123,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car joblessrole = BERANDOMJOB else joblessrole = BEASSISTANT - + if(current_version < 17) + features["legs"] = "Normal Legs" + /datum/preferences/proc/load_path(ckey,filename="preferences.sav") diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index 18651a021e9..2f23d7a4eff 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -31,6 +31,7 @@ icon_state = "cargotech" item_state = "lb_suit" item_color = "cargo" + body_parts_covered = CHEST|GROIN|ARMS mutantrace_variation = MUTANTRACE_VARIATION diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 18451b6a346..30f2487b20f 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -167,13 +167,13 @@ if(C.dna.features["legs"] == "Digitigrade Legs") specflags += DIGITIGRADE if(DIGITIGRADE in specflags) - C.Digitigrade_Leg_Swap(0) + C.Digitigrade_Leg_Swap(FALSE) /datum/species/proc/on_species_loss(mob/living/carbon/C) if(C.dna.species.exotic_bloodtype) C.dna.blood_type = random_blood_type() if(DIGITIGRADE in specflags) - C.Digitigrade_Leg_Swap(1) + C.Digitigrade_Leg_Swap(TRUE) /datum/species/proc/handle_hair(mob/living/carbon/human/H, forced_colour) H.remove_overlay(HAIR_LAYER) diff --git a/code/modules/surgery/bodyparts/helpers.dm b/code/modules/surgery/bodyparts/helpers.dm index e155feb35e2..aed1e1f874c 100644 --- a/code/modules/surgery/bodyparts/helpers.dm +++ b/code/modules/surgery/bodyparts/helpers.dm @@ -238,22 +238,34 @@ . = "ffc905" /mob/living/carbon/proc/Digitigrade_Leg_Swap(swap_back) + var/body_plan_changed = FALSE for(var/X in bodyparts) var/obj/item/bodypart/O = X var/obj/item/bodypart/N - if(O.use_digitigrade) + if((!O.use_digitigrade && swap_back == FALSE) || (O.use_digitigrade && swap_back == TRUE)) if(O.body_part == LEG_LEFT) - if(swap_back) + if(swap_back == TRUE) N = new /obj/item/bodypart/l_leg/ else N = new /obj/item/bodypart/l_leg/digitigrade else if(O.body_part == LEG_RIGHT) - if(swap_back) + if(swap_back == TRUE) N = new /obj/item/bodypart/r_leg/ else N = new /obj/item/bodypart/r_leg/digitigrade if(!N) continue + body_plan_changed = TRUE O.drop_limb(1) qdel(O) - N.attach_limb(src) \ No newline at end of file + N.attach_limb(src) + if(body_plan_changed && ishuman(src)) + var/mob/living/carbon/human/H = src + if(H.w_uniform) + var/obj/item/clothing/under/U = H.w_uniform + if(U.mutantrace_variation) + if(swap_back) + U.adjusted = NORMAL_STYLE + else + U.adjusted = DIGITIGRADE_STYLE + H.update_inv_w_uniform() \ No newline at end of file diff --git a/icons/mob/mutant_bodyparts.dmi b/icons/mob/mutant_bodyparts.dmi index 3ee7a840a91..25594b32834 100644 Binary files a/icons/mob/mutant_bodyparts.dmi and b/icons/mob/mutant_bodyparts.dmi differ