Integrate castling and e.p. rights into board array; bugfix for EditPosition
authorH.G. Muller <h.g.muller@hccnet.nl>
Fri, 6 Nov 2009 03:23:44 +0000 (19:23 -0800)
committerArun Persaud <arun@nubati.net>
Fri, 6 Nov 2009 06:44:15 +0000 (22:44 -0800)
commit91e0735ab1cbc57465e0252bc95b90bc2ab13caa
tree5db69da551c9d6a49500d220de970c6611bb69f4
parentb4785979256d342c544eaca1a6644a70eb96b2e0
Integrate castling and e.p. rights into board array; bugfix for EditPosition

A large-scale operation that I have been postponing since the very first 4.4.0:
The castling and e.p. rights are now integrated into the board array, as
boards[moveNr][CASTLING][i] replacing castlingRights[moveNr][i] and
boards[moveNr][EP_STATUS] replacing epStatus[moveNr]
These quantities are now automatically copied with the position by CopyBoards
(allowing the removal of lots of dedicated copying code), and passed as
function arguments with the position (so that the moves.c functions like
TestLegality, MateTest, CoordsToAlgebraic, Disambiguate, GenLegal
no longer need explicit e.p. and castling parameters.

Also fixed a bug introduced by a recent previous fix: by adding fake castling
rights to a position set up through the EditPosition menu, I destroyed the
castling rights of a pasted FEN. Faking castling rights is now made conditional
in EditPositionDone(), depending on the caller. (I had not realized it was also
called after FEN pasting, to send the position to the engine.)
backend.c
book.c
common.h
moves.c
moves.h
parser.h
parser.l
winboard/jaws.c
winboard/winboard.c
xboard.c