Implement undo command
[bonanza.git] / makemove.c
index 83d8c9e..7ed2b7d 100644 (file)
@@ -421,6 +421,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; }
@@ -500,6 +501,7 @@ unmake_move_root( tree_t * restrict ptree, unsigned int move )
   root_nrep   -= 1;
   game_status &= ~( flag_drawn | flag_mated );
   root_turn   = Flip(root_turn);
+  move_ptr--; // [HGM] undo: clip last move off game history
 
   ptree->save_material[1]      = ptree->save_material[0];
   UnMakeMove( root_turn, move, 1 );