Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.

Commit 883ae95

Browse files
Fixes a bunch of stuff breaking digitigrade legs (#22555)
1 parent 49ffa0e commit 883ae95

File tree

6 files changed

+16
-14
lines changed

6 files changed

+16
-14
lines changed

code/modules/clothing/suits/_suits.dm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
if(adjusted)
5656
adjusted = FALSE
5757

58-
if(!(mutantrace_variation & DIGITIGRADE_VARIATION) && ishuman(user))
58+
if(!(mutantrace_variation & DIGITIGRADE_VARIATION) && (flags_inv & HIDEJUMPSUIT) && ishuman(user))
5959
if(slot_flags & slot)
6060
ADD_TRAIT(user, TRAIT_DIGI_SQUISH, REF(src))
6161
else
@@ -66,7 +66,7 @@
6666
human_user.update_body_parts()
6767

6868
/obj/item/clothing/suit/dropped(mob/user)
69-
if(!(mutantrace_variation & DIGITIGRADE_VARIATION) && ishuman(user))
69+
if(!(mutantrace_variation & DIGITIGRADE_VARIATION) && (flags_inv & HIDEJUMPSUIT) && ishuman(user))
7070
REMOVE_TRAIT(user, TRAIT_DIGI_SQUISH, REF(src))
7171
var/mob/living/carbon/human/human_user = user
7272
human_user.update_inv_w_uniform()

code/modules/clothing/under/_under.dm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@
103103
return
104104
var/update_suit = FALSE
105105
var/mob/living/carbon/human/human_user = user
106-
if(!(mutantrace_variation & DIGITIGRADE_VARIATION))
106+
if(!(mutantrace_variation & DIGITIGRADE_VARIATION) && (body_parts_covered & LEGS))
107107
if(slot_flags & slot)
108108
ADD_TRAIT(user, TRAIT_DIGI_SQUISH, REF(src))
109109
else
@@ -126,7 +126,7 @@
126126
if(ishuman(user))
127127
var/update_suit = FALSE
128128
var/mob/living/carbon/human/human_user = user
129-
if(!(mutantrace_variation & DIGITIGRADE_VARIATION))
129+
if(!(mutantrace_variation & DIGITIGRADE_VARIATION) && (body_parts_covered & LEGS))
130130
REMOVE_TRAIT(user, TRAIT_DIGI_SQUISH, REF(src))
131131
human_user.update_inv_shoes()
132132
human_user.update_body_parts()

code/modules/surgery/bodyparts/_bodyparts.dm

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -736,7 +736,15 @@
736736
set_disabled(FALSE)
737737

738738
/obj/item/bodypart/proc/set_digitigrade(use_digi = FALSE)
739-
return
739+
if(use_digitigrade == use_digi)
740+
return
741+
use_digitigrade = use_digi
742+
if(!owner)
743+
return
744+
if(use_digi)
745+
ADD_TRAIT(owner, TRAIT_DIGITIGRADE, REF(src))
746+
else
747+
REMOVE_TRAIT(owner, TRAIT_DIGITIGRADE, REF(src))
740748

741749
///Called when TRAIT_PARALYSIS is added to the limb.
742750
/obj/item/bodypart/proc/on_paralysis_trait_gain(obj/item/bodypart/source)

code/modules/surgery/bodyparts/dismemberment.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
LAZYREMOVE(owner.all_scars, S)
9898

9999
var/mob/living/carbon/phantom_owner = owner // so we can still refer to the guy who lost their limb after said limb forgets 'em
100-
owner = null
100+
set_owner(null)
101101

102102
for(var/X in phantom_owner.surgeries) //if we had an ongoing surgery on that limb, we stop it.
103103
var/datum/surgery/S = X

code/modules/surgery/bodyparts/parts.dm

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -262,9 +262,6 @@
262262
/// Used by the bloodysoles component to make footprints
263263
var/footprint_sprite = FOOTPRINT_SPRITE_SHOES
264264

265-
/obj/item/bodypart/l_leg/set_digitigrade(use_digi)
266-
use_digitigrade = use_digi
267-
268265
/obj/item/bodypart/l_leg/set_owner(new_owner)
269266
. = ..()
270267
if(. == FALSE)
@@ -357,9 +354,6 @@
357354
/// Used by the bloodysoles component to make footprints
358355
var/footprint_sprite = FOOTPRINT_SPRITE_SHOES
359356

360-
/obj/item/bodypart/r_leg/set_digitigrade(use_digi)
361-
use_digitigrade = use_digi
362-
363357
/obj/item/bodypart/r_leg/set_owner(new_owner)
364358
. = ..()
365359
if(. == FALSE)

code/modules/surgery/bodyparts/robot_bodyparts.dm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,12 +174,12 @@
174174
set_digitigrade(!use_digitigrade)
175175

176176
/obj/item/bodypart/l_leg/robot/set_digitigrade(use_digi = FALSE)
177-
use_digitigrade = use_digi
178177
if(use_digi)
179178
icon_state = digi_icon_state
180179
else
181180
icon_state = initial(icon_state)
182181
update_icon()
182+
return ..()
183183

184184
/obj/item/bodypart/r_leg/robot/attackby(obj/item/W, mob/user, params)
185185
if(W.tool_behaviour != TOOL_SCREWDRIVER)
@@ -188,12 +188,12 @@
188188
set_digitigrade(!use_digitigrade)
189189

190190
/obj/item/bodypart/r_leg/robot/set_digitigrade(use_digi = FALSE)
191-
use_digitigrade = use_digi
192191
if(use_digi)
193192
icon_state = digi_icon_state
194193
else
195194
icon_state = initial(icon_state)
196195
update_icon()
196+
return ..()
197197

198198
/obj/item/bodypart/chest/robot
199199
name = "cyborg torso"

0 commit comments

Comments
 (0)