X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=backend.c;h=9636abcb2c419775db30dbb3ce18d434b9be5c67;hb=8a46cc5ffa9864ad5741027be350c2e97cdc9831;hp=fd2aebb7206349ca6190d939a822ced9ed94b1b8;hpb=c187d44b624a0aa909c8eb20d1d3a4a8cb203e17;p=xboard.git diff --git a/backend.c b/backend.c index fd2aebb..9636abc 100644 --- a/backend.c +++ b/backend.c @@ -3569,8 +3569,8 @@ read_from_ics(isr, closure, data, count, error) if (appData.debugMode) fprintf(debugFP, "Parsing holdings: %s, currentMove = %d\n", parse, currentMove); - if (sscanf(parse, " game %d", &gamenum) == 1 && - gamenum == ics_gamenum) { + if (sscanf(parse, " game %d", &gamenum) == 1) { + if(gamenum == ics_gamenum) { // [HGM] bughouse: old code if part of foreground game if (gameInfo.variant == VariantNormal) { /* [HGM] We seem to switch variant during a game! * Presumably no holdings were displayed, so we have @@ -3622,6 +3622,17 @@ read_from_ics(isr, closure, data, count, error) DrawPosition(FALSE, boards[currentMove]); DisplayTitle(str); + } else if(appData.bgObserve) { // [HGM] bughouse: holdings of other game => background + sscanf(parse, "game %d white [%s black [%s <- %s", + &gamenum, white_holding, black_holding, + new_piece); + white_holding[strlen(white_holding)-1] = NULLCHAR; + black_holding[strlen(black_holding)-1] = NULLCHAR; + /* [HGM] copy holdings to partner-board holdings area */ + CopyHoldings(partnerBoard, white_holding, WhitePawn); + CopyHoldings(partnerBoard, black_holding, BlackPawn); + if(partnerUp) DrawPosition(FALSE, partnerBoard); + } } /* Suppress following prompt */ if (looking_at(buf, &i, "*% ")) {