Implement undo command
[bonanza.git] / makemove.c
index 17713d3..210dfae 100644 (file)
@@ -420,6 +420,7 @@ make_move_root( tree_t * restrict ptree, unsigned int move, int flag )
     }
 
   root_turn = Flip( root_turn );
+  move_list[move_ptr++] = move; // [HGM] undo: remember all moves played in root
 
   /* detect checkmate */
   if ( check && is_mate( ptree, 1 ) ) { game_status |= flag_mated; }
@@ -515,6 +516,7 @@ int CONV unmake_move_root( tree_t * restrict ptree )
   ptree->nrep -= 1;
   game_status &= ~( flag_drawn | flag_mated );
   root_turn    = Flip(root_turn);
+  move_ptr--; // [HGM] undo: clip last move off game history
 
   for ( i = NUM_UNMAKE-1; i > 0; i -= 1 )
     {