diff --git a/files/src/main.js b/files/src/main.js index 3fddbaba..8bf66730 100644 --- a/files/src/main.js +++ b/files/src/main.js @@ -289,6 +289,16 @@ function startup() { set_checks("Engine", "WDL Calibration Elo", msg.val === "0" ? "Use default WDL" : msg.val); break; + case "wdlevalobjectivity": + if (msg.val === "1") { + set_checks("Engine", "WDL Eval Objectivity", "Yes"); + } else if (msg.val === "0") { + set_checks("Engine", "WDL Eval Objectivity", "No"); + } else { + set_checks("Engine", "WDL Eval Objectivity", msg.val); + } + break; + case "scoretype": set_checks("Engine", "Score Type", msg.val); break; @@ -3664,6 +3674,35 @@ function menu_build() { }, ] }, + { + label: "WDL Eval Objectivity", + submenu: [ + { + label: "Yes", + type: "checkbox", + checked: false, + click: () => { + win.webContents.send("call", { + fn: "set_uci_option_permanent", + args: ["WDLEvalObjectivity", 1] + }); + // Will receive an ack IPC which sets menu checks. + } + }, + { + label: "No", + type: "checkbox", + checked: false, + click: () => { + win.webContents.send("call", { + fn: "set_uci_option_permanent", + args: ["WDLEvalObjectivity", 0] + }); + // Will receive an ack IPC which sets menu checks. + } + } + ] + }, { label: "Score Type", submenu: [ diff --git a/files/src/renderer/10_globals.js b/files/src/renderer/10_globals.js index 793fc488..8d9c59a6 100644 --- a/files/src/renderer/10_globals.js +++ b/files/src/renderer/10_globals.js @@ -90,6 +90,7 @@ const standard_lc0_options = { // These are only sent if known by the engine. "ContemptMode": "white_side_analysis", "Contempt": 0, "WDLCalibrationElo": 0, + "WDLEvalObjectivity": 0, }; const forced_ab_options = {}; diff --git a/files/src/renderer/90_engine.js b/files/src/renderer/90_engine.js index e083ff61..693b67db 100644 --- a/files/src/renderer/90_engine.js +++ b/files/src/renderer/90_engine.js @@ -40,7 +40,7 @@ We are in one of these states (currently implicit in the logic): */ const GUI_WANTS_TO_KNOW = ["Backend", "EvalFile", "WeightsFile", "SyzygyPath", "Threads", "Hash", "MultiPV", - "ContemptMode", "Contempt", "WDLCalibrationElo", "ScoreType", "Temperature", "TempDecayMoves"]; + "ContemptMode", "Contempt", "WDLCalibrationElo", "WDLEvalObjectivity", "ScoreType", "Temperature", "TempDecayMoves"]; let NoSearch = Object.freeze({ node: null,