/// <summary> /// Save the all the data: "Email listings, printed pages, open tabs and all the sticky notes" /// </summary> /// <param name="playerData"></param> /// <param name="bm"></param> /// <param name="listings"></param> /// <param name="missionManager"></param> public static void SavePlayer(PlayerData playerData, BrowserManager bm, List <EmailListing> listings, MissionManager missionManager) { BinaryFormatter formatter = new BinaryFormatter(); string path = Application.persistentDataPath + "player.save"; FileStream stream = new FileStream(path, FileMode.Create); List <PrintStatusSave> printList = new List <PrintStatusSave>(); foreach (var currentState in bm.GetPrintStatus()) { printList.Add(new PrintStatusSave(currentState.Key, currentState.Value)); } PlayerSaveData playerSaveData = new PlayerSaveData(); playerSaveData.SetStickyNotes(GameObject.FindObjectOfType <HelpStickyManager>().objectListByID); playerSaveData.SetPrintedCaseIDs(GameObject.FindObjectOfType <FilingCabinet>().caseFolders); playerSaveData.SetLocation(playerData); playerSaveData.SetTabs(bm.tabList); playerSaveData.SetEmails(listings); playerSaveData.SetCreatedCases(missionManager.GetCreated()); playerSaveData.SetPlayerLevel(missionManager.playerLevel); playerSaveData.SetPrintStatus(printList); formatter.Serialize(stream, playerSaveData); stream.Close(); }