diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 236d41d319d..2b85253dd06 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -188,7 +188,7 @@ turf/simulated/floor/proc/update_icon() update_icon() if ((!( user.canmove ) || user.restrained() || !( user.pulling ))) return - if (user.pulling.anchored) + if (user.pulling.anchored || !isturf(user.pulling.loc)) return if ((user.pulling.loc != user.loc && get_dist(user, user.pulling) > 1)) return diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index e5ced14d63b..95720295c87 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -17,7 +17,7 @@ /turf/space/attack_hand(mob/user as mob) if ((user.restrained() || !( user.pulling ))) return - if (user.pulling.anchored) + if (user.pulling.anchored || !isturf(user.pulling.loc)) return if ((user.pulling.loc != user.loc && get_dist(user, user.pulling) > 1)) return diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 6b21b320595..dc15cc4c9d8 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -181,7 +181,7 @@ M.inertia_dir = 0 return spawn(5) - if((M && !(M.anchored) && (M.loc == src))) + if((M && !(M.anchored) && !(M.pulledby) && (M.loc == src))) if(M.inertia_dir) step(M, M.inertia_dir) return diff --git a/code/game/turfs/unsimulated/floor.dm b/code/game/turfs/unsimulated/floor.dm index f18ceeb8210..1d391eee1c1 100644 --- a/code/game/turfs/unsimulated/floor.dm +++ b/code/game/turfs/unsimulated/floor.dm @@ -9,7 +9,7 @@ /turf/unsimulated/floor/attack_hand(var/mob/user as mob) if ((!( user.canmove ) || user.restrained() || !( user.pulling ))) return - if (user.pulling.anchored) + if (user.pulling.anchored || !isturf(user.pulling.loc)) return if ((user.pulling.loc != user.loc && get_dist(user, user.pulling) > 1)) return