public void Init(SaveGameMenuController p_controller, String p_name, SaveGameMeta p_meta, Boolean p_showDate) { m_showDate = p_showDate; m_controller = p_controller; m_name = p_name; m_meta = p_meta; name = p_name; InitData(); }
private Int32 SortSaveGamesByDate(SaveGameMeta p_a, SaveGameMeta p_b) { Int32 num = p_a.Time.CompareTo(p_b.Time) * -1; if (num != 0) { return(num); } return(p_a.SaveNumber.CompareTo(p_b.SaveNumber) * -1); }
private Int32 SortMetasByDate(SaveGameMeta p_a, SaveGameMeta p_b) { Int32 num = p_a.Type.CompareTo(p_b.Type) * -1; if (num != 0) { return(num); } return(SortSaveGamesByDate(p_a, p_b)); }
public void ClickedEntry(SaveGameEntry p_saveGameEntry) { Texture mainTexture = m_defaultTexture; if (m_selectedEntry != null) { m_selectedEntry.SetSelected(false); } m_selectedEntry = p_saveGameEntry; if (m_selectedEntry != null) { m_selectedEntry.SetSelected(true); m_saveGameName.text = m_selectedEntry.Name; SaveGameMeta meta = p_saveGameEntry.Meta; TimeSpan playTime = meta.PlayTime; m_gameTimeLabel.text = LocaManager.GetText("SAVEGAMEMENU_GAMETIME_FORMAT", playTime.Days, playTime.Hours); m_difficultyLabel.text = LocaManager.GetText((meta.Difficulty != EDifficulty.NORMAL) ? "GUI_DIFFICULTY_WARRIOR" : "GUI_DIFFICULTY_ADVENTURER"); Byte[] saveGameImage = LegacyLogic.Instance.WorldManager.SaveGameManager.GetSaveGameImage(p_saveGameEntry.name); if (saveGameImage != null) { if (m_SavegamePreview == null) { m_SavegamePreview = new Texture2D(1, 1, TextureFormat.RGBA32, false); m_SavegamePreview.hideFlags = HideFlags.DontSave; } if (m_SavegamePreview.LoadImage(saveGameImage)) { mainTexture = m_SavegamePreview; } } else { m_gameTimeLabel.text = " - "; m_difficultyLabel.text = String.Empty; } Boolean state = LegacyLogic.Instance.WorldManager.SaveGameManager.SaveGameExists(p_saveGameEntry.name); if (!m_saveMenu) { NGUITools.SetActive(m_loadButton.gameObject, state); } } else { if (!m_saveMenu) { NGUITools.SetActive(m_loadButton.gameObject, false); } m_gameTimeLabel.text = " - "; m_difficultyLabel.text = String.Empty; m_saveGameName.text = LocaManager.GetText("SAVEGAMEMENU_SELECT_SAVEGAME"); } m_screenshot.mainTexture = mainTexture; UpdateDeleteButton(); }
public Dictionary <String, SaveGameMeta> GetAllSaveGames(Boolean isForSaveMenu) { Dictionary <String, SaveGameMeta> dictionary = new Dictionary <String, SaveGameMeta>(); UPLAY_SAVE_GameList uplay_SAVE_GameList; Int32 saveGameList = GetSaveGameList(out uplay_SAVE_GameList); if (saveGameList != 0) { IntPtr list = uplay_SAVE_GameList.list; for (Int32 i = 0; i < uplay_SAVE_GameList.count; i++) { IntPtr ptr = Marshal.ReadIntPtr(list, 0); UPLAY_SAVE_Game p_saveGame = (UPLAY_SAVE_Game)Marshal.PtrToStructure(ptr, typeof(UPLAY_SAVE_Game)); if (p_saveGame.id > 0u) { using (MemoryStream memoryStream = OpenSaveGame(p_saveGame)) { if (memoryStream == null) { return(dictionary); } using (BinaryReader binaryReader = new BinaryReader(memoryStream)) { SaveGameMeta value = SaveGame.ReadMetaData(binaryReader, true); if (value.Loaded) { value.Name = p_saveGame.nameUtf8; dictionary.Add(value.Name, value); } } } } list = new IntPtr(list.ToInt32() + IntPtr.Size); } } return(dictionary); }
public void LoadSaveGameList() { Dictionary <String, SaveGameMeta> allSaveGames = LegacyLogic.Instance.WorldManager.SaveGameManager.GetAllSaveGames(m_saveMenu); List <SaveGameMeta> list = new List <SaveGameMeta>(allSaveGames.Values); if (list.Count == 0) { NGUITools.SetActive(m_loadButton, false); } m_maxPage = (Int32)(list.Count / (Single)m_entriesPerPage + 1f); if (list.Count % m_entriesPerPage == 0) { m_maxPage--; } m_page = Math.Min(m_page, m_maxPage); m_pageLabel.text = m_page + 1 + "/" + m_maxPage; NGUITools.SetActive(m_nextPageButton, m_page < m_maxPage - 1); NGUITools.SetActive(m_previousPageButton, m_page > 0); Int32 num = 0; Int32 num2 = 0; if (m_saveMenu) { num2 = 1; } if (!m_inMenu && m_saveMenu && m_page == 0) { m_entries[num].Init(this, LocaManager.GetText("SAVEGAME_MENU_NEW_SLOT"), default(SaveGameMeta), false); m_createNewSlotEntry = m_entries[num]; m_entries[num].SetVisible(true); ClickedEntry(m_entries[num]); num++; } list.Sort(new Comparison <SaveGameMeta>(SortMetasByDate)); for (Int32 i = 0; i < list.Count; i++) { SaveGameMeta p_meta = list[i]; if (i >= m_page * m_entriesPerPage - num2) { m_entries[num].Init(this, p_meta.Name, p_meta, true); m_entries[num].SetVisible(true); num++; } if (num >= m_entriesPerPage) { break; } } m_saveGameEntryList.Reposition(); for (Int32 j = num; j < m_entriesPerPage; j++) { m_entries[j].SetVisible(false); } if (!m_saveMenu || m_page > 0) { if (num > 0) { ClickedEntry(m_entries[0]); } else { ClickedEntry(null); } } UpdateDeleteButton(); if (LegacyLogic.Instance.WorldManager.SaveGameManager.CheckForError() != ESaveGameError.NONE) { String text = LocaManager.GetText("ERROR_POPUP_MESSAGE_CAPTION"); String text2 = LocaManager.GetText("SAVEGAME_ERROR_COULD_NOT_RECEIVE_SAVEGAMES"); PopupRequest.Instance.OpenRequest(PopupRequest.ERequestType.CONFIRM, text, text2, null); } }