From c004d68a6971d9f90f876bbed51f9144d5dd652b Mon Sep 17 00:00:00 2001 From: Florian Kuepper Date: Tue, 10 Apr 2012 15:51:31 +0200 Subject: [PATCH] Added playeravatar and -name to SingScreen. Toggle with "I"! --- Output/Themes/Ambient/Screens/ScreenSing.xml | 1105 ++++++++++++++++- .../Themes/Changelog/Changelog_ScreenSing.txt | 4 + Vocaluxe/Base/CConfig.cs | 13 + Vocaluxe/Screens/CScreenSing.cs | 57 + 4 files changed, 1141 insertions(+), 38 deletions(-) diff --git a/Output/Themes/Ambient/Screens/ScreenSing.xml b/Output/Themes/Ambient/Screens/ScreenSing.xml index 1c508212..5a9c9359 100644 --- a/Output/Themes/Ambient/Screens/ScreenSing.xml +++ b/Output/Themes/Ambient/Screens/ScreenSing.xml @@ -17,10 +17,10 @@ Score 190 - 694 - -1,10 + 10 + -1,00 900 - 25 + 50 StaticColor @@ -49,7 +49,7 @@ Lyrics 40 - 15 + 7 -0,75 1200 93 @@ -65,7 +65,7 @@ Lyrics 40 - 15 + 7 -0,75 1200 93 @@ -183,7 +183,7 @@ LyricHelper 40 - 20 + 12 -1,00 45 45 @@ -202,7 +202,7 @@ LyricHelper 40 - 20 + 12 -1,00 45 45 @@ -232,6 +232,405 @@ + + + Invisible + + 40 + 360 + -0,75 + 190 + 190 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 40 + 160 + -0,75 + 165 + 165 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 40 + 360 + -0,75 + 165 + 165 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 40 + 111 + -0,75 + 140 + 140 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 40 + 274 + -0,75 + 140 + 140 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 40 + 442 + -0,75 + 140 + 140 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 40 + 160 + -0,75 + 165 + 165 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 40 + 360 + -0,75 + 165 + 165 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 1103 + 160 + -0,75 + 165 + 165 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 1103 + 360 + -0,75 + 165 + 165 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 40 + 111 + -0,75 + 140 + 140 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 40 + 274 + -0,75 + 140 + 140 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 40 + 442 + -0,75 + 140 + 140 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 1103 + 160 + -0,75 + 165 + 165 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 1103 + 360 + -0,75 + 165 + 165 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 40 + 111 + -0,75 + 140 + 140 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 40 + 274 + -0,75 + 140 + 140 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 40 + 442 + -0,75 + 140 + 140 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 1103 + 111 + -0,75 + 140 + 140 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 1103 + 274 + -0,75 + 140 + 140 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + + + + Invisible + + 1103 + 442 + -0,75 + 140 + 140 + + + 1,000 + 1,000 + 1,000 + 0,400 + + + + Invisible @@ -571,11 +970,11 @@ 640 - 695 + 18 - -1,10 + -1,00 - 23 + 32 880 @@ -738,7 +1137,7 @@ -1,00 - 158 + 148 @@ -765,7 +1164,7 @@ -1,00 - 158 + 148 @@ -792,7 +1191,7 @@ -1,00 - 158 + 148 @@ -927,7 +1326,7 @@ -1,00 - 158 + 148 @@ -954,7 +1353,7 @@ -1,00 - 158 + 148 @@ -981,7 +1380,7 @@ -1,00 - 158 + 148 @@ -1062,7 +1461,7 @@ -1,00 - 158 + 148 @@ -1089,7 +1488,7 @@ -1,00 - 158 + 148 @@ -1116,7 +1515,7 @@ -1,00 - 158 + 148 @@ -1143,7 +1542,7 @@ -1,00 - 158 + 148 @@ -1170,7 +1569,7 @@ -1,00 - 158 + 148 @@ -1197,7 +1596,7 @@ -1,00 - 158 + 148 @@ -1217,6 +1616,636 @@ + + + 110 + 513 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + TextSColor + + Center + + + + Outline + + + + + + + + + 110 + 288 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player1 + + Center + + + + Outline + + + + + + + + + 110 + 488 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player2 + + Center + + + + Outline + + + + + + + + + 110 + 219 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player1 + + Center + + + + Outline + + + + + + + + + 110 + 382 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player2 + + Center + + + + Outline + + + + + + + + + 110 + 550 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player3 + + Center + + + + Outline + + + + + + + + + 110 + 288 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player1 + + Center + + + + Outline + + + + + + + + + 110 + 488 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player2 + + Center + + + + Outline + + + + + + + + + 1173 + 288 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player3 + + Center + + + + Outline + + + + + + + + + 1173 + 488 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player4 + + Center + + + + Outline + + + + + + + + + 110 + 219 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player1 + + Center + + + + Outline + + + + + + + + + 110 + 382 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player2 + + Center + + + + Outline + + + + + + + + + 110 + 550 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player3 + + Center + + + + Outline + + + + + + + + + 1173 + 288 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player4 + + Center + + + + Outline + + + + + + + + + 1173 + 488 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player5 + + Center + + + + Outline + + + + + + + + + 110 + 219 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player1 + + Center + + + + Outline + + + + + + + + + 110 + 382 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player2 + + Center + + + + Outline + + + + + + + + + 110 + 550 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player3 + + Center + + + + Outline + + + + + + + + + 1173 + 219 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player4 + + Center + + + + Outline + + + + + + + + + 1173 + 382 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player5 + + Center + + + + Outline + + + + + + + + + 1173 + 550 + + -1,00 + + 28 + + + + 1,000 + 1,000 + 1,000 + 0,400 + + + Player6 + + Center + + + + Outline + + + + + + Button @@ -1358,7 +2387,7 @@ 637 - 20 + 12 -1,00 1200 50 @@ -1372,7 +2401,7 @@ 637 - 62 + 54 -1,00 1200 45 @@ -1386,7 +2415,7 @@ 637 - 20 + 12 -1,00 1200 50 @@ -1400,7 +2429,7 @@ 637 - 62 + 54 -1,00 1200 45 @@ -1453,17 +2482,17 @@ 105 -1,50 1210 - 160 + 150 35 268 -1,50 1210 - 160 + 150 35 436 -1,50 1210 - 160 + 150 35 150 -1,50 @@ -1488,17 +2517,17 @@ 105 -1,50 578 - 160 + 150 35 268 -1,50 578 - 160 + 150 35 436 -1,50 578 - 160 + 150 678 150 -1,50 @@ -1513,32 +2542,32 @@ 105 -1,50 578 - 160 + 150 35 268 -1,50 578 - 160 + 150 35 436 -1,50 578 - 160 + 150 678 105 -1,50 578 - 160 + 150 678 268 -1,50 578 - 160 + 150 678 436 -1,50 578 - 160 + 150 diff --git a/Output/Themes/Changelog/Changelog_ScreenSing.txt b/Output/Themes/Changelog/Changelog_ScreenSing.txt index 467cd165..22c5fa99 100644 --- a/Output/Themes/Changelog/Changelog_ScreenSing.txt +++ b/Output/Themes/Changelog/Changelog_ScreenSing.txt @@ -4,6 +4,10 @@ ScreenSing Version 4: Added Elements for 6-player-singing! +Add: + (One for each player for each player-number> + (One for each player for each player-number> + ++++++++++ Version 3: diff --git a/Vocaluxe/Base/CConfig.cs b/Vocaluxe/Base/CConfig.cs index a1d83a61..081d2305 100644 --- a/Vocaluxe/Base/CConfig.cs +++ b/Vocaluxe/Base/CConfig.cs @@ -152,6 +152,14 @@ namespace Vocaluxe.Base TR_CONFIG_ONLY_OWN_MUSIC } + public enum EPlayerInfo + { + TR_CONFIG_PLAYERINFO_BOTH, + TR_CONFIG_PLAYERINFO_NAME, + TR_CONFIG_PLAYERINFO_AVATAR, + TR_CONFIG_PLAYERINFO_OFF + } + #endregion Enums static class CConfig @@ -185,6 +193,7 @@ namespace Vocaluxe.Base public static EOffOn DrawNoteLines = EOffOn.TR_CONFIG_ON; public static EOffOn DrawToneHelper = EOffOn.TR_CONFIG_ON; public static ETimerLook TimerLook = ETimerLook.TR_CONFIG_TIMERLOOK_EXPANDED; + public static EPlayerInfo PlayerInfo = EPlayerInfo.TR_CONFIG_PLAYERINFO_BOTH; public static ECoverLoading CoverLoading = ECoverLoading.TR_CONFIG_COVERLOADING_ATSTART; // Sound @@ -301,6 +310,7 @@ namespace Vocaluxe.Base CHelper.TryGetEnumValueFromXML("//root/Theme/DrawNoteLines", navigator, ref DrawNoteLines); CHelper.TryGetEnumValueFromXML("//root/Theme/DrawToneHelper", navigator, ref DrawToneHelper); CHelper.TryGetEnumValueFromXML("//root/Theme/TimerLook", navigator, ref TimerLook); + CHelper.TryGetEnumValueFromXML("//root/Theme/PlayerInfo", navigator, ref PlayerInfo); CHelper.TryGetEnumValueFromXML("//root/Theme/CoverLoading", navigator, ref CoverLoading); #endregion Theme @@ -503,6 +513,9 @@ namespace Vocaluxe.Base writer.WriteComment("Look of timer:" + ListStrings(Enum.GetNames(typeof(ETimerLook)))); writer.WriteElementString("TimerLook", Enum.GetName(typeof(ETimerLook), TimerLook)); + writer.WriteComment("Information about players on SingScreen:" + ListStrings(Enum.GetNames(typeof(EPlayerInfo)))); + writer.WriteElementString("PlayerInfo", Enum.GetName(typeof(EPlayerInfo), PlayerInfo)); + writer.WriteComment("Cover Loading:" + ListStrings(Enum.GetNames(typeof(ECoverLoading)))); writer.WriteElementString("CoverLoading", Enum.GetName(typeof(ECoverLoading), CoverLoading)); diff --git a/Vocaluxe/Screens/CScreenSing.cs b/Vocaluxe/Screens/CScreenSing.cs index 08a9220a..fd0cac43 100644 --- a/Vocaluxe/Screens/CScreenSing.cs +++ b/Vocaluxe/Screens/CScreenSing.cs @@ -30,6 +30,7 @@ namespace Vocaluxe.Screens private const string TextTime = "TextTime"; private const string TextPause = "TextPause"; private string[,] TextScores; + private string[,] TextNames; private const string StaticSongText = "StaticSongText"; private const string StaticLyrics = "StaticLyrics"; @@ -46,6 +47,7 @@ namespace Vocaluxe.Screens private const string StaticPauseBG = "StaticPauseBG"; private string[,] StaticScores; + private string[,] StaticAvatars; private const string ButtonCancel = "ButtonCancel"; private const string ButtonContinue = "ButtonContinue"; @@ -185,6 +187,19 @@ namespace Vocaluxe.Screens CConfig.TimerMode = (ETimerMode)mode; break; + case Keys.I: + mode = (int)CConfig.PlayerInfo; + + mode++; + if (mode > Enum.GetNames(typeof(EPlayerInfo)).Length - 1) + { + mode = 0; + } + CConfig.PlayerInfo = (EPlayerInfo)mode; + CConfig.SaveConfig(); + SetVisuability(); + break; + case Keys.Enter: if (Buttons[htButtons(ButtonContinue)].Selected && _Pause) TogglePause(); @@ -333,6 +348,8 @@ namespace Vocaluxe.Screens } SetVisuability(); + UpdateAvatars(); + UpdateNames(); CBackgroundMusic.Pause(); } @@ -680,6 +697,7 @@ namespace Vocaluxe.Screens private void BuildTextStrings(ref List texts) { TextScores = new string[CSettings.MaxNumPlayer, CSettings.MaxNumPlayer]; + TextNames = new string[CSettings.MaxNumPlayer, CSettings.MaxNumPlayer]; for (int numplayer = 0; numplayer < CSettings.MaxNumPlayer; numplayer++) { @@ -689,8 +707,10 @@ namespace Vocaluxe.Screens { string target = "P" + (player + 1).ToString() + "N" + (numplayer + 1).ToString(); TextScores[player, numplayer] = "TextScore" + target; + TextNames[player, numplayer] = "TextName" + target; texts.Add(TextScores[player, numplayer]); + texts.Add(TextNames[player, numplayer]); } } } @@ -699,6 +719,7 @@ namespace Vocaluxe.Screens private void BuildStaticStrings(ref List statics) { StaticScores = new string[CSettings.MaxNumPlayer, CSettings.MaxNumPlayer]; + StaticAvatars = new string[CSettings.MaxNumPlayer, CSettings.MaxNumPlayer]; for (int numplayer = 0; numplayer < CSettings.MaxNumPlayer; numplayer++) { @@ -708,8 +729,10 @@ namespace Vocaluxe.Screens { string target = "P" + (player + 1).ToString() + "N" + (numplayer + 1).ToString(); StaticScores[player, numplayer] = "StaticScore" + target; + StaticAvatars[player, numplayer] = "StaticAvatar" + target; statics.Add(StaticScores[player, numplayer]); + statics.Add(StaticAvatars[player, numplayer]); } } } @@ -734,7 +757,11 @@ namespace Vocaluxe.Screens if (player <= numplayer) { Texts[htTexts(TextScores[player, numplayer])].Visible = (numplayer + 1 == CGame.NumPlayer); + Texts[htTexts(TextNames[player, numplayer])].Visible = ((numplayer + 1 == CGame.NumPlayer) + && (CConfig.PlayerInfo == EPlayerInfo.TR_CONFIG_PLAYERINFO_BOTH || CConfig.PlayerInfo == EPlayerInfo.TR_CONFIG_PLAYERINFO_NAME)); Statics[htStatics(StaticScores[player, numplayer])].Visible = (numplayer + 1 == CGame.NumPlayer); + Statics[htStatics(StaticAvatars[player, numplayer])].Visible = ((numplayer + 1 == CGame.NumPlayer) + && (CConfig.PlayerInfo == EPlayerInfo.TR_CONFIG_PLAYERINFO_BOTH || CConfig.PlayerInfo == EPlayerInfo.TR_CONFIG_PLAYERINFO_AVATAR)); } } } @@ -1113,5 +1140,35 @@ namespace Vocaluxe.Screens break; } } + + private void UpdateAvatars() + { + for (int i = 0; i < CGame.NumPlayer; i++) + { + if (CGame.Player[i].ProfileID > -1) + { + Statics[htStatics(StaticAvatars[i, CGame.NumPlayer - 1])].Texture = CProfiles.Profiles[CGame.Player[i].ProfileID].Avatar.Texture; + } + else + { + Statics[htStatics(StaticAvatars[i, CGame.NumPlayer - 1])].Visible = false; + } + } + } + + private void UpdateNames() + { + for (int i = 0; i < CGame.NumPlayer; i++) + { + if (CGame.Player[i].ProfileID > -1) + { + Texts[htTexts(TextNames[i, CGame.NumPlayer - 1])].Text = CProfiles.Profiles[CGame.Player[i].ProfileID].PlayerName; + } + else + { + Texts[htTexts(TextNames[i, CGame.NumPlayer - 1])].Visible = false; + } + } + } } }