X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=moves.c;h=72671731c5a64cedc5da8603bca7062b16f2ebcb;hb=c551a728b8fa7649b043fffb32b7f1d11c67b38a;hp=af04d1eb10ec77c4703837113bbc83ab09af02a9;hpb=558d1df7e18bf07e0deb7b2baed0a0d421ed49ab;p=xboard.git diff --git a/moves.c b/moves.c index af04d1e..7267173 100644 --- a/moves.c +++ b/moves.c @@ -144,6 +144,7 @@ char pieceToChar[] = { 'p', 'n', 'b', 'r', 'q', 'f', 'e', 'a', 'c', 'w', 'm', 'o', 'h', 'i', 'j', 'g', 'd', 'v', 'l', 's', 'u', 'k', 'x' }; +char pieceNickName[EmptySquare]; char PieceToChar(p) ChessSquare p; @@ -167,6 +168,8 @@ ChessSquare CharToPiece(c) { int i; for(i=0; i< (int) EmptySquare; i++) + if(pieceNickName[i] == c) return (ChessSquare) i; + for(i=0; i< (int) EmptySquare; i++) if(pieceToChar[i] == c) return (ChessSquare) i; return EmptySquare; } @@ -1284,7 +1287,7 @@ void Disambiguate(board, flags, closure) closure->kind = c == '=' ? IllegalMove : WhitePromotionKnight; else /* promotion optional, default is promote */ closure->kind = c == '=' ? NormalMove : WhitePromotionQueen; - + if(c != '=') closure->promoCharIn = 'q'; } else closure->kind = (c == NULLCHAR || c == 'x' || c == '=') ? NormalMove : IllegalMove; } else { @@ -1294,7 +1297,7 @@ void Disambiguate(board, flags, closure) closure->kind = c == '=' ? IllegalMove : BlackPromotionKnight; else /* promotion optional, default is promote */ closure->kind = c == '=' ? NormalMove : BlackPromotionQueen; - + if(c != '=') closure->promoCharIn = 'q'; } else closure->kind = (c == NULLCHAR || c == 'x' || c == '=') ? NormalMove : IllegalMove; }