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"); } }
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); }
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); }
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); }