}\r
\r
VOID\r
+SayPieceType(char id)\r
+{\r
+ int f, r, nr = 0;\r
+ char buf[MSG_SIZ];\r
+ ChessSquare piece = CharToPiece(id);\r
+ if(piece == EmptySquare) {\r
+ SayString(T_("That is not a valid piece"), FALSE);\r
+ return;\r
+ }\r
+ for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) {\r
+ if(boards[currentMove][r][f] != piece) continue;\r
+ if(!nr++) SayString(PieceToName(piece, 1), FALSE), SayString(T_("on"), FALSE);\r
+ else SayString(T_("and"), FALSE);\r
+ SayString(SquareToChar(f), FALSE);\r
+ SayString(SquareToNum(r), FALSE);\r
+ }\r
+ if(!nr) SayString(T_("There is no"), FALSE); SayString(PieceToName(piece, 1), FALSE); SayString(T_("on the board"), FALSE);\r
+}\r
+\r
+VOID\r
SayCurrentPos()\r
{\r
ChessSquare currentpiece;\r
case 't': k = '\t'; break;\r
}\r
languageBuf[--i] = k;\r
+\r
}\r
i++;\r
}\r
\r
shiftKey = GetKeyState(VK_SHIFT) < 0; // [HGM] remember last shift status\r
GetDlgItemText(hDlg, OPT_Move, move, sizeof(move));\r
+#ifdef JAWS\r
+ if(strlen(move) == 1 && !isdigit(*move)) SayPieceType(*move); else\r
+#endif\r
TypeInDoneEvent(move);\r
EndDialog(hDlg, TRUE);\r
return TRUE;\r