diff -ru freeciv/server/gotohand.c dev/server/gotohand.c --- freeciv/server/gotohand.c Fri Jun 30 18:08:25 2000 +++ dev/server/gotohand.c Wed Jul 5 23:56:32 2000 @@ -1466,10 +1467,10 @@ if (movescount <= 1) goto TRYFULL; - go_x = x > dest_x ? - (x-dest_x < map.xsize/2 ? -1 : 1): - (dest_x-x < map.xsize/2 ? 1 : -1); - go_y = dest_y > y ? 1 : -1; + go_x = (x > dest_x ? + (x-dest_x < map.xsize/2 ? -1 : 1): + (dest_x-x < map.xsize/2 ? 1 : -1)); + go_y = (dest_y > y ? 1 : -1); freelog(LOG_DEBUG, "%i,%i to %i,%i. go_x: %i, go_y:%i", x, y, dest_x, dest_y, go_x, go_y); @@ -1479,7 +1480,7 @@ /* && is_real_tile(i, y+go_y) */ && ! is_non_allied_unit_tile(ptile, playerid)) { x = i; - y++; + y += go_y; goto NEXTCYCLE; } goto TRYFULL;