From a6c7bd579d2473bded9c05f8917578ffdbfd6fa9 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Thu, 30 Apr 2020 21:25:38 -0400 Subject: [PATCH] Update mob glide_size prior to movement --- code/modules/mob/mob_movement.dm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 8fb7568cefd..69996ce1729 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -187,18 +187,24 @@ direct = newdir n = get_step(mob, direct) + delay = TICKS2DS(-round(-(DS2TICKS(delay)))) //Rounded to the next tick in equivalent ds + mob.glide_size = world.icon_size/max(DS2TICKS(delay),1) //Down to whatever decimal + . = ..() mob.setDir(direct) + if((direct & (direct - 1)) && mob.loc == n) //moved diagonally successfully + delay = mob.movement_delay() * 2 //Will prevent mob diagonal moves from smoothing accurately, sadly + + move_delay += delay + for(var/obj/item/grab/G in mob) if(G.state == GRAB_NECK) mob.setDir(angle2dir((dir2angle(direct) + 202.5) % 365)) G.adjust_position() for(var/obj/item/grab/G in mob.grabbed_by) G.adjust_position() - if((direct & (direct - 1)) && mob.loc == n) //moved diagonally successfully - delay = mob.movement_delay() * 2 - move_delay += delay + moving = 0 if(mob && .) if(mob.throwing)