/*\r
* woptions.c -- Options dialog box routines for WinBoard\r
*\r
- * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014 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
/*\r
* clean up\r
*/\r
- SelectObject(hdcMem, oldBrushPiece);\r
+ SelectObject(hdcMem, oldBrushSquare);\r
SelectObject(hdcMem, oldPen);\r
DeleteObject(brushPiece);\r
DeleteObject(brushPieceDetail);\r
-1,\r
OPT_VariantShogi,\r
-1, // Chu\r
- OPT_VariantXiangqi,\r
OPT_VariantCourier,\r
OPT_VariantGothic,\r
OPT_VariantCapablanca,\r
OPT_VariantGreat,\r
-1, // Twilight,\r
OPT_VariantMakruk,\r
- OPT_VariantASEAN,\r
OPT_VariantSChess,\r
OPT_VariantGrand,\r
OPT_VariantSpartan, // Spartan\r
+ OPT_VariantXiangqi,\r
+ OPT_VariantASEAN,\r
OPT_VariantLion,\r
-2 // sentinel\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
SetDlgItemInt(hDlg, OPT_Stretch, appData.stretch, FALSE);\r
CheckDlgButton(hDlg, OPT_Reversed, appData.ignoreColors);\r
CheckDlgButton(hDlg, OPT_Mirror, appData.findMirror);\r
+ SetDlgItemText(hDlg, OPT_Counts, "");\r
switch (appData.searchMode) {\r
case 1:\r
CheckDlgButton(hDlg, OPT_Exact, TRUE);\r
appData.searchMode = LoadOptionsWhichRadio(hDlg);\r
appData.ignoreColors = IsDlgButtonChecked(hDlg, OPT_Reversed);\r
appData.findMirror = IsDlgButtonChecked(hDlg, OPT_Mirror);\r
+ GetDlgItemText(hDlg, OPT_Counts, buf, MSG_SIZ);\r
+ appData.minPieces = appData.maxPieces = 0;\r
+ sscanf(buf, "%d-%d", &appData.minPieces, &appData.maxPieces);\r
+ if(appData.maxPieces < appData.minPieces) appData.maxPieces = appData.minPieces;\r
EndDialog(hDlg, TRUE);\r
return TRUE;\r
\r