[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-gnubg] bug 4705: cannot take/drop after set matchid
From: |
Jim Segrave |
Subject: |
Re: [Bug-gnubg] bug 4705: cannot take/drop after set matchid |
Date: |
Sun, 17 Aug 2003 20:33:59 +0200 |
User-agent: |
Mutt/1.4.1i |
On Sun 17 Aug 2003 (19:53 +0200), Martin Janke wrote:
> Hi,
>
> when setting up a match which is in "double offered" state (like "set
> matchid MBngAAAAAAAA"), it is not possible to continue with "take" or
> "drop". (see also in bug tracker).
>
> Without knowing much about programming and C I tried to have a look
> myself. Here's how far I got:
>
> - CommandTake calls LinkToDouble, which returns Null if there's no
> previous record of type MOVE_DOUBLE. In this case (after SetMachtID),
> the previous record is of type MOVE_SETBOARD, because SetMatchID calls
> CommandSetBoard. Hence LinkToDouble returns Null and CommandTake also
> returns before doing its job.
>
> Hope that wasn't completely wrong and that it helps.
That's more or less it in a nutshell. Gnubg's internal structure for a
game consists of a few record types - gameinfo to describe a game,
setdice, setboard, setcube to create initial positions, move, double,
take, and resign. Take records can only exist as part of a pair, there
must be a double record to go with it. So you can't set up a position
with the cube being offered, you can only set up the position where
the opponent is about to double, start the match and manually play a
double for the opponent. Changing this would be a major overhaul at a
very low level in gnubg.
--
Jim Segrave address@hidden