diff --git a/Userland/Games/Chess/ChessWidget.cpp b/Userland/Games/Chess/ChessWidget.cpp index 0185c5b54a..99a92728e1 100644 --- a/Userland/Games/Chess/ChessWidget.cpp +++ b/Userland/Games/Chess/ChessWidget.cpp @@ -439,6 +439,9 @@ void ChessWidget::reset() m_board = Chess::Board(); m_side = (get_random() % 2) ? Chess::Color::White : Chess::Color::Black; m_drag_enabled = true; + if (m_engine) + m_engine->start_new_game(); + input_engine_move(); update(); } diff --git a/Userland/Games/Chess/Engine.h b/Userland/Games/Chess/Engine.h index efbfd5b463..7b86d50f8a 100644 --- a/Userland/Games/Chess/Engine.h +++ b/Userland/Games/Chess/Engine.h @@ -38,6 +38,15 @@ public: m_bestmove_callback = move(callback); } + void start_new_game() + { + if (!m_connected) + return; + + Chess::UCI::UCINewGameCommand ucinewgame_command; + send_command(ucinewgame_command); + } + private: void quit(); void connect_to_engine_service();