If you're like me, you're constantly running into walls and doing things you shouldn't be. Due to this, I need the undo command on almost everything I do. Marc Clifton has a nice, basic undo /redo framework on implementing this functionality which pretty much requires only three methods.
- Records current state before action has occured
- Moves back to the previous state
- Moves to the next state if one is there.