if( (col + row) & 1 ) {\r
/* Lite square */\r
if( lite_w >= squareSize && lite_h >= squareSize ) {\r
+ if( lite_w >= squareSize*BOARD_WIDTH )\r
+ backTextureSquareInfo[row][col].x = (2*col+1)*lite_w/(2*BOARD_WIDTH) - squareSize/2; /* [HGM] cut out of center of virtual square */\r
+ else\r
backTextureSquareInfo[row][col].x = col * (lite_w - squareSize) / (BOARD_WIDTH-1); /* [HGM] divide by size-1 in stead of size! */\r
+ if( lite_h >= squareSize*BOARD_HEIGHT )\r
+ backTextureSquareInfo[row][col].y = (2*(BOARD_HEIGHT-row)-1)*lite_h/(2*BOARD_HEIGHT) - squareSize/2;\r
+ else\r
backTextureSquareInfo[row][col].y = (BOARD_HEIGHT-1-row) * (lite_h - squareSize) / (BOARD_HEIGHT-1);\r
backTextureSquareInfo[row][col].mode = GetBackTextureMode(liteBackTextureMode);\r
}\r
else {\r
/* Dark square */\r
if( dark_w >= squareSize && dark_h >= squareSize ) {\r
+ if( dark_w >= squareSize*BOARD_WIDTH )\r
+ backTextureSquareInfo[row][col].x = (2*col+1) * dark_w / (2*BOARD_WIDTH) - squareSize/2;\r
+ else\r
backTextureSquareInfo[row][col].x = col * (dark_w - squareSize) / (BOARD_WIDTH-1);\r
+ if( dark_h >= squareSize*BOARD_HEIGHT )\r
+ backTextureSquareInfo[row][col].y = (2*(BOARD_HEIGHT-row)-1) * dark_h / (2*BOARD_HEIGHT) - squareSize/2;\r
+ else\r
backTextureSquareInfo[row][col].y = (BOARD_HEIGHT-1-row) * (dark_h - squareSize) / (BOARD_HEIGHT-1);\r
backTextureSquareInfo[row][col].mode = GetBackTextureMode(darkBackTextureMode);\r
}\r
SAY("computer starts playing black");\r
break;\r
\r
+ case IDM_Match: // [HGM] match: flows into next case, after setting Match Mode and nr of Games\r
+ if(gameMode != BeginningOfGame) break; // allow menu item to remain enabled for better mode highligting\r
+ matchMode = 2;// distinguish from command-line-triggered case (matchMode=1)\r
+ appData.matchGames = appData.defaultMatchGames;\r
+ matchGame = 1;\r
+\r
case IDM_TwoMachines:\r
TwoMachinesEvent();\r
/*\r
{ IDM_MachineWhite, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_MachineBlack, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_TwoMachines, MF_BYCOMMAND|MF_GRAYED },\r
+ { IDM_Match, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_MachineBoth, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_AnalysisMode, MF_BYCOMMAND|MF_ENABLED },\r
{ IDM_AnalyzeFile, MF_BYCOMMAND|MF_GRAYED },\r
{ -1, -1 }\r
};\r
\r
-#ifdef ZIPPY\r
+#if ZIPPY\r
Enables zippyEnables[] = {\r
{ IDM_MoveNow, MF_BYCOMMAND|MF_ENABLED },\r
{ IDM_Hint, MF_BYCOMMAND|MF_ENABLED },\r
{ IDM_MachineWhite, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_MachineBlack, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_TwoMachines, MF_BYCOMMAND|MF_GRAYED },\r
+ { IDM_Match, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_AnalysisMode, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_AnalyzeFile, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_IcsClient, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_MachineWhite, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_MachineBlack, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_TwoMachines, MF_BYCOMMAND|MF_GRAYED },\r
+ { IDM_Match, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_TypeInMove, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_RetractMove, MF_BYCOMMAND|MF_GRAYED },\r
{ -1, -1 }\r
{ IDM_MachineWhite, MF_BYCOMMAND|MF_ENABLED },\r
{ IDM_MachineBlack, MF_BYCOMMAND|MF_ENABLED },\r
{ IDM_TwoMachines, MF_BYCOMMAND|MF_ENABLED },\r
+ { IDM_Match, MF_BYCOMMAND|MF_ENABLED },\r
{ IDM_TypeInMove, MF_BYCOMMAND|MF_ENABLED },\r
{ IDM_RetractMove, MF_BYCOMMAND|MF_ENABLED },\r
{ -1, -1 }\r
nowChecked = IDM_MachineWhite;\r
break;\r
case TwoMachinesPlay:\r
- nowChecked = IDM_TwoMachines;\r
+ nowChecked = matchMode ? IDM_Match : IDM_TwoMachines; // [HGM] match\r
break;\r
case AnalyzeMode:\r
nowChecked = IDM_AnalysisMode;\r
SetMenuEnables(hmenu, icsEnables);\r
EnableMenuItem(GetSubMenu(hmenu, OPTIONS_POS), ICS_POS,\r
MF_BYPOSITION|MF_ENABLED);\r
-#ifdef ZIPPY\r
+#if ZIPPY\r
if (appData.zippyPlay) {\r
SetMenuEnables(hmenu, zippyEnables);\r
if (!appData.noChessProgram) /* [DM] icsEngineAnalyze */\r
} else if (gameMode == MachinePlaysWhite) {\r
(void)EnableMenuItem(hMenu, IDM_MachineWhite, flags);\r
} else if (gameMode == TwoMachinesPlay) {\r
- (void)EnableMenuItem(hMenu, IDM_TwoMachines, flags);\r
+ (void)EnableMenuItem(hMenu, matchMode ? IDM_Match : IDM_TwoMachines, flags); // [HGM] match\r
}\r
}\r
\r