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