/* * Saves, Loads or Deletes a saveFile */ private void UpdateSavingLoadingOrDeleting(SpectrumEnums.SaveLoadOrDelete saveLoadOrDelete) { switch (savingState) { case SpectrumEnums.SavingState.ReadyToSelectStorageDevice: asyncResult = StorageDevice.BeginShowSelector(PlayerIndex.One, null, null); savingState = SpectrumEnums.SavingState.SelectingStorageDevice; break; case SpectrumEnums.SavingState.SelectingStorageDevice: if (asyncResult.IsCompleted) { storageDevice = StorageDevice.EndShowSelector(asyncResult); savingState = SpectrumEnums.SavingState.ReadyToOpenStorageContainer; } break; case SpectrumEnums.SavingState.ReadyToOpenStorageContainer: if (storageDevice == null || !storageDevice.IsConnected) { savingState = SpectrumEnums.SavingState.ReadyToSelectStorageDevice; } else { asyncResult = storageDevice.BeginOpenContainer("SpectrumSaveGame", null, null); savingState = SpectrumEnums.SavingState.OpeningStorageContainer; } break; case SpectrumEnums.SavingState.OpeningStorageContainer: if (asyncResult.IsCompleted) { storageContainer = storageDevice.EndOpenContainer(asyncResult); if (saveLoadOrDelete == SpectrumEnums.SaveLoadOrDelete.save) { savingState = SpectrumEnums.SavingState.ReadyToSave; } else if (saveLoadOrDelete == SpectrumEnums.SaveLoadOrDelete.load) { savingState = SpectrumEnums.SavingState.ReadyToLoad; } else { savingState = SpectrumEnums.SavingState.ReadyToDelete; } } break; case SpectrumEnums.SavingState.ReadyToLoad: if (storageContainer == null) { savingState = SpectrumEnums.SavingState.ReadyToOpenStorageContainer; } else { Load(); storageContainer.Dispose(); storageContainer = null; savingState = SpectrumEnums.SavingState.NotSaving; } break; case SpectrumEnums.SavingState.ReadyToDelete: if (storageContainer == null) { savingState = SpectrumEnums.SavingState.ReadyToOpenStorageContainer; } else { try { DeleteExisting(); } catch (IOException e) { // error } finally { storageContainer.Dispose(); storageContainer = null; savingState = SpectrumEnums.SavingState.NotSaving; } } break; case SpectrumEnums.SavingState.ReadyToSave: if (storageContainer == null) { savingState = SpectrumEnums.SavingState.ReadyToOpenStorageContainer; } else { try { DeleteExisting(); Save(); } catch (IOException e) { // error } finally { storageContainer.Dispose(); storageContainer = null; savingState = SpectrumEnums.SavingState.NotSaving; } } break; } }
/* * Dtarts saving process */ public void saveToSaveFile() { if (savingState == SpectrumEnums.SavingState.NotSaving) { savingState = SpectrumEnums.SavingState.ReadyToOpenStorageContainer; saveLoadOrDelete = SpectrumEnums.SaveLoadOrDelete.save; } }