}\r
}\r
\r
+extern char *commentList[];\r
\r
VOID\r
SayMachineMove(int evenIfDuplicate)\r
{\r
int len, xPos, yPos, moveNr, secondSpace = 0, castle = 0, n;\r
ChessSquare currentpiece;\r
- char *piece, *xchar, *ynum, *p;\r
+ char *piece, *xchar, *ynum, *p, checkMark = 0;\r
char c, buf[MSG_SIZ], comment[MSG_SIZ];\r
static char disambiguation[2];\r
static int previousMove = 0;\r
if(secondSpace) len = secondSpace; // position behind move\r
if(messageText[len-1] == '+' || messageText[len-1] == '#') { /* you are in checkmate */\r
len--; // strip off check or mate indicator\r
+ checkMark = messageText[len]; // make sure still seen after we stip off promo piece\r
}\r
if(messageText[len-2] == '=') { /* promotion */\r
len-=2; // strip off promotion piece\r
SayString(piece, FALSE);\r
} else SayString("Capturing onn passann",FALSE);\r
}\r
- if(messageText[len] == '+') SayString("check", FALSE); else\r
- if(messageText[len] == '#') {\r
+ }\r
+ if(checkMark == '+') SayString("check", FALSE); else\r
+ if(checkMark == '#') {\r
SayString("finishing off", FALSE);\r
SayString(WhiteOnMove(n) ? "White" : "Black", FALSE);\r
- }\r
}\r
}\r
\r
SayString(comment, FALSE); // alphabetic comment (usually game end)\r
} else if(p) SayString(p, FALSE);\r
\r
+ if(commentDialog && commentList[currentMove]) SetFocus(commentDialog);\r
+\r
} else {\r
/* starts not with digit */\r
if(StrCaseStr(messageText, "illegal")) PlayIcsUnfinishedSound();\r
VK_PRIOR, IDM_LoadPrevPosition, VIRTKEY, SHIFT, ALT, NOINVERT\r
VK_LEFT, IDM_Backward, VIRTKEY, ALT, NOINVERT\r
VK_RIGHT, IDM_Forward, VIRTKEY, ALT, NOINVERT\r
+#ifndef JAWS\r
+ VK_LEFT, IDM_Backward, VIRTKEY, NOINVERT\r
+ VK_RIGHT, IDM_Forward, VIRTKEY, NOINVERT\r
+ VK_DOWN, IDM_ToEnd, VIRTKEY, NOINVERT\r
+ VK_DOWN, IDM_ToStart, VIRTKEY, NOINVERT\r
+#endif\r
END\r
\r
NO_ALT ACCELERATORS MOVEABLE PURE \r