From: Fabian Fichter Date: Fri, 12 Mar 2021 11:44:36 +0000 (+0100) Subject: Suppress variant setup output on protocol change X-Git-Url: http://winboard.nl/cgi-bin?a=commitdiff_plain;h=711829fe88ce150e7c9d50db03598208e9e52869;p=fairystockfish.git 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. --- 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 {