All I need to do is check if a key is being pressed. For example using this fake proc it might look like this:
client/North() mob.Determine_Move()
client/South() mob.Determine_Move()
//And so on as above, for all directions.
mob/proc/Determine_Move()
if(!Can_Move) return
if(Key_Down("South")&&Key_Down("West"))
step(src,SOUTHWEST)
else if(Key_Down("North")&&Key_Down("West"))
step(src,NORTHWEST)
else //And so on
Then have a verb for each.
SOUTH+DOWN
SOUTH+RELEASE (I think that's how they're called in the macro window)
Just an example of how I'd probably do it.