private void SaveGame()
        {
            Saves.SaveGame saveGame     = new Assets.GameCode.Saves.SaveGame();
            GameScene      currentScene = StateHolder.StateManager.GetCurrentScene();

            saveGame.mLoadScene     = currentScene;
            saveGame.mMapState      = StateHolder.StateManager.LoadMapState();
            saveGame.mCampaignState = StateHolder.StateManager.LoadCampaignState();

            // TODO: Note that saving from a non-campaign card game is not yet implemented
            // since we have not gone through choosing a save slot in that case.
            if ( // currentScene == GameScene.CardGame ||
                currentScene == GameScene.CampaignCardGame)
            {
                saveGame.mCardGameState = StateHolder.StateManager.LoadCardGameState();
            }
            else
            {
                saveGame.mCardGameState = null;
            }

            // Saving non-campaign card games is not supported, see above
            if (currentScene != GameScene.CardGame)
            {
                SaveDescription saveDesc = StateHolder.StateManager.GetCurrentSaveDesc();
                Saves.SaveManager.SaveGame(saveDesc.slot, saveDesc.saveName, saveGame);
            }
            else
            {
                UnityEngine.Debug.LogWarning("Saving from a non-campaign card game is not supported");
            }
        }
Esempio n. 2
0
        public void SaveGame()
        {
            Saves.SaveGame theSave = new Assets.GameCode.Saves.SaveGame();
            theSave.mCampaignState = mCampaignState;
            theSave.mMapState      = mMapState;
            theSave.mCardGameState = null;
            theSave.mLoadScene     = Assets.GameCode.State.GameScene.CampaignMap;

            State.SaveDescription saveDesc = State.StateHolder.StateManager.GetCurrentSaveDesc();
            Saves.SaveManager.SaveGame(saveDesc.slot, saveDesc.saveName, theSave);
        }
Esempio n. 3
0
        public static bool LoadSave(SaveSlot slot, ref string outSaveName, out SaveGame outSaveGame)
        {
            outSaveGame = new Assets.GameCode.Saves.SaveGame();

            System.IO.FileStream fileStream = null;
            bool result = GetFileStream(slot, System.IO.FileMode.Open, ref fileStream);

            if (result == false)
            {
                return(false);
            }

            BinaryFormatter formatter = new BinaryFormatter();
            bool            success   = true;

            try
            {
                byte[] saveVersionBytes = new byte[sizeof(int)];
                int    bytesRead        = fileStream.Read(saveVersionBytes, 0, sizeof(int));
                UnityEngine.Debug.Assert(bytesRead == sizeof(int));

                int saveVersion = System.BitConverter.ToInt32(saveVersionBytes, 0);
                UnityEngine.Debug.Assert(saveVersion == kSaveVersion);

                outSaveName = (string)formatter.Deserialize(fileStream);
                UnityEngine.Debug.Log("Save game name: " + outSaveName);
                outSaveGame = (SaveGame)formatter.Deserialize(fileStream);
            }
            catch (SerializationException e)
            {
                UnityEngine.Debug.Log("Failed to deserialize save file. Reason: " + e.Message);
                success = false;
            }
            catch (System.IO.IOException e)
            {
                UnityEngine.Debug.Log("Failed to deserialize save file. Reason: " + e.Message);
                success = false;
            }
            finally
            {
                fileStream.Close();
            }

            UnityEngine.Debug.Assert(success);
            return(success);
        }
Esempio n. 4
0
 public void SaveGame()
 {
     Saves.SaveGame theSave = new Assets.GameCode.Saves.SaveGame();
     if (mIsCampaignCardGame)
     {
         theSave.mCampaignState = State.StateHolder.StateManager.LoadCampaignState();
         theSave.mMapState      = State.StateHolder.StateManager.LoadMapState();
         theSave.mCardGameState = TheCardGameState;
         theSave.mLoadScene     = State.GameScene.CampaignCardGame;
     }
     else
     {
         theSave.mCampaignState = null;
         theSave.mMapState      = null;
         theSave.mCardGameState = TheCardGameState;
         theSave.mLoadScene     = State.GameScene.CardGame;
     }
     // TODO - maybe? make this work for non-campaign card games
     // (they will not currently have a save desc set up).
     State.SaveDescription saveDesc = State.StateHolder.StateManager.GetCurrentSaveDesc();
     Saves.SaveManager.SaveGame(saveDesc.slot, saveDesc.saveName, theSave);
 }