From 480cdd986444412d69f26a611122c511979aa45e Mon Sep 17 00:00:00 2001 From: Edi316 <61267443+Edi316@users.noreply.github.com> Date: Mon, 24 Mar 2025 20:26:45 +0100 Subject: [PATCH] Option to skip Player Selection Screen (#762) * Add Player Select Option * Add Player Select Option * Add Player Select Option * Add Player Select Option * Theme System Version 9 * Theme System Version 9 * Theme System Version 9 * Add Player Select Option * Add Player Select Option * Theme System Version 9 * Theme System Version 9 * Theme System Version 9 * Add Player Select Option --- Output/Languages/en.xml | 2 + .../PartyModes/Challenge/Themes/Default.xml | 2 +- .../PartyModes/TicTacToe/Themes/Default.xml | 2 +- .../Themes/Changelog/Changelog_ScreenSong.txt | 8 +- .../Changelog/Changelog_ThemeSystem.txt | 7 ++ Output/Themes/Vocaluxe 2024.xml | 2 +- .../Vocaluxe 2024/Screens/ScreenSong.xml | 86 ++++++++++++++----- Vocaluxe/Base/ThemeSystem/CTheme.cs | 2 +- Vocaluxe/Screens/CScreenSong.cs | 71 +++++++++++++-- VocaluxeLib/Enums.cs | 6 ++ 10 files changed, 153 insertions(+), 35 deletions(-) diff --git a/Output/Languages/en.xml b/Output/Languages/en.xml index 2fdd465c..e418cddb 100644 --- a/Output/Languages/en.xml +++ b/Output/Languages/en.xml @@ -148,6 +148,8 @@ Sing medley-songs New playlist Song Options + Show player selection + Skip player selection Search: No language No Year diff --git a/Output/PartyModes/Challenge/Themes/Default.xml b/Output/PartyModes/Challenge/Themes/Default.xml index ee539afb..cea3e6af 100644 --- a/Output/PartyModes/Challenge/Themes/Default.xml +++ b/Output/PartyModes/Challenge/Themes/Default.xml @@ -1,6 +1,6 @@  - 8 + 9 Default brunzel diff --git a/Output/PartyModes/TicTacToe/Themes/Default.xml b/Output/PartyModes/TicTacToe/Themes/Default.xml index ee539afb..cea3e6af 100644 --- a/Output/PartyModes/TicTacToe/Themes/Default.xml +++ b/Output/PartyModes/TicTacToe/Themes/Default.xml @@ -1,6 +1,6 @@  - 8 + 9 Default brunzel diff --git a/Output/Themes/Changelog/Changelog_ScreenSong.txt b/Output/Themes/Changelog/Changelog_ScreenSong.txt index 69e7e899..2f9fa47d 100644 --- a/Output/Themes/Changelog/Changelog_ScreenSong.txt +++ b/Output/Themes/Changelog/Changelog_ScreenSong.txt @@ -1,13 +1,17 @@ ScreenSong +++++++++++ +Version 12: + +Add: + + ++++++++++ Version 11: Add: -++++++++++ - ++++++++++ Version 10: diff --git a/Output/Themes/Changelog/Changelog_ThemeSystem.txt b/Output/Themes/Changelog/Changelog_ThemeSystem.txt index ecfa9a36..2defafa8 100644 --- a/Output/Themes/Changelog/Changelog_ThemeSystem.txt +++ b/Output/Themes/Changelog/Changelog_ThemeSystem.txt @@ -1,5 +1,12 @@ Theme System +++++++++++ +Version 9 + +Changed: +SelectSlide for Option to Skip Player Selection Screen (SelectSlideOptionsPlayerSelect) on song select screen + + ++++++++++ Version 8 diff --git a/Output/Themes/Vocaluxe 2024.xml b/Output/Themes/Vocaluxe 2024.xml index d3ab2946..3ad24777 100644 --- a/Output/Themes/Vocaluxe 2024.xml +++ b/Output/Themes/Vocaluxe 2024.xml @@ -1,6 +1,6 @@  - 8 + 9 Vocaluxe 2024 Vocaluxe diff --git a/Output/Themes/Vocaluxe 2024/Screens/ScreenSong.xml b/Output/Themes/Vocaluxe 2024/Screens/ScreenSong.xml index 33a7f33e..91ea24bd 100644 --- a/Output/Themes/Vocaluxe 2024/Screens/ScreenSong.xml +++ b/Output/Themes/Vocaluxe 2024/Screens/ScreenSong.xml @@ -2,7 +2,7 @@ ScreenSong - 11 + 12 @@ -253,7 +253,7 @@ 330 60 -2.11 - 51 + 45 525 @@ -486,9 +486,9 @@ SongSelectButton 60 - 540 + 546 540 - 60 + 53 -2.11 @@ -513,9 +513,9 @@ SongSelectButton 60 - 395 + 415 540 - 60 + 53 -2.11 @@ -540,9 +540,9 @@ SongSelectButton 60 - 110 + 104 540 - 60 + 57 -2.11 @@ -818,9 +818,9 @@ SongSelectButton 60 - 472.5 + 486.5 540 - 60 + 53 -2.11 @@ -1176,21 +1176,21 @@ SelectSlideArrowRight 60 - 177.5 + 167.5 540 - 60 + 53 -2.11 67.5 - 185 + 172.5 45 45 -2.12 547.5 - 185 + 172.5 45 45 -2.12 @@ -1209,6 +1209,48 @@ Bold 1 + + SongSelectButton + SelectSlideArrowLeft + SelectSlideArrowRight + SongSelectButton + SelectSlideArrowLeft + SelectSlideArrowRight + + 60 + 286 + 540 + 53 + -2.11 + + + 67.5 + 291 + 45 + 45 + -2.12 + + + 547.5 + 291 + 45 + 45 + -2.12 + + + + + + + + 37.5 + 175 + 0 + 420 + Outline + Bold + 1 + SongSelectButton SelectSlideArrowLeft @@ -1218,21 +1260,21 @@ SelectSlideArrowRight 60 - 245 + 227 540 - 60 + 53 -2.11 67.5 - 252.5 + 232 45 45 -2.12 547.5 - 252.5 + 232 45 45 -2.12 @@ -1260,21 +1302,21 @@ SelectSlideArrowRight 60 - 327.5 + 355.5 540 - 60 + 53 -2.11 67.5 - 335 + 360.5 45 45 -2.12 547.5 - 335 + 360.5 45 45 -2.12 diff --git a/Vocaluxe/Base/ThemeSystem/CTheme.cs b/Vocaluxe/Base/ThemeSystem/CTheme.cs index 20c0ac4a..b31a2f78 100644 --- a/Vocaluxe/Base/ThemeSystem/CTheme.cs +++ b/Vocaluxe/Base/ThemeSystem/CTheme.cs @@ -29,7 +29,7 @@ namespace Vocaluxe.Base.ThemeSystem abstract class CTheme { // Version number for theme files. Increment it, if you've changed something on the theme files! - private const int _ThemeSystemVersion = 8; + private const int _ThemeSystemVersion = 9; protected STheme _Data; public String Name diff --git a/Vocaluxe/Screens/CScreenSong.cs b/Vocaluxe/Screens/CScreenSong.cs index 92d3df24..72cd1464 100644 --- a/Vocaluxe/Screens/CScreenSong.cs +++ b/Vocaluxe/Screens/CScreenSong.cs @@ -71,6 +71,7 @@ namespace Vocaluxe.Screens private const string _ButtonOptionsHighscore = "ButtonOptionsHighscore"; private const string _SelectSlideOptionsMode = "SelectSlideOptionsMode"; + private const string _SelectSlideOptionsPlayerSelect = "SelectSlideOptionsPlayerSelect"; private const string _SelectSlideOptionsAudioMode = "SelectSlideOptionsAudioMode"; private const string _SelectSlideOptionsPlaylistAdd = "SelectSlideOptionsPlaylistAdd"; private const string _SelectSlideOptionsPlaylistOpen = "SelectSlideOptionsPlaylistOpen"; @@ -113,6 +114,13 @@ namespace Vocaluxe.Screens return _AudioMode; } + private static EPlayerSelect _PlayerSelect = EPlayerSelect.TR_SCREENSONG_PLAYERSELECT_ON; + + public static EPlayerSelect GetPlayerSelect() + { + return _PlayerSelect; + } + private static int _StaticSelectedSongID; private static void setStaticSelectedSongID(int songID) @@ -176,7 +184,7 @@ namespace Vocaluxe.Screens _ThemeStatics = new string[] {_StaticSearchBar, _StaticOptionsBG, _StaticShortInfoTop}; _ThemeTexts = tlist.ToArray(); _ThemeButtons = blist.ToArray(); - _ThemeSelectSlides = new string[] {_SelectSlideOptionsMode, _SelectSlideOptionsAudioMode, _SelectSlideOptionsPlaylistAdd, _SelectSlideOptionsPlaylistOpen, _SelectSlideOptionsNumMedleySongs}; + _ThemeSelectSlides = new string[] {_SelectSlideOptionsMode, _SelectSlideOptionsPlayerSelect, _SelectSlideOptionsAudioMode, _SelectSlideOptionsPlaylistAdd, _SelectSlideOptionsPlaylistOpen, _SelectSlideOptionsNumMedleySongs}; _ThemeSongMenus = new string[] {_SongMenuName}; _ThemePlaylists = new string[] {_PlaylistName}; @@ -1023,12 +1031,20 @@ namespace Vocaluxe.Screens gm = CSongs.VisibleSongs[songNr].IsDuet ? EGameMode.TR_GAMEMODE_DUET : EGameMode.TR_GAMEMODE_NORMAL; _AudioMode = (EAudioMode)_SelectSlides[_SelectSlideOptionsAudioMode].Selection; + _PlayerSelect = (EPlayerSelect)_SelectSlides[_SelectSlideOptionsPlayerSelect].Selection; CGame.Reset(); CGame.ClearSongs(); if (CGame.AddVisibleSong(songNr, gm)) - CGraphics.FadeTo(EScreen.Names); + if (_PlayerSelect == EPlayerSelect.TR_SCREENSONG_PLAYERSELECT_OFF) + { + CGraphics.FadeTo(EScreen.Sing); + } + else + { + CGraphics.FadeTo(EScreen.Names); + } } } @@ -1042,7 +1058,14 @@ namespace Vocaluxe.Screens CGame.ClearSongs(); if (CGame.AddVisibleSong(songNr, gm)) - CGraphics.FadeTo(EScreen.Names); + if (_PlayerSelect == EPlayerSelect.TR_SCREENSONG_PLAYERSELECT_OFF) + { + CGraphics.FadeTo(EScreen.Sing); + } + else + { + CGraphics.FadeTo(EScreen.Names); + } } } @@ -1059,7 +1082,14 @@ namespace Vocaluxe.Screens CGame.Reset(); CGame.ClearSongs(); if (CGame.AddVisibleSong(songNr, EGameMode.TR_GAMEMODE_MEDLEY)) - CGraphics.FadeTo(EScreen.Names); + if (_PlayerSelect == EPlayerSelect.TR_SCREENSONG_PLAYERSELECT_OFF) + { + CGraphics.FadeTo(EScreen.Sing); + } + else + { + CGraphics.FadeTo(EScreen.Names); + } } } @@ -1086,7 +1116,14 @@ namespace Vocaluxe.Screens } if (CGame.GetNumSongs() > 0) - CGraphics.FadeTo(EScreen.Names); + if (_PlayerSelect == EPlayerSelect.TR_SCREENSONG_PLAYERSELECT_OFF) + { + CGraphics.FadeTo(EScreen.Sing); + } + else + { + CGraphics.FadeTo(EScreen.Names); + } } private void _StartRandomVisibleSongs() @@ -1110,7 +1147,14 @@ namespace Vocaluxe.Screens } if (CGame.GetNumSongs() > 0) - CGraphics.FadeTo(EScreen.Names); + if (_PlayerSelect == EPlayerSelect.TR_SCREENSONG_PLAYERSELECT_OFF) + { + CGraphics.FadeTo(EScreen.Sing); + } + else + { + CGraphics.FadeTo(EScreen.Names); + } } private void _StartRandomMedley(int numSongs, bool allSongs) @@ -1146,7 +1190,14 @@ namespace Vocaluxe.Screens } if (CGame.GetNumSongs() > 0) - CGraphics.FadeTo(EScreen.Names); + if (_PlayerSelect == EPlayerSelect.TR_SCREENSONG_PLAYERSELECT_OFF) + { + CGraphics.FadeTo(EScreen.Sing); + } + else + { + CGraphics.FadeTo(EScreen.Names); + } } private bool _SelectNextRandom(int teamNr) @@ -1341,6 +1392,7 @@ namespace Vocaluxe.Screens private void _ToggleSongOptions(ESongOptionsView view) { _SelectSlides[_SelectSlideOptionsMode].Visible = false; + _SelectSlides[_SelectSlideOptionsPlayerSelect].Visible = false; _SelectSlides[_SelectSlideOptionsAudioMode].Visible = false; _SelectSlides[_SelectSlideOptionsPlaylistAdd].Visible = false; _SelectSlides[_SelectSlideOptionsPlaylistOpen].Visible = false; @@ -1424,6 +1476,11 @@ namespace Vocaluxe.Screens } _SelectSlides[_SelectSlideOptionsAudioMode].Selection = (int)_AudioMode; + _SelectSlides[_SelectSlideOptionsPlayerSelect].AddValue("TR_SCREENSONG_PLAYERSELECT_ON"); + _SelectSlides[_SelectSlideOptionsPlayerSelect].AddValue("TR_SCREENSONG_PLAYERSELECT_OFF"); + _SelectSlides[_SelectSlideOptionsPlayerSelect].Visible = true; + _SelectSlides[_SelectSlideOptionsPlayerSelect].Selection = (int)_PlayerSelect; + _SelectSlides[_SelectSlideOptionsMode].Visible = true; _SelectSlides[_SelectSlideOptionsPlaylistAdd].Visible = true; _Buttons[_ButtonOptionsSing].Visible = true; diff --git a/VocaluxeLib/Enums.cs b/VocaluxeLib/Enums.cs index 70f2d82d..378137aa 100644 --- a/VocaluxeLib/Enums.cs +++ b/VocaluxeLib/Enums.cs @@ -371,6 +371,12 @@ namespace VocaluxeLib TR_AUDIOMODE_KARAOKE } + public enum EPlayerSelect + { + TR_SCREENSONG_PLAYERSELECT_ON, + TR_SCREENSONG_PLAYERSELECT_OFF + } + public enum ENoteType { Normal,