X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.cpp;h=922a96fd8bdee8e23c4df7e1382ca486985a961c;hp=bc9b5e0e2f6c1905d4739b2741b220aec1255d5f;hb=03ad183384d484990248cb22394a93926f421520;hpb=527a2ec541838e217b6ddcae856d0d4fa75ac7a4 diff --git a/src/position.cpp b/src/position.cpp index bc9b5e0e..922a96fd 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -190,11 +190,11 @@ void Position::from_fen(const string& fenStr, bool isChess960) { } // 5-6. Halfmove clock and fullmove number - fen >> std::skipws >> st->rule50 >> st->gamePly; + fen >> std::skipws >> st->rule50 >> startPosPly; // Convert from fullmove starting from 1 to ply starting from 0, // handle also common incorrect FEN with fullmove = 0. - st->gamePly = Max(2 * (st->gamePly - 1), 0) + int(sideToMove == BLACK); + startPosPly = Max(2 * (startPosPly - 1), 0) + int(sideToMove == BLACK); // Various initialisations chess960 = isChess960; @@ -314,7 +314,7 @@ const string Position::to_fen() const { fen << '-'; fen << (ep_square() == SQ_NONE ? " -" : " " + square_to_string(ep_square())) - << " " << st->rule50 << " " << 1 + (st->gamePly - int(sideToMove == BLACK)) / 2; + << " " << st->rule50 << " " << 1 + (startPosPly - int(sideToMove == BLACK)) / 2; return fen.str(); } @@ -786,10 +786,10 @@ void Position::do_move(Move m, StateInfo& newSt, const CheckInfo& ci, bool moveI // pointer to point to the new, ready to be updated, state. struct ReducedStateInfo { Key pawnKey, materialKey; - int castleRights, rule50, gamePly, pliesFromNull; - Square epSquare; - Score value; Value npMaterial[2]; + int castleRights, rule50, pliesFromNull; + Score value; + Square epSquare; }; memcpy(&newSt, st, sizeof(ReducedStateInfo)); @@ -803,7 +803,6 @@ void Position::do_move(Move m, StateInfo& newSt, const CheckInfo& ci, bool moveI // Increment the 50 moves rule draw counter. Resetting it to zero in the // case of non-reversible moves is taken care of later. st->rule50++; - st->gamePly++; st->pliesFromNull++; if (move_is_castle(m)) @@ -1339,7 +1338,6 @@ void Position::do_null_move(StateInfo& backupSt) { sideToMove = opposite_color(sideToMove); st->epSquare = SQ_NONE; st->rule50++; - st->gamePly++; st->pliesFromNull = 0; st->value += (sideToMove == WHITE) ? TempoValue : -TempoValue; @@ -1364,7 +1362,6 @@ void Position::undo_null_move() { // Update the necessary information sideToMove = opposite_color(sideToMove); st->rule50--; - st->gamePly--; assert(is_ok()); }