X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=engineoutput.c;h=a21282e0fdffc5ad33fcd9a77410f50c74407b2e;hb=56310c5b198bc521e0a715377c68378b7bcf10a5;hp=463f652c35d3b6333c677e1e189b5c2f310c7e9e;hpb=2eff6e6600cef28c3b915205dbd75e63b3cd641e;p=xboard.git diff --git a/engineoutput.c b/engineoutput.c index 463f652..a21282e 100644 --- a/engineoutput.c +++ b/engineoutput.c @@ -43,6 +43,7 @@ #include "common.h" #include "frontend.h" #include "backend.h" +#include "moves.h" #include "engineoutput.h" typedef struct { @@ -75,6 +76,25 @@ static char header[MSG_SIZ]; #define MAX_VAR 400 static int scores[MAX_VAR], textEnd[MAX_VAR], curDepth[2], nrVariations[2]; +void MakeEngineOutputTitle() +{ + static char buf[MSG_SIZ]; + static char oldTitle[MSG_SIZ]; + char *title = "Engine Output"; + extern int initialRulePlies; + int count; + // figure out value of 50-move counter + count = currentMove; + while( (signed char)boards[count][EP_STATUS] <= EP_NONE && count > backwardMostMove ) count--; + if( count == backwardMostMove ) count -= initialRulePlies; + count += 2*appData.ruleMoves - currentMove; + snprintf(buf, MSG_SIZ, "%s (%d ply to draw)", title, count); + if(count <= 40) title = buf; + if(!strcmp(oldTitle, title)) return; + safeStrCpy(oldTitle, title, MSG_SIZ); + SetEngineOutputTitle(title); +} + // back end, due to front-end wrapper for SetWindowText, and new SetIcon arguments void SetEngineState( int which, int state, char * state_data ) {