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/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/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/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:
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 46595804..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 = (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();
@@ -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;
+ }
}
}
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
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;