/*\r
* woptions.c -- Options dialog box routines for WinBoard\r
*\r
- * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Free Software Foundation, Inc.\r
+ * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free\r
+ * Software Foundation, Inc.\r
*\r
* Enhancements Copyright 2005 Alessandro Scotti\r
*\r
if(IsDlgButtonChecked(hDlg, j) &&\r
(appData.noChessProgram || strstr(first.variants, VariantName(i-1)))) return (VariantClass) i-1;\r
}\r
- for(i=0; i<9; i++) { // check for engine-defined variants\r
+ for(i=0; i<15; i++) { // check for engine-defined variants\r
if(IsDlgButtonChecked(hDlg, OPT_EngineVariant+i) ) {\r
GetDlgItemText(hDlg, OPT_EngineVariant+i, engineVariant, MSG_SIZ); // remember name, so we can resolve it later\r
return VariantUnknown;\r
void\r
VariantShowRadio(HWND hDlg)\r
{\r
- char c = *engineVariant;\r
+ char c = *engineVariant, *v, *p;\r
int i=0, j;\r
CheckDlgButton(hDlg, radioButton[gameInfo.variant], TRUE);\r
*engineVariant = NULLCHAR; // [HGM] kludge to prevent VariantName will always return engineVariant\r
while((j = radioButton[i++]) != -2) {\r
if(j == -1) continue; // no menu button\r
- EnableWindow(GetDlgItem(hDlg, j), appData.noChessProgram || strstr(first.variants, VariantName(i-1)));\r
+ v = VariantName(i-1); p = strstr(first.variants, v);\r
+ EnableWindow(GetDlgItem(hDlg, j), appData.noChessProgram || p && (!*v || strlen(v) == strlen(p) || p[strlen(v)] == ','));\r
}\r
*engineVariant = c;\r
- for(i=0; i<9; i++) { // initialize engine-defined variants\r
+ for(i=0; i<15; i++) { // initialize engine-defined variants\r
char *v = EngineDefinedVariant(&first, i); // get name of #i\r
if(v) { // there is such a variant\r
EnableWindow(GetDlgItem(hDlg, OPT_EngineVariant+i), TRUE); // and enable the button\r
}\r
\r
gameInfo.variant = v;\r
- appData.variant = VariantName(v);\r
+ ASSIGN(appData.variant, VariantName(v));\r
\r
appData.NrFiles = (int) GetDlgItemInt(hDlg, IDC_Files, NULL, FALSE );\r
appData.NrRanks = (int) GetDlgItemInt(hDlg, IDC_Ranks, NULL, FALSE );\r
shuffleOpenings = FALSE; /* [HGM] shuffle: possible shuffle reset when we switch */\r
startedFromPositionFile = FALSE; /* [HGM] loadPos: no longer valid in new variant */\r
appData.pieceToCharTable = NULL;\r
+ ASSIGN(appData.pieceNickNames, "");\r
+ ASSIGN(appData.colorNickNames, "");\r
+ ASSIGN(appData.men, "");\r
Reset(TRUE, TRUE);\r
\r
return TRUE;\r