From 711829fe88ce150e7c9d50db03598208e9e52869 Mon Sep 17 00:00:00 2001 From: Fabian Fichter Date: Fri, 12 Mar 2021 12:44:36 +0100 Subject: [PATCH] Suppress variant setup output on protocol change Since this might confuse GUIs, skip the variant definition output whent he variant change is triggered by a protocol change. --- src/ucioption.cpp | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ucioption.cpp b/src/ucioption.cpp index 7b78f57..2aa2fbe 100644 --- a/src/ucioption.cpp +++ b/src/ucioption.cpp @@ -60,12 +60,18 @@ void on_use_NNUE(const Option& ) { Eval::NNUE::init(); } void on_eval_file(const Option& ) { Eval::NNUE::init(); } void on_variant_path(const Option& o) { variants.parse(o); Options["UCI_Variant"].set_combo(variants.get_keys()); } -void on_variant_change(const Option &o) { +void on_variant_set(const Option &o) { // Re-initialize NNUE Eval::NNUE::init(); const Variant* v = variants.find(o)->second; PSQT::init(v); +} +void on_variant_change(const Option &o) { + // Variant initialization + on_variant_set(o); + + const Variant* v = variants.find(o)->second; // Do not send setup command for known variants if (standard_variants.find(o) != standard_variants.end()) return; @@ -351,8 +357,10 @@ void Option::set_combo(std::vector newComboValues) { void Option::set_default(std::string newDefault) { defaultValue = currentValue = newDefault; + // When changing the variant default, suppress variant definition output, + // but still do the essential re-initialization of the variant if (on_change) - on_change(*this); + (on_change == on_variant_change ? on_variant_set : on_change)(*this); } const std::string Option::get_type() const { -- 1.7.0.4