X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gnushogi%2Ftcontrl.c;h=4e1da41d8c2a69a2eaa02d0e7471ec475db19c54;hb=af3a8b2625ff5f715af2b306dd486ed9cad4e790;hp=00a2032ef0d2ff8f3d1618a0d4cd2c42eb24b7d0;hpb=1907f35d3370f971df16e40dec4135110386a84c;p=gnushogi.git diff --git a/gnushogi/tcontrl.c b/gnushogi/tcontrl.c index 00a2032..4e1da41 100644 --- a/gnushogi/tcontrl.c +++ b/gnushogi/tcontrl.c @@ -164,7 +164,8 @@ void SetResponseTime(short side) short rtf = in_opening_stage ? 8 : 2; short tcq = in_opening_stage ? 2 : 4; - TimeControl.clock[side] += TCadd; + if(!xboard) /* no pre-add of increment in XBoard mode */ + TimeControl.clock[side] += TCadd; ResponseTime = (TimeControl.clock[side]) / (((TimeControl.moves[side]) * rtf) + 1); TCleft = (long)ResponseTime / tcq; @@ -252,7 +253,9 @@ void SetResponseTime(short side) else { /* calculate avg time per move remaining */ - TimeControl.clock[side] += TCadd; + + if(!xboard) /* no pre-add of increment in XBoard mode */ + TimeControl.clock[side] += TCadd; ResponseTime = (TimeControl.clock[side]) / (((TimeControl.moves[side]) * 2) + 1); @@ -295,7 +298,7 @@ void SetResponseTime(short side) TCcount = MAXTCCOUNTX; } #endif - +printf("# %2d. moves=%d,%d time=%d,%d ResponseTime=%d+%d\n",GameCnt,TimeControl.moves[computer],TimeControl.moves[opponent],TimeControl.clock[computer],TimeControl.clock[opponent],ResponseTime,TCleft); assert(TCcount <= MAXTCCOUNTX); } @@ -414,3 +417,48 @@ ElapsedTime(ElapsedTime_mode iop) dsp->UpdateClocks(); } } + + +void +SetTimeControl(void) +{ + if (TCflag) + { + TimeControl.moves[black] = TimeControl.moves[white] = TCmoves; + TimeControl.clock[black] += 6000L * TCminutes + TCseconds * 100; + TimeControl.clock[white] += 6000L * TCminutes + TCseconds * 100; + } + else + { + TimeControl.moves[black] = TimeControl.moves[white] = 0; + TimeControl.clock[black] = TimeControl.clock[white] = 0; + } + + flag.onemove = (TCmoves == 1); + et = 0; + ElapsedTime(COMPUTE_AND_INIT_MODE); +} + +void +RenewTimeControl(int side, int TCadd) +{ + if (flag.gamein || TCadd) + { + TimeCalc(); + } + else if (TimeControl.moves[side] == 0) + { + if (XC) + { + if (XCmore < XC) + { + TCmoves = XCmoves[XCmore]; + TCminutes = XCminutes[XCmore]; + TCseconds = XCseconds[XCmore]; + XCmore++; + } + } + + SetTimeControl(); + } +}