From 471380aa2cc9c15e5d1b08db99c4ecfd774c7c84 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 30 Jun 2017 23:20:26 -0500 Subject: [PATCH] Makes movement delay calculation not round to the tick (#1711) --- code/modules/mob/mob_movement.dm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 9d6ab8410c..00be22e99c 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -109,10 +109,12 @@ mob.control_object.loc = get_step(mob.control_object,direct) return - +#define MOVEMENT_DELAY_BUFFER 0.75 +#define MOVEMENT_DELAY_BUFFER_DELTA 1.25 /client/Move(n, direct) if(world.time < move_delay) return 0 + var/old_move_delay = move_delay move_delay = world.time+world.tick_lag //this is here because Move() can now be called mutiple times per tick if(!mob || !mob.loc) return 0 @@ -159,7 +161,11 @@ //We are now going to move moving = 1 - move_delay = mob.movement_delay() + world.time + var/delay = mob.movement_delay() + if (old_move_delay + (delay*MOVEMENT_DELAY_BUFFER_DELTA) + MOVEMENT_DELAY_BUFFER > world.time) + move_delay = old_move_delay + delay + else + move_delay = delay + world.time if(mob.confused) if(mob.confused > 40)