break;
case AnalyzeMode:
case AnalyzeFile:
+ /* icsEngineAnalyze */
+ case IcsObserving:
+ if (!appData.icsEngineAnalyze) ignore = TRUE;
break;
case TwoMachinesPlay:
if ((cps->twoMachinesColor[0] == 'w') !=
prefixHint ? lastHint : "",
prefixHint ? " " : "", buf1);
- if (currentMove == forwardMostMove ||
- gameMode == AnalyzeMode || gameMode == AnalyzeFile) {
+ if (currentMove == forwardMostMove || gameMode == AnalyzeMode
+ || gameMode == AnalyzeFile || appData.icsEngineAnalyze) {
DisplayMove(currentMove - 1);
DisplayAnalysis();
}
programStats.line_is_book = 1;
if (currentMove == forwardMostMove || gameMode==AnalyzeMode ||
- gameMode == AnalyzeFile) {
+ gameMode == AnalyzeFile || appData.icsEngineAnalyze) {
DisplayMove(currentMove - 1);
DisplayAnalysis();
}
strcat(programStats.movelist, " ");
strcat(programStats.movelist, p);
if (currentMove == forwardMostMove || gameMode==AnalyzeMode ||
- gameMode == AnalyzeFile) {
+ gameMode == AnalyzeFile || appData.icsEngineAnalyze) {
DisplayMove(currentMove - 1);
DisplayAnalysis();
}
return;
if (gameMode != AnalyzeFile) {
- EditGameEvent();
- if (gameMode != EditGame) return;
+ if (!appData.icsEngineAnalyze) {
+ EditGameEvent();
+ if (gameMode != EditGame) return;
+ }
ResurrectChessProgram();
SendToProgram("analyze\n", &first);
first.analyzing = TRUE;
AnalysisPopUp(_("Analysis"),
_("Starting analysis mode...\nIf this message stays up, your chess program does not support analysis."));
}
- gameMode = AnalyzeMode;
+ if (!appData.icsEngineAnalyze) gameMode = AnalyzeMode;
pausing = FALSE;
ModeHighlight();
SetGameInfo();
void
ExitAnalyzeMode()
{
+ /* icsEngineAnalyze - possible call of other functions */
+ if (appData.icsEngineAnalyze) appData.icsEngineAnalyze = FALSE;
+
if (first.analysisSupport && first.analyzing) {
SendToProgram("exit\n", &first);
first.analyzing = FALSE;
{
char buf[MSG_SIZ];
- if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) {
+ if (gameMode == AnalyzeMode || gameMode == AnalyzeFile
+ || appData.icsEngineAnalyze) {
sprintf(buf, "Analysis (%s)", first.tidy);
AnalysisPopUp(buf, text);
}
int firstProtocolVersion;
int secondProtocolVersion;
Boolean showButtonBar;
+ Boolean icsEngineAnalyze;
#if ZIPPY
char *zippyLines;
char *zippyPinhead;
appData.reuseFirst = TRUE;
appData.reuseSecond = TRUE;
appData.blindfold = FALSE;
+ appData.icsEngineAnalyze = FALSE;
dcb.DCBlength = sizeof(DCB);
dcb.BaudRate = 9600;
dcb.fBinary = TRUE;
dcb.fAbortOnError = FALSE;
/* Microsoft SDK >= Feb. 2003 (MS VS >= 2002) */
#if (defined(_MSC_VER) && _MSC_VER <= 1200)
- dcb.wReserved = 0;
+ //dcb.wReserved = 0;
#else
dcb.wReserved = 0;
#endif
FILE *f;
UINT number;
char fileTitle[MSG_SIZ];
+ char buf[MSG_SIZ];
switch (message) {
case IDM_AnalysisMode:
if (!first.analysisSupport) {
- char buf[MSG_SIZ];
sprintf(buf, "%s does not support analysis", first.tidy);
DisplayError(buf, 0);
} else {
+ /* icsEngineAnlyze */
+ if (appData.icsActive) {
+ if (gameMode != IcsObserving) {
+ sprintf(buf, "You are not observing a game");
+ DisplayError(buf, 0);
+ /* secure check */
+ if (appData.icsEngineAnalyze) {
+ appData.icsEngineAnalyze = FALSE;
+ ExitAnalyzeMode();
+ ModeHighlight();
+ break;
+ }
+ break;
+ } else {
+ /* if enable, user want disable icsEngineAnalyze */
+ if (appData.icsEngineAnalyze) {
+ appData.icsEngineAnalyze = FALSE;
+ ExitAnalyzeMode();
+ ModeHighlight();
+ break;
+ }
+ appData.icsEngineAnalyze = TRUE;
+ }
+ }
if (!appData.showThinking) ToggleShowThinking();
AnalyzeModeEvent();
}
break;
-
case IDM_AnalyzeFile:
if (!first.analysisSupport) {
char buf[MSG_SIZ];
AutoPlayGameLoop(); /* call into back end */
break;
case ANALYSIS_TIMER_ID:
- if ((gameMode == AnalyzeMode || gameMode == AnalyzeFile) &&
- appData.periodicUpdates) {
+ if ((gameMode == AnalyzeMode || gameMode == AnalyzeFile
+ || appData.icsEngineAnalyze) && appData.periodicUpdates) {
AnalysisPeriodicEvent(0);
} else {
KillTimer(hwnd, analysisTimerEvent);
}
prevChecked = nowChecked;
+ /* icsEngineAnalyze - Do a sceure check too */
+ if (appData.icsEngineAnalyze) {
+ (void) CheckMenuItem(GetMenu(hwndMain), IDM_AnalysisMode,
+ MF_BYCOMMAND|MF_CHECKED);
+ } else {
+ (void) CheckMenuItem(GetMenu(hwndMain), IDM_AnalysisMode,
+ MF_BYCOMMAND|MF_UNCHECKED);
+ }
}
VOID
#ifdef ZIPPY
if (appData.zippyPlay) {
SetMenuEnables(hmenu, zippyEnables);
+ /* icsEngineAnalyze */
+ if (!appData.noChessProgram)
+ (void) EnableMenuItem(GetMenu(hwndMain), IDM_AnalysisMode,
+ MF_BYCOMMAND|MF_ENABLED);
}
#endif
}
args, 1);
}
+ /* icsEngineAnalyze - Currently not yet implemented in XBoard */
+ appData.icsEngineAnalyze = FALSE;
+
/*
* Create an icon.
*/