From 6cee84e473c57bfad55783b7640c4ae0d6a02e44 Mon Sep 17 00:00:00 2001 From: Florian Kuepper Date: Mon, 24 Dec 2012 10:10:41 +0100 Subject: [PATCH 1/6] Fixed player-scrolling in challenge-main. --- PartyModeChallenge/PartyScreenChallengeMain.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/PartyModeChallenge/PartyScreenChallengeMain.cs b/PartyModeChallenge/PartyScreenChallengeMain.cs index 1a1ccb00..70181a40 100644 --- a/PartyModeChallenge/PartyScreenChallengeMain.cs +++ b/PartyModeChallenge/PartyScreenChallengeMain.cs @@ -542,6 +542,9 @@ namespace Vocaluxe.PartyModes private void UpdatePlayerTable() { + if (NumPlayerVisible > GameState.ProfileIDs.Count) + NumPlayerVisible = GameState.ProfileIDs.Count; + SProfile[] profiles = _Base.Profiles.GetProfiles(); for (int i = 0; i < PlayerTable.Count; i++) From f9c2fe0da148e1658f79e21fc93daa0c85d173b2 Mon Sep 17 00:00:00 2001 From: Florian Kuepper Date: Mon, 24 Dec 2012 10:16:48 +0100 Subject: [PATCH 2/6] Show right position-nums on challenge-main. --- PartyModeChallenge/PartyModeChallenge.cs | 12 ++++++++++++ PartyModeChallenge/PartyScreenChallengeMain.cs | 5 +---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/PartyModeChallenge/PartyModeChallenge.cs b/PartyModeChallenge/PartyModeChallenge.cs index 776e8292..af6f6f22 100644 --- a/PartyModeChallenge/PartyModeChallenge.cs +++ b/PartyModeChallenge/PartyModeChallenge.cs @@ -33,6 +33,7 @@ namespace Vocaluxe.PartyModes public class ResultTableRow : IComparable { + public int Position; public int PlayerID; public int NumPlayed; public int NumRounds; @@ -632,6 +633,17 @@ namespace Vocaluxe.PartyModes } GameData.ResultTable.Sort(); + + //Update position-number + int pos = 1; + int last_points = 0; + for (int i = 0; i < GameData.ResultTable.Count; i++ ) + { + if (last_points > GameData.ResultTable[i].NumGamePoints) + pos++; + GameData.ResultTable[i].Position = pos; + last_points = GameData.ResultTable[i].NumGamePoints; + } } private List GetPointsForPlayer(SPlayer[] Results) diff --git a/PartyModeChallenge/PartyScreenChallengeMain.cs b/PartyModeChallenge/PartyScreenChallengeMain.cs index 70181a40..5cd97856 100644 --- a/PartyModeChallenge/PartyScreenChallengeMain.cs +++ b/PartyModeChallenge/PartyScreenChallengeMain.cs @@ -542,9 +542,6 @@ namespace Vocaluxe.PartyModes private void UpdatePlayerTable() { - if (NumPlayerVisible > GameState.ProfileIDs.Count) - NumPlayerVisible = GameState.ProfileIDs.Count; - SProfile[] profiles = _Base.Profiles.GetProfiles(); for (int i = 0; i < PlayerTable.Count; i++) @@ -560,7 +557,7 @@ namespace Vocaluxe.PartyModes row.SingPoints.Visible = true; row.GamePoints.Visible = true; - row.Pos.Text = (i + 1 + PlayerTableOffset).ToString(); + row.Pos.Text = GameState.ResultTable[i + PlayerTableOffset].Position.ToString(); row.Name.Text = profiles[GameState.ResultTable[i+PlayerTableOffset].PlayerID].PlayerName; row.Rounds.Text = GameState.ResultTable[i+PlayerTableOffset].NumRounds.ToString(); row.Won.Text = GameState.ResultTable[i+PlayerTableOffset].NumWon.ToString(); From dd9ef018e7d1b33a797de9998bc2ae60cab5a459 Mon Sep 17 00:00:00 2001 From: Florian Kuepper Date: Mon, 24 Dec 2012 10:50:52 +0100 Subject: [PATCH 3/6] Show finish message on challenge-main. --- .../Challenge/Languages/Deutsch.xml | 1 + .../Challenge/Languages/English.xml | 1 + .../PartyModes/Challenge/Languages/French.xml | 1 + .../Challenge/Languages/Spanish.xml | 1 + .../Screens/PartyScreenChallengeMain.xml | 63 ++++++++++++++++++- .../PartyScreenChallengeMain.cs | 43 ++++++++++++- 6 files changed, 105 insertions(+), 5 deletions(-) diff --git a/Output/PartyModes/Challenge/Languages/Deutsch.xml b/Output/PartyModes/Challenge/Languages/Deutsch.xml index 27a17131..cef1250c 100644 --- a/Output/PartyModes/Challenge/Languages/Deutsch.xml +++ b/Output/PartyModes/Challenge/Languages/Deutsch.xml @@ -32,5 +32,6 @@ Punkte Challenge-Mode wirklich beenden? Spieler der nächsten Runde: + Alle Runden wurden gesungen! Und der Gewinner ist... diff --git a/Output/PartyModes/Challenge/Languages/English.xml b/Output/PartyModes/Challenge/Languages/English.xml index 6b387836..c6477146 100644 --- a/Output/PartyModes/Challenge/Languages/English.xml +++ b/Output/PartyModes/Challenge/Languages/English.xml @@ -32,5 +32,6 @@ Score Do you really want to exit? Player of next round: + All rounds were sung! And the winner is... diff --git a/Output/PartyModes/Challenge/Languages/French.xml b/Output/PartyModes/Challenge/Languages/French.xml index 3e38ada0..563d83b5 100644 --- a/Output/PartyModes/Challenge/Languages/French.xml +++ b/Output/PartyModes/Challenge/Languages/French.xml @@ -32,5 +32,6 @@ TODO: Score TODO: Do you really want to exit? TODO: Player of next round: + TODO: All rounds were sung! And the winner is... diff --git a/Output/PartyModes/Challenge/Languages/Spanish.xml b/Output/PartyModes/Challenge/Languages/Spanish.xml index 45144926..d6f7cd0d 100644 --- a/Output/PartyModes/Challenge/Languages/Spanish.xml +++ b/Output/PartyModes/Challenge/Languages/Spanish.xml @@ -31,5 +31,6 @@ TODO: Score TODO: Do you really want to exit? TODO: Player of next round: + TODO: All rounds were sung! And the winner is... diff --git a/Output/PartyModes/Challenge/Screens/PartyScreenChallengeMain.xml b/Output/PartyModes/Challenge/Screens/PartyScreenChallengeMain.xml index cbc7ee69..34733ff1 100644 --- a/Output/PartyModes/Challenge/Screens/PartyScreenChallengeMain.xml +++ b/Output/PartyModes/Challenge/Screens/PartyScreenChallengeMain.xml @@ -90,7 +90,7 @@ - + 640 515 @@ -118,7 +118,66 @@ - + + + + 640 + 520 + + 0,00 + + 50 + + + + StaticColor + + + TextSColor + + Center + + Center + + + + Outline + + TR_SCREENMAIN_FINISH + + + + + + + 640 + 575 + + 0,00 + + 35 + + 770 + + + StaticColor + + + TextSColor + + Center + + Center + + + + Outline + + + + + + 40 diff --git a/PartyModeChallenge/PartyScreenChallengeMain.cs b/PartyModeChallenge/PartyScreenChallengeMain.cs index 298db4d4..717bc7de 100644 --- a/PartyModeChallenge/PartyScreenChallengeMain.cs +++ b/PartyModeChallenge/PartyScreenChallengeMain.cs @@ -41,6 +41,9 @@ namespace Vocaluxe.PartyModes const string TextRoundPlayer = "TextRoundPlayer"; const string TextRoundScore = "TextRoundScore"; const string TextRoundNumber = "TextRoundNumber"; + const string TextFinishMessage = "TextFinishMessage"; + const string TextFinishPlayerWin = "TextFinishPlayerWin"; + const string TextNextPlayerMessage = "TextNextPlayerMessage"; const string ButtonNextRound = "ButtonNextRound"; const string ButtonBack = "ButtonBack"; @@ -83,7 +86,7 @@ namespace Vocaluxe.PartyModes base.Init(); _ThemeName = "PartyScreenChallengeMain"; - _ThemeTexts = new string[] { TextPosition, TextPlayerName, TextNumPlayed, TextWon, TextSingPoints, TextGamePoints, TextNextPlayer, TextPopupReallyExit, TextRoundNumber, TextRoundPlayer, TextRoundScore }; + _ThemeTexts = new string[] { TextPosition, TextPlayerName, TextNumPlayed, TextWon, TextSingPoints, TextGamePoints, TextNextPlayer, TextPopupReallyExit, TextRoundNumber, TextRoundPlayer, TextRoundScore, TextFinishMessage, TextFinishPlayerWin, TextNextPlayerMessage }; _ThemeButtons = new string[] { ButtonNextRound, ButtonBack, ButtonExit, ButtonPopupYes, ButtonPopupNo, ButtonPlayerScrollDown, ButtonPlayerScrollUp, ButtonRoundsScrollDown, ButtonRoundsScrollUp }; _ThemeStatics = new string[] { StaticPopupBG, StaticNextPlayer }; _ScreenVersion = ScreenVersion; @@ -259,7 +262,21 @@ namespace Vocaluxe.PartyModes Buttons[htButtons(ButtonExit)].Visible = true; } - SetInteractionToButton(Buttons[htButtons(ButtonNextRound)]); + if (GameState.CurrentRoundNr <= GameState.Combs.Count) + { + Buttons[htButtons(ButtonNextRound)].Visible = true; + Texts[htTexts(TextFinishMessage)].Visible = false; + Texts[htTexts(TextFinishPlayerWin)].Visible = false; + SetInteractionToButton(Buttons[htButtons(ButtonNextRound)]); + } + else + { + Buttons[htButtons(ButtonNextRound)].Visible = false; + Texts[htTexts(TextFinishMessage)].Visible = true; + Texts[htTexts(TextFinishPlayerWin)].Visible = true; + Texts[htTexts(TextFinishPlayerWin)].Text = GetPlayerWinString(); + SetInteractionToButton(Buttons[htButtons(ButtonExit)]); + } ShowPopup(false); } @@ -341,6 +358,7 @@ namespace Vocaluxe.PartyModes { if (GameState.CurrentRoundNr <= GameState.Combs.Count) { + Texts[htTexts(TextNextPlayerMessage)].Visible = true; SProfile[] profiles = _Base.Profiles.GetProfiles(); for (int i = 0; i < GameState.NumPlayerAtOnce; i++) { @@ -352,6 +370,7 @@ namespace Vocaluxe.PartyModes } else { + Texts[htTexts(TextNextPlayerMessage)].Visible = false; for (int i = 0; i < GameState.NumPlayerAtOnce; i++) { NextPlayerStatics[i].Visible = false; @@ -557,7 +576,7 @@ namespace Vocaluxe.PartyModes row.SingPoints.Visible = true; row.GamePoints.Visible = true; - row.Pos.Text = GameState.ResultTable[i + PlayerTableOffset].Position.ToString(); + row.Pos.Text = GameState.ResultTable[i + PlayerTableOffset].Position.ToString() + "."; row.Name.Text = profiles[GameState.ResultTable[i+PlayerTableOffset].PlayerID].PlayerName; row.Rounds.Text = GameState.ResultTable[i+PlayerTableOffset].NumRounds.ToString(); row.Won.Text = GameState.ResultTable[i+PlayerTableOffset].NumWon.ToString(); @@ -610,5 +629,23 @@ namespace Vocaluxe.PartyModes UpdateRoundsTable(); } + + private string GetPlayerWinString() + { + string s = ""; + SProfile[] profiles = _Base.Profiles.GetProfiles(); + + for (int i = 0; i < GameState.ResultTable.Count; i++) + { + if (i > 0) + s += ", "; + if (GameState.ResultTable[i].Position == 1) + s += profiles[GameState.ResultTable[i].PlayerID].PlayerName; + else + break; + } + + return s; + } } } From 8dce129331a9ce057abd617a8eb8ca1f27fd3a82 Mon Sep 17 00:00:00 2001 From: Florian Kuepper Date: Mon, 24 Dec 2012 11:24:47 +0100 Subject: [PATCH 4/6] Sing song from playlist with double-click or enter. --- VocaluxeLib/Menu/CPlaylist.cs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/VocaluxeLib/Menu/CPlaylist.cs b/VocaluxeLib/Menu/CPlaylist.cs index 734a2112..27d529cb 100644 --- a/VocaluxeLib/Menu/CPlaylist.cs +++ b/VocaluxeLib/Menu/CPlaylist.cs @@ -631,7 +631,7 @@ namespace Vocaluxe.Menu break; case Keys.Enter: - StartPlaylistSongs(); + StartPlaylistSong(CurrentPlaylistElement); break; case Keys.Add: //move the selected song up @@ -958,6 +958,12 @@ namespace Vocaluxe.Menu } } + //Start selected song with double click + if (MouseEvent.LD && CurrentPlaylistElement != -1) + { + StartPlaylistSong(CurrentPlaylistElement); + } + //Change order with holding LB if (MouseEvent.LBH && CurrentPlaylistElement != -1 && PlaylistElementContents.Count > 0 && DragAndDropSongID == -1) { @@ -1203,6 +1209,17 @@ namespace Vocaluxe.Menu } } + private void StartPlaylistSong(int selected) + { + _Base.Game.Reset(); + _Base.Game.ClearSongs(); + + _Base.Game.AddSong(_Base.Playlist.GetPlaylistSong(ActivePlaylistID, selected).SongID, _Base.Playlist.GetPlaylistSong(ActivePlaylistID, selected).GameMode); + + if (_Base.Game.GetNumSongs() > 0) + _Base.Graphics.FadeTo(EScreens.ScreenNames); + } + private void ClosePlaylist() { Visible = false; From bad1019b07805e15b1d3b79e62746a784820c20d Mon Sep 17 00:00:00 2001 From: Florian Kuepper Date: Mon, 24 Dec 2012 12:28:02 +0100 Subject: [PATCH 5/6] Added option to start a random medley. --- Output/Languages/Deutsch.xml | 2 + Output/Languages/English.xml | 2 + Output/Languages/French.xml | 2 + Output/Languages/Spanish.xml | 12 ++ Output/Themes/Ambient/Screens/ScreenSong.xml | 169 ++++++++++++++++++- Vocaluxe/Screens/CScreenSong.cs | 149 +++++++++++++--- 6 files changed, 312 insertions(+), 24 deletions(-) diff --git a/Output/Languages/Deutsch.xml b/Output/Languages/Deutsch.xml index c58a0c02..109b0d0a 100644 --- a/Output/Languages/Deutsch.xml +++ b/Output/Languages/Deutsch.xml @@ -140,6 +140,8 @@ Alle Songs singen Alle sichtbaren Songs singen Playlist öffnen + Zufälliges Medley singen + Medley-Songs singen Neue Playlist Lied-Optionen Suche: diff --git a/Output/Languages/English.xml b/Output/Languages/English.xml index c84f1331..2133eb3c 100644 --- a/Output/Languages/English.xml +++ b/Output/Languages/English.xml @@ -140,6 +140,8 @@ Sing all songs Sing all visible songs Open playlist + Sing a random medley + Sing medley-songs New Playlist Song Options Search: diff --git a/Output/Languages/French.xml b/Output/Languages/French.xml index ff41874d..081867e4 100644 --- a/Output/Languages/French.xml +++ b/Output/Languages/French.xml @@ -140,6 +140,8 @@ Chanter toutes les chansons Chanter toutes les chansons visibles Ouvrir une playlist + TODO: Sing a random medley + TODO: Sing medley-songs Nouvelle playlist Option de la chanson Rechercher: diff --git a/Output/Languages/Spanish.xml b/Output/Languages/Spanish.xml index 20ad318c..a3c5b4fe 100644 --- a/Output/Languages/Spanish.xml +++ b/Output/Languages/Spanish.xml @@ -126,6 +126,18 @@ Advertencia: ¡No hay perfiles asignados a los jugadores %v! Selección de Canciones + TODO: Sing + TODO: Add to playlist + TODO: Close + TODO: Select a random song + TODO: Select a random category + TODO: Sing all songs + TODO: Sing all visible songs + TODO: Open playlist + TODO: Sing a random medley + TODO: Sing medley-songs + TODO: New Playlist + TODO: Song Options Buscar: Sin Idioma TODO: New Playlist diff --git a/Output/Themes/Ambient/Screens/ScreenSong.xml b/Output/Themes/Ambient/Screens/ScreenSong.xml index 6e94ebeb..3aa6c785 100644 --- a/Output/Themes/Ambient/Screens/ScreenSong.xml +++ b/Output/Themes/Ambient/Screens/ScreenSong.xml @@ -1,7 +1,7 @@  - 3 + 4 Video @@ -758,7 +758,7 @@ Button 40 - 275 + 270 -2,11 360 40 @@ -800,6 +800,104 @@ + + + Button + + Button + + 40 + 315 + -2,11 + 360 + 40 + + + ButtonColor + + + ButtonSColor + + + 180 + 5 + + 30 + + 350 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + TR_SCREENSONG_BUTTON_RANDOMMEDLEY + + + + + + + + + + + Button + + Button + + 40 + 135 + -2,11 + 360 + 40 + + + ButtonColor + + + ButtonSColor + + + 180 + 5 + + 30 + + 350 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + TR_SCREENSONG_BUTTON_STARTMEDLEY + + + + + + + + Invisible @@ -1347,7 +1445,7 @@ SelectSlide 40 - 230 + 225 -2,11 360 40 @@ -1395,6 +1493,71 @@ 1 + + + Button + + SelectSlideArrowLeft + + SelectSlideArrowRight + + SelectSlide + + SelectSlideArrowLeft + + SelectSlideArrowRight + + SelectSlide + + 40 + 90 + -2,11 + 360 + 40 + + 45 + 100 + -2,12 + 30 + 30 + + 365 + 100 + -2,12 + 30 + 30 + + + ButtonColor + + + ButtonSColor + + + SelectSlideHColor + + + ArrowColor + + + ArrowSColor + + + TextColor + + + TextSColor + + 30,00 + + 280,00 + + Outline + + Bold + + 3 + CoverTile diff --git a/Vocaluxe/Screens/CScreenSong.cs b/Vocaluxe/Screens/CScreenSong.cs index 537153e9..28bbf9ed 100644 --- a/Vocaluxe/Screens/CScreenSong.cs +++ b/Vocaluxe/Screens/CScreenSong.cs @@ -21,11 +21,12 @@ namespace Vocaluxe.Screens { None, Song, - General + General, + Medley } // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 3; + const int ScreenVersion = 4; private const string TextCategory = "TextCategory"; private const string TextSelection = "TextSelection"; @@ -42,11 +43,14 @@ namespace Vocaluxe.Screens private const string ButtonOptionsSingAll = "ButtonOptionsSingAll"; private const string ButtonOptionsSingAllVisible = "ButtonOptionsSingAllVisible"; private const string ButtonOptionsOpenPlaylist = "ButtonOptionsOpenPlaylist"; + private const string ButtonOptionsRandomMedley = "ButtonOptionsRandomMedley"; + private const string ButtonOptionsStartMedley = "ButtonOptionsStartMedley"; private const string ButtonStart = "ButtonStart"; private const string SelectSlideOptionsMode = "SelectSlideOptionsMode"; private const string SelectSlideOptionsPlaylistAdd = "SelectSlideOptionsPlaylistAdd"; private const string SelectSlideOptionsPlaylistOpen = "SelectSlideOptionsPlaylistOpen"; + private const string SelectSlideOptionsNumMedleySongs = "SelectSlideOptionsNumMedleySongs"; private const string StaticSearchBar = "StaticSearchBar"; private const string StaticOptionsBG = "StaticOptionsBG"; @@ -96,6 +100,8 @@ namespace Vocaluxe.Screens blist.Add(ButtonOptionsOpenPlaylist); blist.Add(ButtonOpenOptions); blist.Add(ButtonStart); + blist.Add(ButtonOptionsRandomMedley); + blist.Add(ButtonOptionsStartMedley); for (int i = 0; i < _Base.Settings.GetMaxNumPlayer(); i++) { @@ -114,7 +120,7 @@ namespace Vocaluxe.Screens _ThemeStatics = new string[] { StaticSearchBar, StaticOptionsBG }; _ThemeTexts = tlist.ToArray(); _ThemeButtons = blist.ToArray(); - _ThemeSelectSlides = new string[] { SelectSlideOptionsMode, SelectSlideOptionsPlaylistAdd, SelectSlideOptionsPlaylistOpen }; + _ThemeSelectSlides = new string[] { SelectSlideOptionsMode, SelectSlideOptionsPlaylistAdd, SelectSlideOptionsPlaylistOpen, SelectSlideOptionsNumMedleySongs }; _ThemeSongMenus = new string[] { SongMenu }; _ThemePlaylists = new string[] { Playlist }; } @@ -125,6 +131,7 @@ namespace Vocaluxe.Screens SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Visible = false; SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Visible = false; SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].Visible = false; + SelectSlides[htSelectSlides(SelectSlideOptionsNumMedleySongs)].Visible = false; Buttons[htButtons(ButtonOptionsClose)].Visible = false; Buttons[htButtons(ButtonOptionsSing)].Visible = false; Buttons[htButtons(ButtonOptionsPlaylist)].Visible = false; @@ -133,6 +140,8 @@ namespace Vocaluxe.Screens Buttons[htButtons(ButtonOptionsSingAll)].Visible = false; Buttons[htButtons(ButtonOptionsSingAllVisible)].Visible = false; Buttons[htButtons(ButtonOptionsOpenPlaylist)].Visible = false; + Buttons[htButtons(ButtonOptionsRandomMedley)].Visible = false; + Buttons[htButtons(ButtonOptionsStartMedley)].Visible = false; Texts[htTexts(TextOptionsTitle)].Visible = false; Statics[htStatics(StaticOptionsBG)].Visible = false; Playlists[htPlaylists(Playlist)].Visible = false; @@ -384,6 +393,15 @@ namespace Vocaluxe.Screens ToggleSongOptions(ESongOptionsView.None); OpenPlaylistAction(); } + else if (Buttons[htButtons(ButtonOptionsRandomMedley)].Selected) + { + ToggleSongOptions(ESongOptionsView.Medley); + } + else if (Buttons[htButtons(ButtonOptionsStartMedley)].Selected) + { + ToggleSongOptions(ESongOptionsView.None); + StartRandomMedley(SelectSlides[htSelectSlides(SelectSlideOptionsNumMedleySongs)].Selection + 1, CSongs.Category == -1); + } break; case Keys.Escape: @@ -557,6 +575,19 @@ namespace Vocaluxe.Screens return true; } + if (Buttons[htButtons(ButtonOptionsRandomMedley)].Selected) + { + ToggleSongOptions(ESongOptionsView.Medley); + return true; + } + + if (Buttons[htButtons(ButtonOptionsStartMedley)].Selected) + { + ToggleSongOptions(ESongOptionsView.None); + StartRandomMedley(SelectSlides[htSelectSlides(SelectSlideOptionsNumMedleySongs)].Selection + 1, CSongs.Category == -1); + return true; + } + if (_sso.Selection.RandomOnly && _sso.Selection.NumJokers != null) { if (Buttons[htButtons(ButtonStart)].Selected) @@ -940,6 +971,48 @@ namespace Vocaluxe.Screens CGraphics.FadeTo(EScreens.ScreenNames); } + private void StartRandomMedley(int NumSongs, bool AllSongs) + { + CGame.Reset(); + CGame.ClearSongs(); + + List IDs = new List(); + if (AllSongs) + { + for (int i = 0; i < CSongs.AllSongs.Length; i++) + { + IDs.Add(i); + } + } + else + { + for (int i = 0; i < CSongs.VisibleSongs.Length; i++) + { + IDs.Add(CSongs.VisibleSongs[i].ID); + } + } + int s = 0; + while (s < NumSongs && IDs.Count > 0) + { + int SongNr = IDs[CGame.Rand.Next(IDs.Count)]; + + foreach (EGameMode gm in CSongs.AllSongs[SongNr].AvailableGameModes) + { + if (gm == EGameMode.TR_GAMEMODE_MEDLEY) + { + CGame.AddSong(SongNr, gm); + s++; + break; + } + } + + IDs.Remove(SongNr); + } + + if (CGame.GetNumSongs() > 0) + CGraphics.FadeTo(EScreens.ScreenNames); + } + private bool SelectNextRandom(int TeamNr) { if (TeamNr != -1 && _sso.Selection.RandomOnly && _sso.Selection.NumJokers != null) @@ -1037,6 +1110,25 @@ namespace Vocaluxe.Screens private void ToggleSongOptions(ESongOptionsView view) { _SongOptionsActive = view != ESongOptionsView.None; + + SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Visible = false; + SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Visible = false; + SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].Visible = false; + SelectSlides[htSelectSlides(SelectSlideOptionsNumMedleySongs)].Visible = false; + Buttons[htButtons(ButtonOptionsClose)].Visible = false; + Buttons[htButtons(ButtonOptionsSing)].Visible = false; + Buttons[htButtons(ButtonOptionsPlaylist)].Visible = false; + Buttons[htButtons(ButtonOptionsRandom)].Visible = false; + Buttons[htButtons(ButtonOptionsRandomCategory)].Visible = false; + Buttons[htButtons(ButtonOptionsSingAll)].Visible = false; + Buttons[htButtons(ButtonOptionsSingAllVisible)].Visible = false; + Buttons[htButtons(ButtonOptionsOpenPlaylist)].Visible = false; + Buttons[htButtons(ButtonOptionsRandomMedley)].Visible = false; + Buttons[htButtons(ButtonOptionsStartMedley)].Visible = false; + Texts[htTexts(TextOptionsTitle)].Visible = false; + Statics[htStatics(StaticOptionsBG)].Visible = false; + Buttons[htButtons(ButtonOpenOptions)].Visible = true; + if (_SongOptionsActive) { if (view == ESongOptionsView.Song) @@ -1074,6 +1166,7 @@ namespace Vocaluxe.Screens SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Visible = true; Buttons[htButtons(ButtonOptionsSing)].Visible = true; Buttons[htButtons(ButtonOptionsPlaylist)].Visible = true; + SetInteractionToButton(Buttons[htButtons(ButtonOptionsSing)]); } else if (view == ESongOptionsView.General) { @@ -1098,29 +1191,43 @@ namespace Vocaluxe.Screens else SetInteractionToButton(Buttons[htButtons(ButtonOptionsSingAll)]); } + Buttons[htButtons(ButtonOptionsRandomMedley)].Visible = true; + if(Buttons[htButtons(ButtonOptionsRandom)].Visible) + SetInteractionToButton(Buttons[htButtons(ButtonOptionsRandom)]); + else + SetInteractionToButton(Buttons[htButtons(ButtonOptionsRandomCategory)]); + } + else if (view == ESongOptionsView.Medley) + { + Buttons[htButtons(ButtonOptionsStartMedley)].Visible = true; + SelectSlides[htSelectSlides(SelectSlideOptionsNumMedleySongs)].Visible = true; + SelectSlides[htSelectSlides(SelectSlideOptionsNumMedleySongs)].Clear(); + if (CSongs.Category != -1) + { + for (int i = 1; i <= CSongs.VisibleSongs.Length; i++) + { + SelectSlides[htSelectSlides(SelectSlideOptionsNumMedleySongs)].AddValue(i.ToString()); + } + } + else + { + for (int i = 1; i <= CSongs.AllSongs.Length; i++) + { + SelectSlides[htSelectSlides(SelectSlideOptionsNumMedleySongs)].AddValue(i.ToString()); + } + } + if (SelectSlides[htSelectSlides(SelectSlideOptionsNumMedleySongs)].NumValues >= 5) + SelectSlides[htSelectSlides(SelectSlideOptionsNumMedleySongs)].SetSelectionByValueIndex(4); + else + SelectSlides[htSelectSlides(SelectSlideOptionsNumMedleySongs)].SetSelectionByValueIndex(SelectSlides[htSelectSlides(SelectSlideOptionsNumMedleySongs)].NumValues - 1); + SetInteractionToButton(Buttons[htButtons(ButtonOptionsStartMedley)]); + } - Buttons[htButtons(ButtonOptionsClose)].Visible = true; Texts[htTexts(TextOptionsTitle)].Visible = true; + Buttons[htButtons(ButtonOptionsClose)].Visible = true; Statics[htStatics(StaticOptionsBG)].Visible = true; Buttons[htButtons(ButtonOpenOptions)].Visible = false; } - else - { - SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Visible = false; - SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Visible = false; - SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].Visible = false; - Buttons[htButtons(ButtonOptionsClose)].Visible = false; - Buttons[htButtons(ButtonOptionsSing)].Visible = false; - Buttons[htButtons(ButtonOptionsPlaylist)].Visible = false; - Buttons[htButtons(ButtonOptionsRandom)].Visible = false; - Buttons[htButtons(ButtonOptionsRandomCategory)].Visible = false; - Buttons[htButtons(ButtonOptionsSingAll)].Visible = false; - Buttons[htButtons(ButtonOptionsSingAllVisible)].Visible = false; - Buttons[htButtons(ButtonOptionsOpenPlaylist)].Visible = false; - Buttons[htButtons(ButtonOpenOptions)].Visible = false; - Texts[htTexts(TextOptionsTitle)].Visible = false; - Statics[htStatics(StaticOptionsBG)].Visible = false; - } } #region Playlist Actions From 2f53e37bb587f0e0b5c7ebae33d69a07ce39018d Mon Sep 17 00:00:00 2001 From: Florian Kuepper Date: Mon, 24 Dec 2012 13:11:06 +0100 Subject: [PATCH 6/6] Update screen-song changelog. --- Output/Themes/Changelog/Changelog_ScreenSong.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Output/Themes/Changelog/Changelog_ScreenSong.txt b/Output/Themes/Changelog/Changelog_ScreenSong.txt index 7d2e320c..35d3c6ba 100644 --- a/Output/Themes/Changelog/Changelog_ScreenSong.txt +++ b/Output/Themes/Changelog/Changelog_ScreenSong.txt @@ -1,5 +1,13 @@ ScreenSong +++++++++++ +Version 4: + +Add: + (one for each player) +, + + ++++++++++ Version 3: