diff --git a/src/sp_lev.c b/src/sp_lev.c index 2df7dc548..01b0dd4c8 100644 --- a/src/sp_lev.c +++ b/src/sp_lev.c @@ -2148,6 +2148,12 @@ schar ftyp, btyp; dix = abs(xx - tx); diy = abs(yy - ty); + if ((dix > diy) && diy && !rn2(dix-diy+1)) { + dix = 0; + } else if ((diy > dix) && dix && !rn2(diy-dix+1)) { + diy = 0; + } + /* do we have to change direction ? */ if (dy && dix > diy) { register int ddx = (xx > tx) ? -1 : 1;