]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Fix Chess960 regression
[stockfish] / src / search.cpp
index 355eed1b24ca79327194aaf8f90ab4f549e57cec..53a8bec9b15751981c22354e4a02525274c79887 100644 (file)
@@ -484,7 +484,7 @@ bool think(Position& pos, bool infinite, bool ponder, int time[], int increment[
       std::string name = Options["Search Log Filename"].value<std::string>();
       LogFile.open(name.c_str(), std::ios::out | std::ios::app);
 
-      LogFile << "Searching: "  << pos.to_fen()
+      LogFile << "Searching: "  << pos.to_fen(Options["UCI_Chess960"].value<bool>())
               << "\ninfinite: " << infinite
               << " ponder: "    << ponder
               << " time: "      << myTime
@@ -513,6 +513,9 @@ bool think(Position& pos, bool infinite, bool ponder, int time[], int increment[
               << move_to_san(pos, ponderMove) // Works also with MOVE_NONE
               << endl;
 
+      // Return from think() with unchanged position
+      pos.undo_move(bestMove);
+
       LogFile.close();
   }
 
@@ -567,7 +570,7 @@ namespace {
     Iteration = 1;
 
     // Send initial RootMoveList scoring (iteration 1)
-    cout << set960(pos.is_chess960()) // Is enough to set once at the beginning
+    cout << set960(Options["UCI_Chess960"].value<bool>()) // Is enough to set once at the beginning
          << "info depth " << Iteration
          << "\n" << rml[0].pv_info_to_uci(pos, alpha, beta) << endl;
 
@@ -903,7 +906,7 @@ namespace {
 
     // Write PV lines to transposition table, in case the relevant entries
     // have been overwritten during the search.
-    for (int i = 0; i < MultiPV; i++)
+    for (int i = 0; i < Min(MultiPV, (int)rml.size()); i++)
         rml[i].insert_pv_in_tt(pos);
 
     return alpha;