The routine NonEvade, which vets move when in check before making them,
now recognizes e.p. captures (i.e. diagonal Pawn moves to an empty square)
when a Pawn is checking as a valid evasion.
if(f->toSqr == f->checker) return 0; // captures only checker: OK
d = dist[f->checker - f->toSqr];
if(d && deltaVec[f->toSqr - f->checker] == f->checkDir && d < f->checkDist) return 0; // interposes: OK
+ if(f->fromPiece + board[f->checker] == COLOR && f->toSqr - f->fromSqr & 1) return (board[f->toSqr] != 0);
return 1;
}
// king move