+ if (worldmap->at(tile_pos)->auto_walk)
+ { // Turn to a new direction
+ Tile* tile = worldmap->at(tile_pos);
+ Direction dir = NONE;
+
+ if (tile->north && back_direction != NORTH)
+ dir = NORTH;
+ else if (tile->south && back_direction != SOUTH)
+ dir = SOUTH;
+ else if (tile->east && back_direction != EAST)
+ dir = EAST;
+ else if (tile->west && back_direction != WEST)
+ dir = WEST;
+
+ if (dir != NONE)
+ {
+ direction = dir;
+ back_direction = reverse_dir(direction);
+ }
+ else
+ {
+ // Should never be reached if tiledata is good
+ stop();
+ return;
+ }
+ }
+