gridbased movement (note: bug in player.cpp)