Introduce StateInfo instead of UndoInfo

We don't backup anymore but use the renamed StateInfo
argument passed in do_move() to store the new position
state when doing a move.

Backup is now just revert to previous StateInfo that we know
because we store a pointer to it.
Note that now backing store is up to the caller, Position is
stateless in that regard, state is accessed through a pointer.

This patch will let us remove all the backup/restore copying,
just a pointer switch is now necessary.

Note that do_null_move() still uses StateInfo as backup.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba
2009-02-22 20:16:21 +01:00
parent 2f6c5f00e6
commit 8f59de48f5
6 changed files with 255 additions and 280 deletions

View File

@@ -219,12 +219,12 @@ namespace {
if (token == "moves")
{
Move move;
UndoInfo u;
StateInfo st;
while (!uip.eof())
{
uip >> token;
move = move_from_string(RootPosition, token);
RootPosition.do_move(move, u);
RootPosition.do_move(move, st);
if (RootPosition.rule_50_counter() == 0)
RootPosition.reset_game_ply();
}