diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index a33af91572e..8f9a5c0f316 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -197,7 +197,15 @@ default behaviour is: now_pushing = 0 return - step(AM, t) + var/turf/T = AM.loc + var/turf/T2 = get_step(AM,t) + if(!T2) // Map edge + now_pushing = 0 + return + var/move_time = movement_delay(loc, t) + move_time = DS2NEARESTTICK(move_time) + if(AM.Move(T2, t, move_time)) + Move(T, t, move_time) if(ishuman(AM) && AM:grabbed_by) for(var/obj/item/weapon/grab/G in AM:grabbed_by)