From fc290dc30b1f6a50fd5fd6732c276ff76305f2aa Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sun, 24 Jul 2011 05:59:16 +0100 Subject: [PATCH] Fix startpos_ply_counter() regression Return the correct number of played plies at the end of the setup moves. Currently it always returns 0 when starting from start position, like in real games. We fix this adding st->pliesFromNull that starts from 0 and is incremented after each setup move and is never reset in the setup phase but only once search is started. It is an hack because startpos_ply_counter() will return different values during the search and is correct only at the beginning of the search. No functional change. Signed-off-by: Marco Costalba --- src/position.h | 2 +- src/uci.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/position.h b/src/position.h index a933c3fa..695ad98d 100644 --- a/src/position.h +++ b/src/position.h @@ -423,7 +423,7 @@ inline bool Position::move_is_passed_pawn_push(Move m) const { } inline int Position::startpos_ply_counter() const { - return startPosPly; + return startPosPly + st->pliesFromNull; // HACK } inline bool Position::opposite_colored_bishops() const { diff --git a/src/uci.cpp b/src/uci.cpp index 813c40f7..4d68c86a 100644 --- a/src/uci.cpp +++ b/src/uci.cpp @@ -39,7 +39,7 @@ namespace { // Keep track of position keys along the setup moves (from start position to the // position just before to start searching). This is needed by draw detection - // where, due to 50 moves rule, we need to ckeck at most 100 plies back. + // where, due to 50 moves rule, we need to check at most 100 plies back. StateInfo StateRingBuf[102], *SetupState = StateRingBuf; // UCIParser is a class for parsing UCI input. The class -- 2.39.2