X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=moves.c;h=eb0701c21cdeb547a28f5b4668bdb86baabc1f1d;hb=e59f2b1735fb0ef47b63a1fc560edcc58826ef58;hp=58cbfc008c47f8f794aa83acc0ebb1fe348d2bbf;hpb=74025874f2010f84fd4f7f2e120e84b56ee9781b;p=xboard.git diff --git a/moves.c b/moves.c index 58cbfc0..eb0701c 100644 --- a/moves.c +++ b/moves.c @@ -169,7 +169,9 @@ ChessMove PromoCharToMoveType(whiteOnMove, promoChar) int whiteOnMove; int promoChar; { /* [HGM] made dependent on CharToPiece to alow alternate piece letters */ - ChessSquare piece = CharToPiece(whiteOnMove ? ToUpper(promoChar) : ToLower(promoChar) ); + ChessSquare piece = CharToPiece(whiteOnMove ? ToUpper(promoChar) : ToLower(promoChar) ); + + if(promoChar == NULLCHAR) return NormalMove; switch(piece) { @@ -1086,6 +1088,7 @@ ChessMove LegalityTest(board, flags, epfile, castlingRights, rf, ff, rt, ft, pro } } else if (promoChar != NULLCHAR && promoChar != 'x') { + if(promoChar == '=') cl.kind = IllegalMove; else // [HGM] shogi: no deferred promotion outside Shogi if (cl.kind == WhitePromotionQueen || cl.kind == BlackPromotionQueen) { cl.kind = PromoCharToMoveType((flags & F_WHITE_ON_MOVE) != 0, promoChar);