X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=backend.c;h=eeea66e70362c043207111270a2eb0363d097689;hb=e3b9e443498df502ad3ab226308574a9d862e003;hp=71aa6a529feed9b1712e7f3e0e2e51c47361a7cc;hpb=b9fd60495d47ef08fbff17ae883ae69d37fcb859;p=xboard.git diff --git a/backend.c b/backend.c index 71aa6a5..eeea66e 100644 --- a/backend.c +++ b/backend.c @@ -9931,7 +9931,7 @@ SetPlayer(int player) for(i=1; command[i]; i++) if(!strcmp(mnemonic[i], engineName)) break; if(mnemonic[i]) { snprintf(buf, MSG_SIZ, "-fcp %s", command[i]); - ParseArgsFromString(resetOptions); appData.fenOverride[0] = NULL; + ParseArgsFromString(resetOptions); appData.fenOverride[0] = NULL; appData.pvSAN[0] = FALSE; ParseArgsFromString(buf); } free(engineName); @@ -11804,7 +11804,7 @@ LoadPosition(f, positionNumber, title) lastLoadPositionFP = f; lastLoadPositionNumber = positionNumber; safeStrCpy(lastLoadPositionTitle, title, sizeof(lastLoadPositionTitle)/sizeof(lastLoadPositionTitle[0])); - if (first.pr == NoProc) { + if (first.pr == NoProc && !appData.noChessProgram) { StartChessProgram(&first); InitChessProgram(&first, FALSE); } @@ -11876,7 +11876,6 @@ LoadPosition(f, positionNumber, title) } startedFromSetupPosition = TRUE; - SendToProgram("force\n", &first); CopyBoard(boards[0], initial_position); if (blackPlaysFirst) { currentMove = forwardMostMove = backwardMostMove = 1; @@ -11889,7 +11888,10 @@ LoadPosition(f, positionNumber, title) DisplayMessage("", _("White to play")); } initialRulePlies = FENrulePlies; /* [HGM] copy FEN attributes as well */ - SendBoard(&first, forwardMostMove); + if(first.pr != NoProc) { // [HGM] in tourney-mode a position can be loaded before the chess engine is installed + SendToProgram("force\n", &first); + SendBoard(&first, forwardMostMove); + } if (appData.debugMode) { int i, j; for(i=0;i<2;i++){for(j=0;j<6;j++)fprintf(debugFP, " %d", boards[i][CASTLING][j]);fprintf(debugFP,"\n");}