From 07b0878bb367fbbafb4d8689882c1d395639aeb0 Mon Sep 17 00:00:00 2001 From: Florian Kuepper Date: Sun, 23 Dec 2012 00:01:03 +0100 Subject: [PATCH] Added next players to challenge-main. Please check with > 2 mics. --- .../Challenge/Languages/Deutsch.xml | 1 + .../Challenge/Languages/English.xml | 3 +- .../PartyModes/Challenge/Languages/French.xml | 1 + .../Challenge/Languages/Spanish.xml | 1 + .../Screens/PartyScreenChallengeMain.xml | 83 ++++++++++++++++++- .../PartyScreenChallengeMain.cs | 59 ++++++++++++- 6 files changed, 141 insertions(+), 7 deletions(-) diff --git a/Output/PartyModes/Challenge/Languages/Deutsch.xml b/Output/PartyModes/Challenge/Languages/Deutsch.xml index ce248c0b..27a17131 100644 --- a/Output/PartyModes/Challenge/Languages/Deutsch.xml +++ b/Output/PartyModes/Challenge/Languages/Deutsch.xml @@ -31,5 +31,6 @@ Sing-Punkte Punkte Challenge-Mode wirklich beenden? + Spieler der nächsten Runde: diff --git a/Output/PartyModes/Challenge/Languages/English.xml b/Output/PartyModes/Challenge/Languages/English.xml index b1cb7a0e..6b387836 100644 --- a/Output/PartyModes/Challenge/Languages/English.xml +++ b/Output/PartyModes/Challenge/Languages/English.xml @@ -30,6 +30,7 @@ Wins Sing Points Score - Do you really want to exit? + Do you really want to exit? + Player of next round: diff --git a/Output/PartyModes/Challenge/Languages/French.xml b/Output/PartyModes/Challenge/Languages/French.xml index 5c4c511c..3e38ada0 100644 --- a/Output/PartyModes/Challenge/Languages/French.xml +++ b/Output/PartyModes/Challenge/Languages/French.xml @@ -31,5 +31,6 @@ TODO: Sing Points TODO: Score TODO: Do you really want to exit? + TODO: Player of next round: diff --git a/Output/PartyModes/Challenge/Languages/Spanish.xml b/Output/PartyModes/Challenge/Languages/Spanish.xml index b7b03145..45144926 100644 --- a/Output/PartyModes/Challenge/Languages/Spanish.xml +++ b/Output/PartyModes/Challenge/Languages/Spanish.xml @@ -30,5 +30,6 @@ TODO: Sing Points TODO: Score TODO: Do you really want to exit? + TODO: Player of next round: diff --git a/Output/PartyModes/Challenge/Screens/PartyScreenChallengeMain.xml b/Output/PartyModes/Challenge/Screens/PartyScreenChallengeMain.xml index 4d26bd92..946b68dc 100644 --- a/Output/PartyModes/Challenge/Screens/PartyScreenChallengeMain.xml +++ b/Output/PartyModes/Challenge/Screens/PartyScreenChallengeMain.xml @@ -45,6 +45,22 @@ + + + Invisible + + 0 + 0 + 0,00 + 100 + 100 + + + StaticColor + + + + 640 @@ -74,6 +90,35 @@ + + + 640 + 515 + + 0,00 + + 32 + + + + StaticColor + + + TextSColor + + Center + + Center + + + + Outline + + TR_SCREENMAIN_NEXT_PLAYER + + + + 100 @@ -248,6 +293,36 @@ + + + 0 + 0 + + 0,00 + + 32 + + 100 + + + StaticColor + + + TextSColor + + Center + + Center + + + + Outline + + + + + + 640 @@ -255,7 +330,7 @@ -1,01 - 37 + 32 380 @@ -284,7 +359,7 @@ Button - 985 + 1030 600 0,00 150 @@ -341,7 +416,7 @@ Button - 145 + 100 600 0,00 150 @@ -398,7 +473,7 @@ Button - 145 + 100 600 0,00 150 diff --git a/PartyModeChallenge/PartyScreenChallengeMain.cs b/PartyModeChallenge/PartyScreenChallengeMain.cs index 9cf2e2c0..3d4be412 100644 --- a/PartyModeChallenge/PartyScreenChallengeMain.cs +++ b/PartyModeChallenge/PartyScreenChallengeMain.cs @@ -29,6 +29,7 @@ namespace Vocaluxe.PartyModes const string TextWon = "TextWon"; const string TextSingPoints = "TextSingPoints"; const string TextGamePoints = "TextGamePoints"; + const string TextNextPlayer = "TextNextPlayer"; const string TextPopupReallyExit = "TextPopupReallyExit"; const string ButtonNextRound = "ButtonNextRound"; @@ -38,6 +39,7 @@ namespace Vocaluxe.PartyModes const string ButtonPopupNo = "ButtonPopupNo"; const string StaticPopupBG = "StaticPopupBG"; + const string StaticNextPlayer = "StaticNextPlayer"; private bool ExitPopupVisible = false; @@ -45,6 +47,9 @@ namespace Vocaluxe.PartyModes private DataToScreenMain GameState; private List Table; + private List NextPlayerTexts; + private List NextPlayerStatics; + public PartyScreenChallengeMain() { Data = new DataFromScreen(); @@ -56,9 +61,9 @@ namespace Vocaluxe.PartyModes base.Init(); _ThemeName = "PartyScreenChallengeMain"; - _ThemeTexts = new string[] { TextPosition, TextPlayerName, TextNumPlayed, TextWon, TextSingPoints, TextGamePoints, TextPopupReallyExit }; + _ThemeTexts = new string[] { TextPosition, TextPlayerName, TextNumPlayed, TextWon, TextSingPoints, TextGamePoints, TextNextPlayer, TextPopupReallyExit }; _ThemeButtons = new string[] { ButtonNextRound, ButtonBack, ButtonExit, ButtonPopupYes, ButtonPopupNo }; - _ThemeStatics = new string[] { StaticPopupBG }; + _ThemeStatics = new string[] { StaticPopupBG, StaticNextPlayer }; _ScreenVersion = ScreenVersion; } @@ -68,6 +73,17 @@ namespace Vocaluxe.PartyModes GameState = new DataToScreenMain(); BuildTable(); + + NextPlayerTexts = new List(); + NextPlayerStatics = new List(); + + for (int i = 0; i < _PartyMode.GetMaxPlayer(); i++) + { + NextPlayerTexts.Add(GetNewText(Texts[htTexts(TextNextPlayer)])); + AddText(NextPlayerTexts[NextPlayerTexts.Count - 1]); + NextPlayerStatics.Add(GetNewStatic(Statics[htStatics(StaticNextPlayer)])); + AddStatic(NextPlayerStatics[NextPlayerStatics.Count - 1]); + } } public override void DataToScreen(object ReceivedData) @@ -175,6 +191,8 @@ namespace Vocaluxe.PartyModes base.OnShow(); Updatetable(); + UpdateNextPlayerPositions(); + UpdateNextPlayerContents(); if (GameState.CurrentRoundNr == 1) { @@ -236,6 +254,43 @@ namespace Vocaluxe.PartyModes _PartyMode.DataFromScreen(_ThemeName, Data); } + private void UpdateNextPlayerPositions() + { + float x = _Base.Settings.GetRenderW()/2 - ((GameState.NumPlayerAtOnce * Statics[htStatics(StaticNextPlayer)].Rect.W) + ((GameState.NumPlayerAtOnce-1) * 15))/2; + float static_y = 590; + float text_y = 550; + for (int i = 0; i < GameState.NumPlayerAtOnce; i++) + { + //static + NextPlayerStatics[i].Rect.X = x; + NextPlayerStatics[i].Rect.Y = static_y; + NextPlayerStatics[i].Visible = true; + //text + NextPlayerTexts[i].X = x + Statics[htStatics(StaticNextPlayer)].Rect.W / 2; + NextPlayerTexts[i].Y = text_y; + NextPlayerTexts[i].Visible = true; + + x += Statics[htStatics(StaticNextPlayer)].Rect.W + 15; + } + for (int i = GameState.NumPlayerAtOnce; i < _PartyMode.GetMaxPlayer(); i++) + { + NextPlayerStatics[i].Visible = false; + NextPlayerTexts[i].Visible = false; + } + } + + private void UpdateNextPlayerContents() + { + SProfile[] profiles = _Base.Profiles.GetProfiles(); + for (int i = 0; i < GameState.NumPlayerAtOnce; i++) + { + int pid = GameState.Combs[GameState.CurrentRoundNr].Player[i]; + NextPlayerStatics[i].Texture = profiles[GameState.ProfileIDs[pid]].Avatar.Texture; + NextPlayerTexts[i].Text = profiles[GameState.ProfileIDs[pid]].PlayerName; + NextPlayerTexts[i].Color = _Base.Theme.GetPlayerColor((i+1)); + } + } + private void BuildTable() { Table = new List();