Implementing diagonal moves and removing turns

Diagonal moves are used mostly to simulate stairs in 2D. I don't find necessary to ask if it IsPassable.
In addition, removing Turn{Direction} when IsPassable but turn_enable=0 makes possible for a character to walk backwards and sideways.