/// <summary> /// Restores active savefile from a given backup; aborts if active savefile is not empty. /// </summary> /// <param name="backup"><see cref="UserDataStateRelay"/> to be cloned.</param> /// <returns><c>true</c> if the operation was successful; <c>false</c> otherwise.</returns> public static bool RestoreActiveSaveFromBackup(UserDataStateRelay backup) { if (backup.Location == ActiveSave?.Location) { Wood.WriteLine("Can not copy active save into itself!"); return(false); } if (ActiveSave?.CurrState != UserDataStateRelay.UDSRState.Empty) { Wood.WriteLine("Active save not empty, will not overwrite!"); return(false); } ; try { Wood.WriteLine("Restoring save from backup..."); ActiveSave = backup.CloneTo(UserDataFolder); Wood.WriteLine("Backup restore successful."); return(true); } catch (NullReferenceException ne) { Wood.WriteLine("ERROR RESTORING A SAVEFILE BACKUP:"); Wood.WriteLine(ne, 1); } return(true); }
public static void StashActiveSave() { if (!BlepOut.IsMyPathCorrect) { return; } UserDataStateRelay udsr = ActiveSave ?? new UserDataStateRelay(UserDataFolder); AllBackups.Add(udsr.CloneTo(PathForNewBackup)); }