コード例 #1
0
ファイル: GameAnalytics.cs プロジェクト: jrutschke/project
        /*
         * 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;
            }
        }
コード例 #2
0
ファイル: GameAnalytics.cs プロジェクト: jrutschke/project
 /*
  * Dtarts saving process
  */
 public void saveToSaveFile()
 {
     if (savingState == SpectrumEnums.SavingState.NotSaving)
     {
         savingState = SpectrumEnums.SavingState.ReadyToOpenStorageContainer;
         saveLoadOrDelete = SpectrumEnums.SaveLoadOrDelete.save;
     }
 }