Ejemplo n.º 1
0
        private void fatxSaveSelector_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (fatxSaveSelector.SelectedItem != null && fatxSaveSelector.SelectedItem is StartPageViewModel.FATXGameSave)
            {
                // Get Selected Save
                StartPageViewModel.FATXGameSave fatxGameSave = (StartPageViewModel.FATXGameSave)fatxSaveSelector.SelectedItem;
                SaveLocalStorage gamesaveStorage             = new SaveLocalStorage();

                // Write selected save data
                gamesaveStorage.FATXDrive       = fatxGameSave.FATXDrive;
                gamesaveStorage.IsSaveFromFATX  = true;
                gamesaveStorage.FATXPath        = gamesaveStorage.FATXPath;
                gamesaveStorage.SavePackageName = fatxGameSave.PackageName;
                gamesaveStorage.USID            = fatxGameSave.USID;

                // Create extraction location
                string extractionLocation = Backend.VariousFunctions.CreateTemporaryFile(Backend.VariousFunctions.GetTemporaryExtractionLocation());

                // Extract STFS Package from Device
                fatxGameSave.FATXDrive.FileFromPath(fatxGameSave.FATXPath).Extract(extractionLocation);

                // Close Stream
                fatxGameSave.Stream.Close();

                // Write Extraction Path
                gamesaveStorage.SaveLocalPath = extractionLocation;

                // Load Game Viewer
                Settings.HomeWindow.AddGameSaveModule(gamesaveStorage, (Utilities.HaloGames)Enum.Parse(typeof(Utilities.HaloGames), fatxGameSave.SafeGameName));
            }
        }
Ejemplo n.º 2
0
        public void AddGameSaveModule(SaveLocalStorage gameSave, Utilities.HaloGames game)
        {
            // Check it isn't already open
            if (Settings.OpenedSaves.Contains(gameSave.USID))
            {
                // Tell User
                MetroMessageBox.Show("Save Already Open!", "The selected gamesave is already open, let us take you there.");

                foreach (TabItem tab in homeTabControl.Items)
                {
                    if ((string)tab.Tag == gameSave.USID)
                    {
                        homeTabControl.SelectedItem = tab;
                        break;
                    }
                }
            }
            else
            {
                // Lets open this save
                CloseableTabItem tab = new CloseableTabItem();
                tab.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
                tab.VerticalAlignment   = System.Windows.VerticalAlignment.Stretch;
                tab.Tag = gameSave.USID;

                switch (game)
                {
                case Utilities.HaloGames.Halo3:
                    tab.Content = new SaveManager.Games.Halo3.Halo3SaveViewer(gameSave, tab);
                    break;

                case Utilities.HaloGames.Halo3_ODST: break;

                case Utilities.HaloGames.HaloReach: break;

                case Utilities.HaloGames.HaloCEX: break;

                case Utilities.HaloGames.Halo4: break;
                }

                homeTabControl.Items.Add(tab);
                homeTabControl.SelectedItem = tab;
            }
        }
Ejemplo n.º 3
0
        public Halo3SaveViewer(SaveLocalStorage saveStorage, TabItem tabParent)
        {
            // CampaignSave.PlayerBiped.Position.X.Biped.Position.X

            InitializeComponent();

            // Store SaveStorage
            _saveStorage = saveStorage;

            // Store Parent Tab
            _tabParent = tabParent;

            // Load Campaign Save
            Load();

            // Write Header (Game Name - Level - Gamertag)
            tabParent.Header = string.Format("Halo 3 - {0} - {1}", Utilities.GetFriendlyMissionName(_campaignSave.Header.Map, Utilities.HaloGames.Halo3), _campaignSave.Header.Gamertag);

            // Set DataContext
            this.DataContext = this;
        }