diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 63089a22b741..b411a72b3d7e 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -571,6 +571,9 @@ if(has_gravity(src)) return TRUE + if(pulledby && (pulledby.pulledby != src || moving_from_pull)) + return TRUE + if(throwing) return TRUE diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index a5f42d8523a9..7b155a092f31 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -25,6 +25,8 @@ return /mob/living/carbon/Process_Spacemove(movement_dir = 0) + if(!.) + . = ..() if(!isturf(loc)) return FALSE // Do we have a jetpack implant (and is it on)? @@ -38,12 +40,6 @@ if((movement_dir || J.stabilizers) && J.allow_thrust(0.01, src)) . = TRUE - if(!.) - . = ..() - if(!. && pulledby) // If it still returned false - pulledby.stop_pulling() - return TRUE - /mob/living/carbon/Move(NewLoc, direct) . = ..() if(. && !(movement_type & FLOATING)) //floating is easy