diff --git a/Output/PartyModes/Challenge/Screens/PartyScreenChallengeMain.xml b/Output/PartyModes/Challenge/Screens/PartyScreenChallengeMain.xml index af7ad9e1..350446da 100644 --- a/Output/PartyModes/Challenge/Screens/PartyScreenChallengeMain.xml +++ b/Output/PartyModes/Challenge/Screens/PartyScreenChallengeMain.xml @@ -122,7 +122,7 @@ 40 - 100 + 102 0,00 @@ -151,7 +151,7 @@ 50 - 100 + 102 0,00 @@ -181,7 +181,7 @@ 260 - 100 + 102 0,00 @@ -210,7 +210,7 @@ 340 - 100 + 102 0,00 @@ -239,7 +239,7 @@ 490 - 100 + 102 0,00 @@ -268,7 +268,7 @@ 590 - 100 + 102 0,00 @@ -356,7 +356,7 @@ 660 - 100 + 102 0,00 @@ -726,5 +726,103 @@ 26 + + + ScrollUp + + ScrollUp + + 281 + 94 + -0,01 + 28 + 15 + + + ButtonColor + + + ButtonSColor + + + 75 + 10 + + 32 + + 142 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + + + + + + + + + + + + ScrollDown + + ScrollDown + + 281 + 515 + -0,01 + 28 + 15 + + + ButtonColor + + + ButtonSColor + + + 75 + 10 + + 32 + + 142 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + + + + + + + + + diff --git a/Output/Themes/Ambient/ScrollDown.png b/Output/Themes/Ambient/ScrollDown.png new file mode 100644 index 00000000..94bd2e14 Binary files /dev/null and b/Output/Themes/Ambient/ScrollDown.png differ diff --git a/Output/Themes/Ambient/ScrollUp.png b/Output/Themes/Ambient/ScrollUp.png new file mode 100644 index 00000000..c3b4c6b9 Binary files /dev/null and b/Output/Themes/Ambient/ScrollUp.png differ diff --git a/Output/Themes/Ambient/Skin Blue.xml b/Output/Themes/Ambient/Skin Blue.xml index f233aa88..48fd16f5 100644 --- a/Output/Themes/Ambient/Skin Blue.xml +++ b/Output/Themes/Ambient/Skin Blue.xml @@ -337,6 +337,8 @@ Plus.png Random.png Popup.png + ScrollUp.png + ScrollDown.png [Blue]BG_Video.mp4 diff --git a/Output/Themes/Ambient/Skin Green.xml b/Output/Themes/Ambient/Skin Green.xml index 86d67d2b..f36533bf 100644 --- a/Output/Themes/Ambient/Skin Green.xml +++ b/Output/Themes/Ambient/Skin Green.xml @@ -330,7 +330,9 @@ Minus.png Plus.png Random.png - Popup.png + Popup.png + ScrollUp.png + ScrollDown.png [Green]BG_Video.mp4 diff --git a/Output/Themes/Ambient/Skin Red.xml b/Output/Themes/Ambient/Skin Red.xml index a1cacc90..cf2302fd 100644 --- a/Output/Themes/Ambient/Skin Red.xml +++ b/Output/Themes/Ambient/Skin Red.xml @@ -331,6 +331,8 @@ Plus.png Random.png Popup.png + ScrollUp.png + ScrollDown.png [Red]BG_Video.mp4 diff --git a/Output/Themes/Ambient/Skin Yellow.xml b/Output/Themes/Ambient/Skin Yellow.xml index 6b0dc676..7e00ad8e 100644 --- a/Output/Themes/Ambient/Skin Yellow.xml +++ b/Output/Themes/Ambient/Skin Yellow.xml @@ -331,6 +331,8 @@ Plus.png Random.png Popup.png + ScrollUp.png + ScrollDown.png [Yellow]BG_Video.mp4 diff --git a/PartyModeChallenge/PartyScreenChallengeMain.cs b/PartyModeChallenge/PartyScreenChallengeMain.cs index 6a8a800e..ac068d31 100644 --- a/PartyModeChallenge/PartyScreenChallengeMain.cs +++ b/PartyModeChallenge/PartyScreenChallengeMain.cs @@ -47,6 +47,9 @@ namespace Vocaluxe.PartyModes const string ButtonExit = "ButtonExit"; const string ButtonPopupYes = "ButtonPopupYes"; const string ButtonPopupNo = "ButtonPopupNo"; + const string ButtonPlayerScrollUp = "ButtonPlayerScrollUp"; + const string ButtonPlayerScrollDown = "ButtonPlayerScrollDown"; + const string StaticPopupBG = "StaticPopupBG"; const string StaticNextPlayer = "StaticNextPlayer"; @@ -55,13 +58,16 @@ namespace Vocaluxe.PartyModes private DataFromScreen Data; private DataToScreenMain GameState; - private List Table; + private List PlayerTable; private List RoundsTable; private List NextPlayerTexts; private List NextPlayerStatics; + private SRectF RoundsTableScrollArea; + private SRectF PlayerTableScrollArea; private int RoundsTableOffset = 0; + private int PlayerTableOffset = 0; public PartyScreenChallengeMain() { @@ -75,7 +81,7 @@ namespace Vocaluxe.PartyModes _ThemeName = "PartyScreenChallengeMain"; _ThemeTexts = new string[] { TextPosition, TextPlayerName, TextNumPlayed, TextWon, TextSingPoints, TextGamePoints, TextNextPlayer, TextPopupReallyExit, TextRoundNumber, TextRoundPlayer, TextRoundScore }; - _ThemeButtons = new string[] { ButtonNextRound, ButtonBack, ButtonExit, ButtonPopupYes, ButtonPopupNo }; + _ThemeButtons = new string[] { ButtonNextRound, ButtonBack, ButtonExit, ButtonPopupYes, ButtonPopupNo, ButtonPlayerScrollDown, ButtonPlayerScrollUp }; _ThemeStatics = new string[] { StaticPopupBG, StaticNextPlayer }; _ScreenVersion = ScreenVersion; } @@ -85,7 +91,7 @@ namespace Vocaluxe.PartyModes base.LoadTheme(XmlPath); GameState = new DataToScreenMain(); - BuildTable(); + BuildPlayerTable(); NextPlayerTexts = new List(); NextPlayerStatics = new List(); @@ -203,7 +209,7 @@ namespace Vocaluxe.PartyModes { base.OnShow(); - Updatetable(); + UpdatePlayerTable(PlayerTableOffset); UpdateNextPlayerPositions(); UpdateNextPlayerContents(); if(GameState.CurrentRoundNr == 1 || RoundsTable == null) @@ -398,6 +404,7 @@ namespace Vocaluxe.PartyModes { for(int p = 0; p < RoundsTable[i].TextPlayer.Count; p++) { + RoundsTable[i].Number.Text = (i + 1 + Offset).ToString(); int pID = GameState.ProfileIDs[GameState.Combs[i + Offset].Player[p]]; RoundsTable[i].TextPlayer[p].Text = profile[pID].PlayerName+""; if ((GameState.CurrentRoundNr - 1) > i) @@ -408,12 +415,14 @@ namespace Vocaluxe.PartyModes } } - private void BuildTable() + private void BuildPlayerTable() { - Table = new List(); + int NumPlayerVisible = 10; + + PlayerTable = new List(); float delta = Texts[htTexts(TextPosition)].Height * 1.2f; - for (int i = 0; i < _PartyMode.GetMaxPlayer(); i++) + for (int i = 0; i < NumPlayerVisible; i++) { TableRow row = new TableRow(); @@ -447,19 +456,19 @@ namespace Vocaluxe.PartyModes AddText(row.SingPoints); AddText(row.GamePoints); - Table.Add(row); + PlayerTable.Add(row); } } - private void Updatetable() + private void UpdatePlayerTable(int Offset) { SProfile[] profiles = _Base.Profiles.GetProfiles(); - for (int i = 0; i < Table.Count; i++) + for (int i = 0; i < PlayerTable.Count; i++) { - TableRow row = Table[i]; + TableRow row = PlayerTable[i+Offset]; - if (i < GameState.ResultTable.Count) + if (i+Offset < GameState.ResultTable.Count) { row.Pos.Visible = true; row.Name.Visible = true; @@ -468,11 +477,11 @@ namespace Vocaluxe.PartyModes row.SingPoints.Visible = true; row.GamePoints.Visible = true; - row.Name.Text = profiles[GameState.ResultTable[i].PlayerID].PlayerName; - row.Rounds.Text = GameState.ResultTable[i].NumRounds.ToString(); - row.Won.Text = GameState.ResultTable[i].NumWon.ToString(); - row.SingPoints.Text = GameState.ResultTable[i].SumSingPoints.ToString(); - row.GamePoints.Text = GameState.ResultTable[i].NumGamePoints.ToString(); + row.Name.Text = profiles[GameState.ResultTable[i+Offset].PlayerID].PlayerName; + row.Rounds.Text = GameState.ResultTable[i+Offset].NumRounds.ToString(); + row.Won.Text = GameState.ResultTable[i+Offset].NumWon.ToString(); + row.SingPoints.Text = GameState.ResultTable[i+Offset].SumSingPoints.ToString(); + row.GamePoints.Text = GameState.ResultTable[i+Offset].NumGamePoints.ToString(); } else {