コード例 #1
0
 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();
 }
コード例 #2
0
ファイル: MainGUILogic.cs プロジェクト: acosin/MMXLegacy
        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);
        }
コード例 #3
0
ファイル: MainGUILogic.cs プロジェクト: acosin/MMXLegacy
        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));
        }
コード例 #4
0
        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();
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
            }
        }