X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fnotation.cpp;h=bbcb3d8eeb1545a3bc56860a7feb639e860ca51c;hp=eb3c46a0244904e63588ef821b1e5714ffd5d468;hb=ab65d3fd0ecf340842408548bc7f3e6c28ad4c85;hpb=520e680278964931abcaf3e1ab89b24423777999 diff --git a/src/notation.cpp b/src/notation.cpp index eb3c46a0..bbcb3d8e 100644 --- a/src/notation.cpp +++ b/src/notation.cpp @@ -28,7 +28,7 @@ using namespace std; -static const char* PieceToChar = " PNBRQK pnbrqk"; +static const char* PieceToChar = " PNBRQK pnbrqk"; /// score_to_uci() converts a value to a string suitable for use with the UCI @@ -75,7 +75,7 @@ const string move_to_uci(Move m, bool chess960) { string move = square_to_string(from) + square_to_string(to); if (type_of(m) == PROMOTION) - move += PieceToChar[promotion_type(m) + 7]; // Lower case + move += PieceToChar[make_piece(BLACK, promotion_type(m))]; // Lower case return move; } @@ -117,20 +117,21 @@ const string move_to_san(Position& pos, Move m) { Square from = from_sq(m); Square to = to_sq(m); Piece pc = pos.piece_on(from); + PieceType pt = type_of(pc); if (type_of(m) == CASTLE) san = to > from ? "O-O" : "O-O-O"; else { - if (type_of(pc) != PAWN) + if (pt != PAWN) { - san = PieceToChar[pc]; + san = PieceToChar[pt]; // Upper case // Disambiguation if we have more then one piece with destination 'to' // note that for pawns is not needed because starting file is explicit. ambiguousMove = ambiguousFile = ambiguousRank = false; - attackers = (pos.attacks_from(pc, to) & pos.pieces(us)) ^ from; + attackers = (pos.attacks_from(pc, to) & pos.pieces(us, pt)) ^ from; while (attackers) {