return;
pos.set(fen, Options["UCI_Chess960"], Threads.main());
- SetupStates = Search::StateStackPtr(new std::stack<StateInfo>());
+ SetupStates = Search::StateStackPtr(new std::stack<StateInfo>);
// Parse move list (if any)
while (is >> token && (m = UCI::to_move(pos, token)) != MOVE_NONE)
{
SetupStates->push(StateInfo());
- pos.do_move(m, SetupStates->top());
+ pos.do_move(m, SetupStates->top(), pos.gives_check(m, CheckInfo(pos)));
}
}
} while (token != "quit" && argc == 1); // Passed args have one-shot behaviour
- Threads.wait_for_think_finished(); // Cannot quit whilst the search is running
+ Threads.main()->join(); // Cannot quit whilst the search is running
}
if (str.length() == 5) // Junior could send promotion piece in uppercase
str[4] = char(tolower(str[4]));
- for (const ExtMove& ms : MoveList<LEGAL>(pos))
- if (str == UCI::move(ms.move, pos.is_chess960()))
- return ms.move;
+ for (const auto& m : MoveList<LEGAL>(pos))
+ if (str == UCI::move(m, pos.is_chess960()))
+ return m;
return MOVE_NONE;
}