Implement exclude moves
authorH.G. Muller <h.g.muller@hccnet.nl>
Wed, 14 Mar 2012 20:06:28 +0000 (21:06 +0100)
committerH.G. Muller <h.g.muller@hccnet.nl>
Wed, 14 Mar 2012 20:18:40 +0000 (21:18 +0100)
commit1514fbc6e388eb410d72a5c58a2cb371d2be0d7c
treec013ce22cdd61caae934b1fff4b7a6c1762f38c2
parentbad10108b12d035991f2c0411703b4c1bc54a990
Implement exclude moves

Dragging a piece by double-clicking it on the from-square in analysis mode
will not perform the entered move, but send an exclude or include command
to the engine for that move (provided the engine enabled this with
feature exclude=1), depending on if the move was already excluded or not.
To this end a map of excluded moves is kept, and cleared when we move to
another position through moving, undo, setboard or new. The user can see
whether he included or excluded the move, as exclude uses premove highlights.
  Commands "exclude|include all" are sent when we throw a double-clicked
piece off board (vertically or horizontally, respectively), but after
exclude all the most recent PV move is included again.
  Remaining problem is that promotions can only be excluded.
backend.c
backend.h