public bool OnEnter() { if (!this.focused) { return(false); } if (MainMenu.Visibility == Visibility.Visible) { if (mmItems.SelectedIndex == 0) // Entire Collection { this.byEntireCollection = true; fmItems.SelectedIndex = 0; ShowFilterMenu(); } if (mmItems.SelectedIndex == 1) // Selected Platform/Playlist { this.byEntireCollection = false; if (_platform == null & _playlist == null) { var da = new DoubleAnimationUsingKeyFrames(); da.KeyFrames.Add(new EasingDoubleKeyFrame(0, KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(0)))); da.KeyFrames.Add(new EasingDoubleKeyFrame(1, KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(200)))); da.KeyFrames.Add(new EasingDoubleKeyFrame(1, KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(800)))); da.KeyFrames.Add(new EasingDoubleKeyFrame(0, KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(1000)))); var sb = new Storyboard(); sb.Duration = TimeSpan.FromMilliseconds(1000); Storyboard.SetTarget(da, mmError); Storyboard.SetTargetProperty(da, new PropertyPath(OpacityProperty)); sb.Children.Add(da); sb.Begin(); } else { fmItems.SelectedIndex = 0; ShowFilterMenu(); } } return(true); } if (FilterMenu.Visibility == Visibility.Visible) { if (fmItems.SelectedIndex == 0) // Choose from all { this.byPlayMode = false; this.byGenre = false; if (!this.byEntireCollection) { if (_platform != null) { PlatformNoPlaymodeRGS(); } if (_playlist != null) { PlaylistNoPlaymodeRGS(); } } else { AllGamesNoPlaymodeRGS(); } } if (fmItems.SelectedIndex == 1) // Choose by genre { this.byPlayMode = false; this.byGenre = true; if (this.byEntireCollection) { ShowPlayModeMenu(); pmmItems.Items.Clear(); pmmTitle.Text = "Entire Collection by Genre"; IGame[] _allGames = PluginHelper.DataManager.GetAllGames(); IGame[] _filteredList = Array.FindAll(_allGames, BrokenOrHidden); foreach (IGame g in _filteredList) //this splits the genres and puts 1 entry for each in the listbox { char[] delimiterChars = { ';' }; foreach (string p in g.Genres) { p.Split(delimiterChars); if (!pmmItems.Items.Contains(p)) { pmmItems.Items.Add(p); } } } pmmItems.Items.SortDescriptions.Add(new System.ComponentModel.SortDescription("", System.ComponentModel.ListSortDirection.Ascending)); pmmItems.SelectedIndex = 0; } else { if (_platform != null) { ShowPlayModeMenu(); pmmItems.Items.Clear(); pmmTitle.Text = _platform.Name + " by Genre"; IGame[] _allGames = _platform.GetAllGames(false, false); foreach (IGame g in _allGames) //this splits the genres and puts 1 entry for each in the listbox { char[] delimiterChars = { ';' }; foreach (string p in g.Genres) { p.Split(delimiterChars); if (!pmmItems.Items.Contains(p)) { pmmItems.Items.Add(p); } } } pmmItems.Items.SortDescriptions.Add(new System.ComponentModel.SortDescription("", System.ComponentModel.ListSortDirection.Ascending)); pmmItems.SelectedIndex = 0; } if (_playlist != null) { ShowPlayModeMenu(); pmmItems.Items.Clear(); pmmTitle.Text = _playlist.Name + " by Genre"; IGame[] _allGames = _playlist.GetAllGames(false); IGame[] _filteredList = Array.FindAll(_allGames, BrokenOrHidden); foreach (IGame g in _filteredList) //this splits the genres and puts 1 entry for each in the listbox { char[] delimiterChars = { ';' }; foreach (string p in g.Genres) { p.Split(delimiterChars); if (!pmmItems.Items.Contains(p)) { pmmItems.Items.Add(p); } } } pmmItems.Items.SortDescriptions.Add(new System.ComponentModel.SortDescription("", System.ComponentModel.ListSortDirection.Ascending)); pmmItems.SelectedIndex = 0; } } } if (fmItems.SelectedIndex == 2) // Choose by play mode { this.byPlayMode = true; this.byGenre = false; if (this.byEntireCollection) { ShowPlayModeMenu(); pmmItems.Items.Clear(); pmmTitle.Text = "Entire Collection by Play Mode"; IGame[] _allGames = PluginHelper.DataManager.GetAllGames(); IGame[] _filteredList = Array.FindAll(_allGames, BrokenOrHidden); foreach (IGame g in _filteredList) //this splits the playmodes and puts 1 entry for each in the listbox { char[] delimiterChars = { ';' }; foreach (string p in g.PlayModes) { p.Split(delimiterChars); if (!pmmItems.Items.Contains(p)) { pmmItems.Items.Add(p); } } } pmmItems.Items.SortDescriptions.Add(new System.ComponentModel.SortDescription("", System.ComponentModel.ListSortDirection.Ascending)); pmmItems.SelectedIndex = 0; } else { if (_platform != null) { ShowPlayModeMenu(); pmmItems.Items.Clear(); pmmTitle.Text = _platform.Name + " by Play Mode"; IGame[] _allGames = _platform.GetAllGames(false, false); foreach (IGame g in _allGames) //this splits the playmodes and puts 1 entry for each in the listbox { char[] delimiterChars = { ';' }; foreach (string p in g.PlayModes) { p.Split(delimiterChars); if (!pmmItems.Items.Contains(p)) { pmmItems.Items.Add(p); } } } pmmItems.Items.SortDescriptions.Add(new System.ComponentModel.SortDescription("", System.ComponentModel.ListSortDirection.Ascending)); pmmItems.SelectedIndex = 0; } if (_playlist != null) { ShowPlayModeMenu(); pmmItems.Items.Clear(); pmmTitle.Text = _playlist.Name + " by Play Mode"; IGame[] _allGames = _playlist.GetAllGames(false); IGame[] _filteredList = Array.FindAll(_allGames, BrokenOrHidden); foreach (IGame g in _filteredList) //this splits the playmodes and puts 1 entry for each in the listbox { char[] delimiterChars = { ';' }; foreach (string p in g.PlayModes) { p.Split(delimiterChars); if (!pmmItems.Items.Contains(p)) { pmmItems.Items.Add(p); } } } pmmItems.Items.SortDescriptions.Add(new System.ComponentModel.SortDescription("", System.ComponentModel.ListSortDirection.Ascending)); pmmItems.SelectedIndex = 0; } } } return(true); } if (PlayModeMenu.Visibility == Visibility.Visible) { if (pmmItems.HasItems) { if (!this.byEntireCollection) { if (this.byPlayMode) { _playmode = pmmItems.SelectedItem.ToString(); if (_platform != null) { PlatformPlaymodeRGS(); } if (_playlist != null) { PlaylistPlaymodeRGS(); } } else if (this.byGenre) { _genre = pmmItems.SelectedItem.ToString(); if (_platform != null) { PlatformGenreRGS(); } if (_playlist != null) { PlaylistGenreRGS(); } } else { if (_platform != null) { PlatformNoPlaymodeRGS(); } if (_playlist != null) { PlaylistNoPlaymodeRGS(); } } } else { if (this.byPlayMode) { _playmode = pmmItems.SelectedItem.ToString(); AllGamesPlaymodeRGS(); } else if (this.byGenre) { _genre = pmmItems.SelectedItem.ToString(); AllGamesGenreRGS(); } else { AllGamesNoPlaymodeRGS(); } } } return(true); } if (GameDetailMenu.Visibility == Visibility.Visible) { if (gdmItems.SelectedIndex == 0) // Play this game { if (_skipGameDetailsScreen == "true") { this.Visibility = Visibility.Hidden; this.focused = false; _game.Play(); } else { PluginHelper.BigBoxMainViewModel.ShowGame(_game, FilterType.PlatformOrCategoryOrPlaylist); this.Visibility = Visibility.Hidden; this.focused = false; } } else // Choose another game { if (!this.byEntireCollection) { if (this.byPlayMode) { if (_platform != null) { PlatformPlaymodeRGS(); } if (_playlist != null) { PlaylistPlaymodeRGS(); } } else if (this.byGenre) { if (_platform != null) { PlatformGenreRGS(); } if (_playlist != null) { PlaylistGenreRGS(); } } else { if (_platform != null) { PlatformNoPlaymodeRGS(); } if (_playlist != null) { PlaylistNoPlaymodeRGS(); } } } else { if (this.byPlayMode) { AllGamesPlaymodeRGS(); } else if (this.byGenre) { AllGamesGenreRGS(); } else { AllGamesNoPlaymodeRGS(); } } } return(true); } return(true); }