/// <summary> /// Restores a saved state. /// </summary> /// <param name="saveState"> /// The save state. /// </param> /// <returns> /// A value which indicates whether the restore was successful. /// </returns> protected bool RestoreState(ZmachineSaveState saveState) { if (saveState.Memory == null || saveState.CallStack == null) { return false; } this.Restart(); this.Memory.Restore(saveState.Memory); this.CallStack.Restore(saveState.CallStack); this.DiscoverCapabilities(); this.State = MachineState.Running; return true; }
/// <summary> /// Restores a saved state. /// </summary> /// <param name="saveState"> /// The saved state to restore. /// </param> /// <returns> /// A value indicating whether the restore succeeded. /// </returns> bool IZmachine.Restore(ZmachineSaveState saveState) { lock (this.Memory) { if (this.RestoreState(saveState)) { this.FinishRestoreOperation(true); return true; } return false; } }
/// <summary> /// Determines whether two save states are equal. /// </summary> /// <param name="zmachineSaveState"> /// The save state to compare. /// </param> /// <returns> /// A value indicating whether two save states are equal. /// </returns> public bool Equals(ZmachineSaveState zmachineSaveState) { return this.memory == zmachineSaveState.memory && this.callStack == zmachineSaveState.callStack; }