From: Fabian Fichter Date: Mon, 5 Aug 2019 21:01:27 +0000 (+0200) Subject: Fix FEN generation for S-Chess X-Git-Url: http://winboard.nl/cgi-bin?a=commitdiff_plain;h=22fc9678abe3c2fe6d0d23262587dc7a39449abc;p=fairystockfish.git Fix FEN generation for S-Chess Prevents generation of illegal castling moves. Example: reb2rk1/ppppqppp/2nb1n2/4p3/4P3/N1P2N2/PB1PQPPP/RE2KBHR[h] w KQacgh - 3 7 --- diff --git a/src/position.cpp b/src/position.cpp index a9449cc..def94c0 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -639,7 +639,7 @@ const string Position::fen() const { if (gating() && gates(WHITE)) for (File f = FILE_A; f <= max_file(); ++f) - if (gates(WHITE) & file_bb(f)) + if ((gates(WHITE) & file_bb(f)) && count_in_hand(WHITE, ALL_PIECES)) ss << char('A' + f); if (can_castle(BLACK_OO)) @@ -650,7 +650,7 @@ const string Position::fen() const { if (gating() && gates(BLACK)) for (File f = FILE_A; f <= max_file(); ++f) - if (gates(BLACK) & file_bb(f)) + if ((gates(BLACK) & file_bb(f)) && count_in_hand(BLACK, ALL_PIECES)) ss << char('a' + f); if (!can_castle(ANY_CASTLING) && !(gating() && (gates(WHITE) | gates(BLACK))))