Add time increment after move in XBoard mode
[gnushogi.git] / gnushogi / search.c
index 4b967d0..f950a6d 100644 (file)
@@ -4,6 +4,7 @@
  * ----------------------------------------------------------------------
  * Copyright (c) 1993, 1994, 1995 Matthias Mutz
  * Copyright (c) 1999 Michael Vanier and the Free Software Foundation
+ * Copyright (c) 2008, 2013, 2014 Yann Dirson and the Free Software Foundation
  *
  * GNU SHOGI is based on GNU CHESS
  *
@@ -43,6 +44,7 @@ short PVari;        /* Is this the PV */
 #endif
 
 short zwndw;
+short movesLeft, currentMove;
 
 
 
@@ -401,7 +403,7 @@ SelectMove(short side, SelectMove_mode iop)
     /********************** end of main loop ***************************/
 
     /* background mode */
-    if (iop == BACKGROUND_MODE)
+    if (background) /* originally: if (iop == BACKGROUND_MODE) */
         return;
 
     if (rpt >= 3)
@@ -449,8 +451,11 @@ SelectMove(short side, SelectMove_mode iop)
 
     /* If Time Control get the elapsed time */
     if (TCflag)
+    {
         ElapsedTime(COMPUTE_AND_INIT_MODE);
-
+        if(xboard) /* In XBoard increment is added after move */
+            TimeControl.clock[side] += TCadd;
+    }
     /* update time control info */
     dsp->OutputMove();
 
@@ -871,6 +876,8 @@ search(short side,
 #endif /* QUIETBACKGROUND */
                     dsp->ShowCurrentMove(pnt, node->f, node->t);
             }
+            movesLeft = TrPnt[2] - pnt; /* to report with XBoard periodic updates */
+            currentMove = node->f << 8 | node->t;
         }
 
         if (!(node->flags & exact))