From 8a46cc5ffa9864ad5741027be350c2e97cdc9831 Mon Sep 17 00:00:00 2001 From: H.G. Muller Date: Mon, 8 Feb 2010 17:55:44 +0100 Subject: [PATCH] Capture holdings of background observed game --- backend.c | 15 +++++++++++++-- 1 files changed, 13 insertions(+), 2 deletions(-) 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, "*% ")) { -- 1.7.0.4