From 6380c739aa3706b0ee7234d735fd6bd161273a24 Mon Sep 17 00:00:00 2001 From: Flamefire Date: Tue, 19 Mar 2013 14:04:39 +0100 Subject: [PATCH] Simpler Screens --- Output/CreditsRessourcesDB.sqlite | Bin 23320576 -> 5701632 bytes .../PartyScreenChallengeConfig.cs | 15 +- .../PartyScreenChallengeMain.cs | 17 +- .../PartyScreenChallengeNames.cs | 17 +- .../PartyScreenChallengeConfig.cs | 15 +- .../PartyScreenChallengeMain.cs | 17 +- .../PartyScreenChallengeNames.cs | 17 +- .../PartyScreenTicTacToeConfig.cs | 15 +- .../PartyScreenTicTacToeMain.cs | 12 +- .../PartyScreenTicTacToeNames.cs | 17 +- Vocaluxe/Base/CDataBase.cs | 60 ++- Vocaluxe/Base/CGraphics.cs | 8 +- Vocaluxe/Base/CParty.cs | 2 +- Vocaluxe/Screens/CPopupScreenPlayerControl.cs | 12 +- Vocaluxe/Screens/CPopupScreenVolumeControl.cs | 7 +- Vocaluxe/Screens/CScreenCredits.cs | 351 +++++++++--------- Vocaluxe/Screens/CScreenHighscore.cs | 7 +- Vocaluxe/Screens/CScreenLoad.cs | 6 +- Vocaluxe/Screens/CScreenMain.cs | 6 +- Vocaluxe/Screens/CScreenNames.cs | 7 +- Vocaluxe/Screens/CScreenOptions.cs | 6 +- Vocaluxe/Screens/CScreenOptionsGame.cs | 6 +- Vocaluxe/Screens/CScreenOptionsLyrics.cs | 7 +- Vocaluxe/Screens/CScreenOptionsRecord.cs | 7 +- Vocaluxe/Screens/CScreenOptionsSound.cs | 7 +- Vocaluxe/Screens/CScreenOptionsTheme.cs | 6 +- Vocaluxe/Screens/CScreenOptionsVideo.cs | 7 +- Vocaluxe/Screens/CScreenParty.cs | 11 +- Vocaluxe/Screens/CScreenProfiles.cs | 6 +- Vocaluxe/Screens/CScreenScore.cs | 7 +- Vocaluxe/Screens/CScreenSing.cs | 7 +- Vocaluxe/Screens/CScreenSong.cs | 6 +- Vocaluxe/Screens/CScreenTest.cs | 16 +- VocaluxeLib/Menu/CMenu.cs | 120 ++---- VocaluxeLib/Menu/COrderedDictionaryLite.cs | 78 ++++ VocaluxeLib/Menu/IMenu.cs | 4 +- VocaluxeLib/PartyModes/CScreenPartyDummy.cs | 19 +- VocaluxeLib/VocaluxeLib.csproj | 1 + 38 files changed, 384 insertions(+), 545 deletions(-) create mode 100644 VocaluxeLib/Menu/COrderedDictionaryLite.cs diff --git a/Output/CreditsRessourcesDB.sqlite b/Output/CreditsRessourcesDB.sqlite index dbfe78bbe06df0679d2cf15937d114f70455252f..3f960232776480f5bd4ffddbc3a2326c0ecdab78 100644 GIT binary patch delta 150356 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 Uh8QNkjHU|}>Q6uY`E=O-0`kO8AOHXW delta 227391 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

    v_%`VMm*xs3N6tB&C!hhpjcBDnxHWn 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ɀSFWIb09Dm-(w!;V*!4^LZl%bi;%pSmnB$=Wmt|C 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 zg(); - _ThemeName = "PartyScreenChallengeNames"; List buttons = new List(); _ThemeButtons = new string[] { ButtonBack, ButtonNext, ButtonPlayerDestination, ButtonPlayerChoose }; - _ScreenVersion = ScreenVersion; Data = new DataFromScreen(); FromScreenNames names = new FromScreenNames(); @@ -108,7 +106,7 @@ namespace Vocaluxe.PartyModes } catch (Exception e) { - CBase.Log.LogError("Error in party mode screen challenge names. Can't cast received data from game mode " + _ThemeName + ". " + e.Message); ; + CBase.Log.LogError("Error in party mode screen challenge names. Can't cast received data from game mode " + ThemeName + ". " + e.Message); ; } } @@ -286,11 +284,6 @@ namespace Vocaluxe.PartyModes return true; } - public override void OnClose() - { - base.OnClose(); - } - private void AddButtonPlayerDestination() { Buttons[ButtonPlayerDestination].Visible = false; @@ -521,14 +514,14 @@ namespace Vocaluxe.PartyModes { Data.ScreenNames.FadeToConfig = true; Data.ScreenNames.FadeToMain = false; - _PartyMode.DataFromScreen(_ThemeName, Data); + _PartyMode.DataFromScreen(ThemeName, Data); } private void Next() { Data.ScreenNames.FadeToConfig = false; Data.ScreenNames.FadeToMain = true; - _PartyMode.DataFromScreen(_ThemeName, Data); + _PartyMode.DataFromScreen(ThemeName, Data); } } } diff --git a/PartyModes/PartyModeChallengeMedley/PartyScreenChallengeConfig.cs b/PartyModes/PartyModeChallengeMedley/PartyScreenChallengeConfig.cs index 61910470..acb8ba59 100644 --- a/PartyModes/PartyModeChallengeMedley/PartyScreenChallengeConfig.cs +++ b/PartyModes/PartyModeChallengeMedley/PartyScreenChallengeConfig.cs @@ -10,7 +10,7 @@ namespace Vocaluxe.PartyModes public class PartyScreenChallengeConfig : CMenuParty { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } const string SelectSlideNumPlayers = "SelectSlideNumPlayers"; const string SelectSlideNumMics = "SelectSlideNumMics"; @@ -28,14 +28,12 @@ namespace Vocaluxe.PartyModes { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "PartyScreenChallengeConfig"; _ThemeSelectSlides = new string[] { SelectSlideNumPlayers, SelectSlideNumMics, SelectSlideNumRounds }; _ThemeButtons = new string[] { ButtonNext, ButtonBack }; - _ScreenVersion = ScreenVersion; Data = new DataFromScreen(); FromScreenConfig config = new FromScreenConfig(); @@ -63,7 +61,7 @@ namespace Vocaluxe.PartyModes } catch (Exception e) { - CBase.Log.LogError("Error in party mode screen challenge config. Can't cast received data from game mode " + _ThemeName + ". " + e.Message);; + CBase.Log.LogError("Error in party mode screen challenge config. Can't cast received data from game mode " + ThemeName + ". " + e.Message);; } } @@ -153,11 +151,6 @@ namespace Vocaluxe.PartyModes return true; } - public override void OnClose() - { - base.OnClose(); - } - private void RebuildSlides() { // build num player slide (min player ... max player); @@ -251,7 +244,7 @@ namespace Vocaluxe.PartyModes private void Next() { - _PartyMode.DataFromScreen(_ThemeName, Data); + _PartyMode.DataFromScreen(ThemeName, Data); } } } diff --git a/PartyModes/PartyModeChallengeMedley/PartyScreenChallengeMain.cs b/PartyModes/PartyModeChallengeMedley/PartyScreenChallengeMain.cs index 9a36b657..54ae3304 100644 --- a/PartyModes/PartyModeChallengeMedley/PartyScreenChallengeMain.cs +++ b/PartyModes/PartyModeChallengeMedley/PartyScreenChallengeMain.cs @@ -28,7 +28,7 @@ namespace Vocaluxe.PartyModes public class PartyScreenChallengeMain : CMenuParty { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } const string TextPosition = "TextPosition"; const string TextPlayerName = "TextPlayerName"; @@ -81,15 +81,13 @@ namespace Vocaluxe.PartyModes Data.ScreenMain = new FromScreenMain(); } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "PartyScreenChallengeMain"; _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; } public override void LoadTheme(string XmlPath) @@ -122,7 +120,7 @@ namespace Vocaluxe.PartyModes } catch (Exception e) { - CBase.Log.LogError("Error in party mode screen challenge main. Can't cast received data from game mode " + _ThemeName + ". " + e.Message); ; + CBase.Log.LogError("Error in party mode screen challenge main. Can't cast received data from game mode " + ThemeName + ". " + e.Message); ; } } @@ -292,16 +290,11 @@ namespace Vocaluxe.PartyModes return true; } - public override void OnClose() - { - base.OnClose(); - } - private void NextRound() { Data.ScreenMain.FadeToNameSelection = false; Data.ScreenMain.FadeToSongSelection = true; - _PartyMode.DataFromScreen(_ThemeName, Data); + _PartyMode.DataFromScreen(ThemeName, Data); } private void EndParty() @@ -326,7 +319,7 @@ namespace Vocaluxe.PartyModes { Data.ScreenMain.FadeToNameSelection = true; Data.ScreenMain.FadeToSongSelection = false; - _PartyMode.DataFromScreen(_ThemeName, Data); + _PartyMode.DataFromScreen(ThemeName, Data); } private void UpdateNextPlayerPositions() diff --git a/PartyModes/PartyModeChallengeMedley/PartyScreenChallengeNames.cs b/PartyModes/PartyModeChallengeMedley/PartyScreenChallengeNames.cs index 13c1c902..f42240cf 100644 --- a/PartyModes/PartyModeChallengeMedley/PartyScreenChallengeNames.cs +++ b/PartyModes/PartyModeChallengeMedley/PartyScreenChallengeNames.cs @@ -10,7 +10,7 @@ namespace Vocaluxe.PartyModes public class PartyScreenChallengeNames : CMenuParty { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } const string ButtonNext = "ButtonNext"; const string ButtonBack = "ButtonBack"; @@ -57,7 +57,7 @@ namespace Vocaluxe.PartyModes { } - protected override void Init() + public override void Init() { base.Init(); @@ -68,10 +68,8 @@ namespace Vocaluxe.PartyModes Data.ScreenNames.ProfileIDs = new List(); - _ThemeName = "PartyScreenChallengeNames"; List buttons = new List(); _ThemeButtons = new string[] { ButtonBack, ButtonNext, ButtonPlayerDestination, ButtonPlayerChoose }; - _ScreenVersion = ScreenVersion; Data = new DataFromScreen(); FromScreenNames names = new FromScreenNames(); @@ -108,7 +106,7 @@ namespace Vocaluxe.PartyModes } catch (Exception e) { - CBase.Log.LogError("Error in party mode screen challenge names. Can't cast received data from game mode " + _ThemeName + ". " + e.Message); ; + CBase.Log.LogError("Error in party mode screen challenge names. Can't cast received data from game mode " + ThemeName + ". " + e.Message); ; } } @@ -286,11 +284,6 @@ namespace Vocaluxe.PartyModes return true; } - public override void OnClose() - { - base.OnClose(); - } - private void AddButtonPlayerDestination() { Buttons[ButtonPlayerDestination].Visible = false; @@ -521,14 +514,14 @@ namespace Vocaluxe.PartyModes { Data.ScreenNames.FadeToConfig = true; Data.ScreenNames.FadeToMain = false; - _PartyMode.DataFromScreen(_ThemeName, Data); + _PartyMode.DataFromScreen(ThemeName, Data); } private void Next() { Data.ScreenNames.FadeToConfig = false; Data.ScreenNames.FadeToMain = true; - _PartyMode.DataFromScreen(_ThemeName, Data); + _PartyMode.DataFromScreen(ThemeName, Data); } } } diff --git a/PartyModes/PartyModeTicTacToe/PartyScreenTicTacToeConfig.cs b/PartyModes/PartyModeTicTacToe/PartyScreenTicTacToeConfig.cs index bad59f10..b6a4d497 100644 --- a/PartyModes/PartyModeTicTacToe/PartyScreenTicTacToeConfig.cs +++ b/PartyModes/PartyModeTicTacToe/PartyScreenTicTacToeConfig.cs @@ -10,7 +10,7 @@ namespace Vocaluxe.PartyModes public class PartyScreenTicTacToeConfig : CMenuParty { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } const string SelectSlideNumPlayerTeam1 = "SelectSlideNumPlayerTeam1"; const string SelectSlideNumPlayerTeam2 = "SelectSlideNumPlayerTeam2"; @@ -30,14 +30,12 @@ namespace Vocaluxe.PartyModes { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "PartyScreenTicTacToeConfig"; _ThemeSelectSlides = new string[] { SelectSlideNumPlayerTeam1, SelectSlideNumPlayerTeam2, SelectSlideNumFields, SelectSlideSongSource, SelectSlidePlaylist, SelectSlideCategory, SelectSlideGameMode }; _ThemeButtons = new string[] { ButtonNext, ButtonBack }; - _ScreenVersion = ScreenVersion; Data = new DataFromScreen(); FromScreenConfig config = new FromScreenConfig(); @@ -73,7 +71,7 @@ namespace Vocaluxe.PartyModes } catch (Exception e) { - CBase.Log.LogError("Error in party mode screen TicTacToe config. Can't cast received data from game mode " + _ThemeName + ". " + e.Message);; + CBase.Log.LogError("Error in party mode screen TicTacToe config. Can't cast received data from game mode " + ThemeName + ". " + e.Message);; } } @@ -162,11 +160,6 @@ namespace Vocaluxe.PartyModes return true; } - public override void OnClose() - { - base.OnClose(); - } - private void FillSlides() { // build num player slide (min player ... max player); @@ -339,7 +332,7 @@ namespace Vocaluxe.PartyModes private void Next() { - _PartyMode.DataFromScreen(_ThemeName, Data); + _PartyMode.DataFromScreen(ThemeName, Data); } } } diff --git a/PartyModes/PartyModeTicTacToe/PartyScreenTicTacToeMain.cs b/PartyModes/PartyModeTicTacToe/PartyScreenTicTacToeMain.cs index c8a5c5fa..d1c45100 100644 --- a/PartyModes/PartyModeTicTacToe/PartyScreenTicTacToeMain.cs +++ b/PartyModes/PartyModeTicTacToe/PartyScreenTicTacToeMain.cs @@ -24,7 +24,7 @@ namespace Vocaluxe.PartyModes public class PartyScreenTicTacToeMain : CMenuParty { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } const string TextPopupReallyExit = "TextPopupReallyExit"; const string TextTeamChoosing = "TextTeamChoosing"; @@ -73,15 +73,13 @@ namespace Vocaluxe.PartyModes { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "PartyScreenTicTacToeMain"; _ThemeTexts = new string[] { TextPopupReallyExit, TextTeamChoosing, TextFinishMessage, TextNextPlayerT1, TextNextPlayerT2, TextNextPlayerNameT1, TextNextPlayerNameT2 }; _ThemeButtons = new string[] { ButtonNextRound, ButtonBack, ButtonExit, ButtonPopupYes, ButtonPopupNo, ButtonField, ButtonJokerRandomT1, ButtonJokerRandomT2, ButtonJokerRetryT1, ButtonJokerRetryT2 }; _ThemeStatics = new string[] { StaticPopupBG, StaticAvatarT1, StaticAvatarT2 }; - _ScreenVersion = ScreenVersion; Data = new DataFromScreen(); FromScreenMain config = new FromScreenMain(); @@ -117,7 +115,7 @@ namespace Vocaluxe.PartyModes } catch (Exception e) { - CBase.Log.LogError("Error in party mode screen TicTacToe main. Can't cast received data from game mode " + _ThemeName + ". " + e.Message); ; + CBase.Log.LogError("Error in party mode screen TicTacToe main. Can't cast received data from game mode " + ThemeName + ". " + e.Message); ; } } @@ -629,7 +627,7 @@ namespace Vocaluxe.PartyModes Data.ScreenMain.SingRoundNr = SelectedField; Data.ScreenMain.PlayerTeam1 = GameData.PlayerTeam1; Data.ScreenMain.PlayerTeam2 = GameData.PlayerTeam2; - _PartyMode.DataFromScreen(_ThemeName, Data); + _PartyMode.DataFromScreen(ThemeName, Data); } private void EndParty() @@ -657,7 +655,7 @@ namespace Vocaluxe.PartyModes Data.ScreenMain.FadeToNameSelection = true; Data.ScreenMain.FadeToSinging = false; Data.ScreenMain.SingRoundNr = SelectedField; - _PartyMode.DataFromScreen(_ThemeName, Data); + _PartyMode.DataFromScreen(ThemeName, Data); } private int BuildWinnerPossibilities() diff --git a/PartyModes/PartyModeTicTacToe/PartyScreenTicTacToeNames.cs b/PartyModes/PartyModeTicTacToe/PartyScreenTicTacToeNames.cs index c095028a..64710c80 100644 --- a/PartyModes/PartyModeTicTacToe/PartyScreenTicTacToeNames.cs +++ b/PartyModes/PartyModeTicTacToe/PartyScreenTicTacToeNames.cs @@ -10,7 +10,7 @@ namespace Vocaluxe.PartyModes public class PartyScreenTicTacToeNames : CMenuParty { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } const string ButtonNext = "ButtonNext"; const string ButtonBack = "ButtonBack"; @@ -60,7 +60,7 @@ namespace Vocaluxe.PartyModes { } - protected override void Init() + public override void Init() { base.Init(); @@ -72,10 +72,8 @@ namespace Vocaluxe.PartyModes Data.ScreenNames.ProfileIDsTeam1 = new List(); Data.ScreenNames.ProfileIDsTeam2 = new List(); - _ThemeName = "PartyScreenTicTacToeNames"; List buttons = new List(); _ThemeButtons = new string[] { ButtonBack, ButtonNext, ButtonPlayerDestination, ButtonPlayerChoose, ButtonPlayerChooseScrollUp, ButtonPlayerChooseScrollDown }; - _ScreenVersion = ScreenVersion; Data = new DataFromScreen(); FromScreenNames names = new FromScreenNames(); @@ -121,7 +119,7 @@ namespace Vocaluxe.PartyModes } catch (Exception e) { - CBase.Log.LogError("Error in party mode screen TicTacToe names. Can't cast received data from game mode " + _ThemeName + ". " + e.Message); ; + CBase.Log.LogError("Error in party mode screen TicTacToe names. Can't cast received data from game mode " + ThemeName + ". " + e.Message); ; } } @@ -332,11 +330,6 @@ namespace Vocaluxe.PartyModes return true; } - public override void OnClose() - { - base.OnClose(); - } - private void Scroll(int Offset) { if (Offset < 0 && PlayerChooseButtonsOffset > 0) @@ -663,14 +656,14 @@ namespace Vocaluxe.PartyModes { Data.ScreenNames.FadeToConfig = true; Data.ScreenNames.FadeToMain = false; - _PartyMode.DataFromScreen(_ThemeName, Data); + _PartyMode.DataFromScreen(ThemeName, Data); } private void Next() { Data.ScreenNames.FadeToConfig = false; Data.ScreenNames.FadeToMain = true; - _PartyMode.DataFromScreen(_ThemeName, Data); + _PartyMode.DataFromScreen(ThemeName, Data); } } } diff --git a/Vocaluxe/Base/CDataBase.cs b/Vocaluxe/Base/CDataBase.cs index 0220890c..244491fa 100644 --- a/Vocaluxe/Base/CDataBase.cs +++ b/Vocaluxe/Base/CDataBase.cs @@ -1304,7 +1304,6 @@ namespace Vocaluxe.Base private static bool AddImageToCreditsDB(String ImagePath) { bool result = false; - STexture tex; if (File.Exists(ImagePath)) { @@ -1336,21 +1335,35 @@ namespace Vocaluxe.Base int w = origin.Width; int h = origin.Height; byte[] data; - + try { - using (Bitmap bmp = new Bitmap(w, h)) - { - using (Graphics g = Graphics.FromImage(bmp)) - { - g.DrawImage(origin, new Rectangle(0, 0, w, h)); - } - tex = CDraw.AddTexture(bmp); - data = new byte[w * h * 4]; + data = new byte[w * h * 4]; - BitmapData bmp_data = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb); - Marshal.Copy(bmp_data.Scan0, data, 0, w * h * 4); - bmp.UnlockBits(bmp_data); + BitmapData bmp_data = origin.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb); + Marshal.Copy(bmp_data.Scan0, data, 0, w * h * 4); + origin.UnlockBits(bmp_data); + + command.CommandText = "INSERT INTO Images (Path, width, height) VALUES (@path, @w, @h)"; + command.Parameters.Add("@path", System.Data.DbType.String, 0).Value = Path.GetFileName(ImagePath); + command.Parameters.Add("@w", System.Data.DbType.Int32, 0).Value = w; + command.Parameters.Add("@h", System.Data.DbType.Int32, 0).Value = h; + command.ExecuteNonQuery(); + + command.CommandText = "SELECT id FROM Images WHERE [Path] = @path"; + command.Parameters.Add("@path", System.Data.DbType.String, 0).Value = Path.GetFileName(ImagePath); + SQLiteDataReader reader = command.ExecuteReader(); + + if (reader != null) + { + reader.Read(); + int id = reader.GetInt32(0); + reader.Close(); + command.CommandText = "INSERT INTO ImageData (ImageID, Data) VALUES (@id, @data)"; + command.Parameters.Add("@id", System.Data.DbType.Int32, 20).Value = id; + command.Parameters.Add("@data", System.Data.DbType.Binary, 20).Value = data; + command.ExecuteReader(); + result = true; } } finally @@ -1358,27 +1371,6 @@ namespace Vocaluxe.Base origin.Dispose(); } - command.CommandText = "INSERT INTO Images (Path, width, height) VALUES (@path, @w, @h)"; - command.Parameters.Add("@path", System.Data.DbType.String, 0).Value = Path.GetFileName(ImagePath); - command.Parameters.Add("@w", System.Data.DbType.Int32, 0).Value = w; - command.Parameters.Add("@h", System.Data.DbType.Int32, 0).Value = h; - command.ExecuteNonQuery(); - - command.CommandText = "SELECT id FROM Images WHERE [Path] = @path"; - command.Parameters.Add("@path", System.Data.DbType.String, 0).Value = Path.GetFileName(ImagePath); - SQLiteDataReader reader = command.ExecuteReader(); - - if (reader != null) - { - reader.Read(); - int id = reader.GetInt32(0); - reader.Close(); - command.CommandText = "INSERT INTO ImageData (ImageID, Data) VALUES (@id, @data)"; - command.Parameters.Add("@id", System.Data.DbType.Int32, 20).Value = id; - command.Parameters.Add("@data", System.Data.DbType.Binary, 20).Value = data; - command.ExecuteReader(); - result = true; - } } } } diff --git a/Vocaluxe/Base/CGraphics.cs b/Vocaluxe/Base/CGraphics.cs index 0d8474c8..f9e07175 100644 --- a/Vocaluxe/Base/CGraphics.cs +++ b/Vocaluxe/Base/CGraphics.cs @@ -251,14 +251,14 @@ namespace Vocaluxe.Base for (int i = 0; i < _Screens.Count; i++) { CLog.StartBenchmark(1, "Load Theme " + Enum.GetNames(typeof(EScreens))[i]); - _Screens[i].Initialize(); + _Screens[i].Init(); _Screens[i].LoadTheme(CTheme.GetThemeScreensPath(-1)); CLog.StopBenchmark(1, "Load Theme " + Enum.GetNames(typeof(EScreens))[i]); } for (int i = 0; i < _PopupScreens.Count; i++) { - _PopupScreens[i].Initialize(); + _PopupScreens[i].Init(); _PopupScreens[i].LoadTheme(CTheme.GetThemeScreensPath(-1)); } } @@ -644,7 +644,7 @@ namespace Vocaluxe.Base UpdateMousePosition(MouseEvent.X, MouseEvent.Y); - bool isOverPopupPlayerControl = CHelper.IsInBounds(_PopupScreens[(int)EPopupScreens.PopupPlayerControl].GetScreenArea(), MouseEvent); + bool isOverPopupPlayerControl = CHelper.IsInBounds(_PopupScreens[(int)EPopupScreens.PopupPlayerControl].ScreenArea, MouseEvent); if (PopupPlayerControlAllowed && isOverPopupPlayerControl) { if (_CurrentPopupScreen == EPopupScreens.NoPopup && CConfig.BackgroundMusic == EOffOn.TR_CONFIG_ON) @@ -654,7 +654,7 @@ namespace Vocaluxe.Base if (!isOverPopupPlayerControl && _CurrentPopupScreen == EPopupScreens.PopupPlayerControl) HidePopup(EPopupScreens.PopupPlayerControl); - bool isOverPopupVolumeControl = CHelper.IsInBounds(_PopupScreens[(int)EPopupScreens.PopupVolumeControl].GetScreenArea(), MouseEvent); + bool isOverPopupVolumeControl = CHelper.IsInBounds(_PopupScreens[(int)EPopupScreens.PopupVolumeControl].ScreenArea, MouseEvent); if (PopupVolumeControlAllowed && isOverPopupVolumeControl) { if (_CurrentPopupScreen == EPopupScreens.NoPopup) diff --git a/Vocaluxe/Base/CParty.cs b/Vocaluxe/Base/CParty.cs index 0b17b4e9..55c2645c 100644 --- a/Vocaluxe/Base/CParty.cs +++ b/Vocaluxe/Base/CParty.cs @@ -314,7 +314,7 @@ namespace Vocaluxe.Base if (Screen != null) { - Screen.Initialize(); + Screen.Init(); Screen.AssingPartyMode(pm.PartyMode); Screen.SetPartyModeID(pm.PartyModeID); Screen.LoadTheme(XmlPath); diff --git a/Vocaluxe/Screens/CPopupScreenPlayerControl.cs b/Vocaluxe/Screens/CPopupScreenPlayerControl.cs index 1e10751e..3c1210eb 100644 --- a/Vocaluxe/Screens/CPopupScreenPlayerControl.cs +++ b/Vocaluxe/Screens/CPopupScreenPlayerControl.cs @@ -15,7 +15,7 @@ namespace Vocaluxe.Screens class CPopupScreenPlayerControl : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } private const string StaticBG = "StaticBG"; private const string StaticCover = "StaticCover"; @@ -78,13 +78,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "PopupScreenPlayerControl"; - _ScreenVersion = ScreenVersion; - _ThemeStatics = new string[] { StaticBG, StaticCover }; _ThemeTexts = new string[] { TextCurrentSong }; @@ -191,11 +188,6 @@ namespace Vocaluxe.Screens return true; } - public override void OnShow() - { - base.OnShow(); - } - public override bool Draw() { if (!_Active) diff --git a/Vocaluxe/Screens/CPopupScreenVolumeControl.cs b/Vocaluxe/Screens/CPopupScreenVolumeControl.cs index 2256acb1..2cc2ea5c 100644 --- a/Vocaluxe/Screens/CPopupScreenVolumeControl.cs +++ b/Vocaluxe/Screens/CPopupScreenVolumeControl.cs @@ -15,7 +15,7 @@ namespace Vocaluxe.Screens class CPopupScreenVolumeControl : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } private const string StaticBG = "StaticBG"; @@ -26,13 +26,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "PopupScreenVolumeControl"; - _ScreenVersion = ScreenVersion; - _ThemeStatics = new string[] { StaticBG }; _ThemeSelectSlides = new string[] { SelectSlideVolume }; diff --git a/Vocaluxe/Screens/CScreenCredits.cs b/Vocaluxe/Screens/CScreenCredits.cs index fb241f53..a254aff5 100644 --- a/Vocaluxe/Screens/CScreenCredits.cs +++ b/Vocaluxe/Screens/CScreenCredits.cs @@ -18,20 +18,82 @@ enum EDirection class CCreditName { - public CStatic image; - public CParticleEffect particle; - public SRectF particleRect; - public EDirection direction; + private CStatic _Image; + private CStatic _ImgDot; + private CParticleEffect _Particle; + private int _ParticleOffsetX; + private int _ParticleOffsetY; + public EDirection Direction; public float StartTimeUp; - public bool active; + public bool Active; + + public CCreditName(CStatic Image, CStatic ImgDot, CParticleEffect Particle, int ParticleOffsetX, int ParticleOffsetY) + { + _Image = Image; + _ImgDot = ImgDot; + _Particle = Particle; + _ParticleOffsetX = (int)Math.Round(ParticleOffsetX * (float)Image.Rect.W / Image.Texture.w2 - Particle.Rect.W / 2); + _ParticleOffsetY = (int)Math.Round(ParticleOffsetY * (float)Image.Rect.H / Image.Texture.h2 - Particle.Rect.H / 2); + Active = true; + } + + public float X + { + get + { + return _Image.Rect.X; + } + set + { + _Image.Rect.X = value; + _ImgDot.Rect.X = value + _ParticleOffsetX; + _Particle.Rect.X = value + _ParticleOffsetX; + } + } + public float Y + { + get + { + return _Image.Rect.Y; + } + set + { + _Image.Rect.Y = value; + _ImgDot.Rect.Y = value + _ParticleOffsetY; + _Particle.Rect.Y = value + _ParticleOffsetY; + } + } + + public float W { get { return _Image.Rect.W; } } + public float H { get { return _Image.Rect.H; } } + + public float Alpha + { + get { return _Image.Alpha; } + set + { + _Image.Alpha = value; + _ImgDot.Alpha = value; + } + } + + public void Draw() + { + if (Active) + { + _Image.Draw(); + _ImgDot.Draw(); + _Particle.Draw(); + } + } } namespace Vocaluxe.Screens { - class CScreenCredits :CMenu + class CScreenCredits : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } private CStatic logo; private CParticleEffect starsRed; @@ -48,6 +110,9 @@ namespace Vocaluxe.Screens private STexture _TexLogo; private STexture _TexPerfectNoteStar; + private STexture _TexRedDot; + private STexture _TexBlueDot; + private STexture _TexNameBrunzel; private STexture _TexNameDarkice; private STexture _TexNameFlokuep; @@ -56,18 +121,15 @@ namespace Vocaluxe.Screens private STexture _TexNameBabene03; private STexture _TexNamePantero; private STexture _TexNamePinky007; - + public CScreenCredits() { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "ScreenCredits"; - _ScreenVersion = ScreenVersion; - LogoTimer = new Stopwatch(); CreditsTimer = new Stopwatch(); TextTimer = new Stopwatch(); @@ -110,34 +172,22 @@ namespace Vocaluxe.Screens { //Vocaluxe-Logo CDataBase.GetCreditsRessource("Logo_voc.png", ref _TexLogo); - + //Little stars for logo CDataBase.GetCreditsRessource("PerfectNoteStar.png", ref _TexPerfectNoteStar); - - //brunzel + + CDataBase.GetCreditsRessource("redDot.png", ref _TexRedDot); + CDataBase.GetCreditsRessource("blueDot.png", ref _TexBlueDot); + CDataBase.GetCreditsRessource("brunzel.png", ref _TexNameBrunzel); - - //Darkice CDataBase.GetCreditsRessource("Darkice.png", ref _TexNameDarkice); - - //flokuep CDataBase.GetCreditsRessource("flokuep.png", ref _TexNameFlokuep); - - //bohning CDataBase.GetCreditsRessource("bohning.png", ref _TexNameBohning); - - //mesand CDataBase.GetCreditsRessource("mesand.png", ref _TexNameMesand); - - //babene03 CDataBase.GetCreditsRessource("babene03.png", ref _TexNameBabene03); - - //pantero CDataBase.GetCreditsRessource("pantero.png", ref _TexNamePantero); - - //Pinky007 CDataBase.GetCreditsRessource("Pinky007.png", ref _TexNamePinky007); - + //Prepare Text int lastY = 280; for (int i = 0; i < paragraphs.Count; i++) @@ -178,25 +228,18 @@ namespace Vocaluxe.Screens public override void SaveTheme() { } - public override void UnloadTextures() {} + public override void UnloadTextures() { } - public override void ReloadTextures() {} + public override void ReloadTextures() { } public override bool HandleInput(KeyEvent KeyEvent) { - if (KeyEvent.KeyPressed && !Char.IsControl(KeyEvent.Unicode)) - { - - } - else + if (!KeyEvent.KeyPressed || Char.IsControl(KeyEvent.Unicode)) { switch (KeyEvent.Key) { case Keys.Escape: case Keys.Back: - CGraphics.FadeTo(EScreens.ScreenMain); - break; - case Keys.Enter: CGraphics.FadeTo(EScreens.ScreenMain); break; @@ -208,17 +251,7 @@ namespace Vocaluxe.Screens public override bool HandleMouse(MouseEvent MouseEvent) { - if (MouseEvent.LB && IsMouseOver(MouseEvent)) - { - - } - - if (MouseEvent.LB) - { - CGraphics.FadeTo(EScreens.ScreenMain); - } - - if (MouseEvent.RB) + if (MouseEvent.LB || MouseEvent.RB) { CGraphics.FadeTo(EScreens.ScreenMain); } @@ -234,93 +267,70 @@ namespace Vocaluxe.Screens return true; } + public CParticleEffect _GetStarParticles(int NumStars, bool isRed, SRectF Rect, bool BigParticles) + { + SColorF partColor = (isRed) ? new SColorF(1, 0, 0, 1) : new SColorF(0.149f, 0.415f, 0.819f, 1); + int partSize = (BigParticles) ? 35 : 25; + return GetNewParticleEffect(NumStars, partColor, Rect, _TexPerfectNoteStar, partSize, EParticleType.Star); + } + + private void _AddNewCreditName(STexture Texture, int ParticleOffsetX, int ParticleOffsetY, bool BigParticles) + { + bool isRight = _CreditNames.Count % 2 == 0; + int partRectSize = (BigParticles) ? 25 : 20; + int partCount = (BigParticles) ? 8 : 6; + STexture TexDot = (isRight) ? _TexRedDot : _TexBlueDot; + + CStatic Image = GetNewStatic(Texture, new SColorF(1, 1, 1, 1), new SRectF(-1, -1, 400, 120, -4)); + + SRectF particleRect = new SRectF(-1, -1, partRectSize, partRectSize, -6); + SRectF imgDotRect = new SRectF(particleRect); + imgDotRect.Z = -5; + CStatic ImgDot = GetNewStatic(TexDot, new SColorF(1, 1, 1, 1), imgDotRect); + CParticleEffect Particle = _GetStarParticles(partCount, isRight, particleRect, BigParticles); + + CCreditName credit = new CCreditName(Image, ImgDot, Particle, ParticleOffsetX, ParticleOffsetY); + + if (isRight) + { + credit.X = CSettings.iRenderW; + credit.Direction = EDirection.Right; + } + else + { + credit.X = -450; + credit.Direction = EDirection.Left; + + } + credit.Y = 580; + _CreditNames.Add(credit); + } + + public override void OnShow() { base.OnShow(); //Vocaluxe-Logo logo = GetNewStatic(_TexLogo, new SColorF(1, 1, 1, 1), new SRectF((CSettings.iRenderW - _TexLogo.width) / 2, -270, _TexLogo.width, _TexLogo.height, -2)); - + //Little stars for logo int numstars = (int)(logo.Rect.W * 0.25f / 2f); - starsRed = GetNewParticleEffect(numstars, new SColorF(1, 0, 0, 1), new SRectF(logo.Rect.X, logo.Rect.Y, logo.Rect.W, logo.Rect.H, -1), _TexPerfectNoteStar, 35, EParticleType.Star); - starsBlue = GetNewParticleEffect(numstars, new SColorF(0.149f, 0.415f, 0.819f, 1), new SRectF(logo.Rect.X, logo.Rect.Y, logo.Rect.W, logo.Rect.H, -1), _TexPerfectNoteStar, 35, EParticleType.Star); + SRectF partRect = new SRectF(logo.Rect.X, logo.Rect.Y, logo.Rect.W, logo.Rect.H, -1); + starsRed = _GetStarParticles(numstars, true, partRect, true); + starsBlue = _GetStarParticles(numstars, false, partRect, true); //Credit names _CreditNames = new List(); - CCreditName CreditEntry = new CCreditName(); - //brunzel - CCreditName CreditEntryBrunzel = new CCreditName(); - CreditEntryBrunzel.image = GetNewStatic(_TexNameBrunzel, new SColorF(1, 1, 1, 1), new SRectF(-450, 580, 400, 120, -4)); - CreditEntryBrunzel.particleRect = new SRectF(CreditEntryBrunzel.image.Rect.X + 342, CreditEntryBrunzel.image.Rect.Y + 4, 30, 30, -5); - CreditEntryBrunzel.particle = GetNewParticleEffect(8, new SColorF(1, 0, 0, 1), CreditEntryBrunzel.particleRect, _TexPerfectNoteStar, 35, EParticleType.Star); - CreditEntryBrunzel.active = true; - CreditEntryBrunzel.direction = EDirection.Left; - _CreditNames.Add(CreditEntryBrunzel); - - //Darkice - CCreditName CreditEntryDarkice = new CCreditName(); - CreditEntryDarkice.image = GetNewStatic(_TexNameDarkice, new SColorF(1, 1, 1, 1), new SRectF(CSettings.iRenderW, 580, 400, 120, -4)); - CreditEntryDarkice.particleRect = new SRectF(CreditEntryDarkice.image.Rect.X + 242, CreditEntryDarkice.image.Rect.Y + 23, 30, 30, -5); - CreditEntryDarkice.particle = GetNewParticleEffect(8, new SColorF(0.149f, 0.415f, 0.819f, 1), CreditEntryDarkice.particleRect, _TexPerfectNoteStar, 35, EParticleType.Star); - CreditEntryDarkice.active = true; - CreditEntryDarkice.direction = EDirection.Right; - _CreditNames.Add(CreditEntryDarkice); - - //flokuep - CCreditName CreditEntryFlokuep = new CCreditName(); - CreditEntryFlokuep.image = GetNewStatic(_TexNameFlokuep, new SColorF(1, 1, 1, 1), new SRectF(-450, 580, 400, 120, -4)); - CreditEntryFlokuep.particleRect = new SRectF(CreditEntryFlokuep.image.Rect.X + 141, CreditEntryFlokuep.image.Rect.Y - 2, 30, 30, -5); - CreditEntryFlokuep.particle = GetNewParticleEffect(8, new SColorF(1, 0, 0, 1), CreditEntryFlokuep.particleRect, _TexPerfectNoteStar, 35, EParticleType.Star); - CreditEntryFlokuep.active = true; - CreditEntryFlokuep.direction = EDirection.Left; - _CreditNames.Add(CreditEntryFlokuep); - - //bohning - CCreditName CreditEntryBohning = new CCreditName(); - CreditEntryBohning.image = GetNewStatic(_TexNameBohning, new SColorF(1, 1, 1, 1), new SRectF(CSettings.iRenderW, 580, 350, 110, -4)); - CreditEntryBohning.particleRect = new SRectF(CreditEntryBohning.image.Rect.X + 172, CreditEntryBohning.image.Rect.Y + 16, 10, 10, -5); - CreditEntryBohning.particle = GetNewParticleEffect(4, new SColorF(0.149f, 0.415f, 0.819f, 1), CreditEntryBohning.particleRect, _TexPerfectNoteStar, 25, EParticleType.Star); - CreditEntryBohning.active = true; - CreditEntryBohning.direction = EDirection.Right; - _CreditNames.Add(CreditEntryBohning); - - //mesand - CCreditName CreditEntryMesand = new CCreditName(); - CreditEntryMesand.image = GetNewStatic(_TexNameMesand, new SColorF(1, 1, 1, 1), new SRectF(-450, 580, 350, 110, -4)); - CreditEntryMesand.particleRect = new SRectF(CreditEntryMesand.image.Rect.X + 240, CreditEntryMesand.image.Rect.Y - 2, 10, 10, -5); - CreditEntryMesand.particle = GetNewParticleEffect(4, new SColorF(1, 0, 0, 1), CreditEntryMesand.particleRect, _TexPerfectNoteStar, 25, EParticleType.Star); - CreditEntryMesand.active = true; - CreditEntryMesand.direction = EDirection.Left; - _CreditNames.Add(CreditEntryMesand); - - //babene03 - CCreditName CreditEntryBabene03 = new CCreditName(); - CreditEntryBabene03.image = GetNewStatic(_TexNameBabene03, new SColorF(1, 1, 1, 1), new SRectF(CSettings.iRenderW, 580, 350, 110, -4)); - CreditEntryBabene03.particleRect = new SRectF(CreditEntryBabene03.image.Rect.X + 7, CreditEntryBabene03.image.Rect.Y + 4, 10, 10, -5); - CreditEntryBabene03.particle = GetNewParticleEffect(4, new SColorF(0.149f, 0.415f, 0.819f, 1), CreditEntryBabene03.particleRect, _TexPerfectNoteStar, 25, EParticleType.Star); - CreditEntryBabene03.active = true; - CreditEntryBabene03.direction = EDirection.Right; - _CreditNames.Add(CreditEntryBabene03); - - //pantero - CCreditName CreditEntrypantero = new CCreditName(); - CreditEntrypantero.image = GetNewStatic(_TexNamePantero, new SColorF(1, 1, 1, 1), new SRectF(-450, 580, 350, 110, -4)); - CreditEntrypantero.particleRect = new SRectF(CreditEntrypantero.image.Rect.X + 140, CreditEntrypantero.image.Rect.Y + 15, 10, 10, -5); - CreditEntrypantero.particle = GetNewParticleEffect(4, new SColorF(1, 0, 0, 1), CreditEntrypantero.particleRect, _TexPerfectNoteStar, 25, EParticleType.Star); - CreditEntrypantero.active = true; - CreditEntrypantero.direction = EDirection.Left; - _CreditNames.Add(CreditEntrypantero); - - //Pinky007 - CCreditName CreditEntryPinky007 = new CCreditName(); - CreditEntryPinky007.image = GetNewStatic(_TexNamePinky007, new SColorF(1, 1, 1, 1), new SRectF(CSettings.iRenderW, 580, 350, 110, -4)); - CreditEntryPinky007.particleRect = new SRectF(CreditEntryPinky007.image.Rect.X + 42, CreditEntryPinky007.image.Rect.Y + 15, 10, 10, -5); - CreditEntryPinky007.particle = GetNewParticleEffect(4, new SColorF(0.149f, 0.415f, 0.819f, 1), CreditEntryPinky007.particleRect, _TexPerfectNoteStar, 25, EParticleType.Star); - CreditEntryPinky007.active = true; - CreditEntryPinky007.direction = EDirection.Right; - _CreditNames.Add(CreditEntryPinky007); + _AddNewCreditName(_TexNameBrunzel, 502, 29, true); + _AddNewCreditName(_TexNameDarkice, 360, 55, true); + _AddNewCreditName(_TexNameFlokuep, 214, 14, true); + _AddNewCreditName(_TexNameBohning, 383, 54, false); + _AddNewCreditName(_TexNameMesand, 525, 13, false); + _AddNewCreditName(_TexNameBabene03, 33, 26, false); + _AddNewCreditName(_TexNamePantero, 311, 45, false); + _AddNewCreditName(_TexNamePinky007, 113, 50, false); TextTimer.Reset(); LogoTimer.Reset(); @@ -348,13 +358,9 @@ namespace Vocaluxe.Screens logo.Draw(); //Draw credit-entries - for (int i = 0; i < _CreditNames.Count; i++) + foreach (CCreditName cn in _CreditNames) { - if (_CreditNames[i].active) - { - _CreditNames[i].image.Draw(); - _CreditNames[i].particle.Draw(); - } + cn.Draw(); } //Draw Text @@ -376,9 +382,8 @@ namespace Vocaluxe.Screens active = true; logo.Rect.Y = -270 + (270f / 3000f) * LogoTimer.ElapsedMilliseconds; - SRectF rect = new SRectF(logo.Rect.X, logo.Rect.Y, logo.Rect.W, logo.Rect.H, -1); - starsRed.Rect = rect; - starsBlue.Rect = rect; + starsRed.Rect.Y = logo.Rect.Y; + starsBlue.Rect.Y = logo.Rect.Y; if (LogoTimer.ElapsedMilliseconds >= 2000 && !CreditsTimer.IsRunning) { CreditsTimer.Start(); @@ -396,40 +401,34 @@ namespace Vocaluxe.Screens for (int i = 0; i < _CreditNames.Count; i++) { - if (_CreditNames[i].active) + if (_CreditNames[i].Active) { - switch (_CreditNames[i].direction) + switch (_CreditNames[i].Direction) { - case EDirection.Left: + case EDirection.Right: if (i * 4000f <= CreditsTimer.ElapsedMilliseconds) { - float xOld = _CreditNames[i].image.Rect.X; - _CreditNames[i].image.Rect.X = -450 + (((CSettings.iRenderW - _CreditNames[i].image.Rect.W) / 2)/3000f) * (CreditsTimer.ElapsedMilliseconds-(i*4000f)); - _CreditNames[i].particleRect.X += (_CreditNames[i].image.Rect.X - xOld); - _CreditNames[i].particle.Rect = _CreditNames[i].particleRect; + _CreditNames[i].X = -450 + (((CSettings.iRenderW - _CreditNames[i].W) / 2) / 3000f) * (CreditsTimer.ElapsedMilliseconds - (i * 4000f)); //Check if name is in middle of screen and should go up - if (_CreditNames[i].image.Rect.X >= (CSettings.iRenderW - _CreditNames[i].image.Rect.W) / 2) + if (_CreditNames[i].X >= (CSettings.iRenderW - _CreditNames[i].W) / 2) { - _CreditNames[i].direction = EDirection.Up; + _CreditNames[i].Direction = EDirection.Up; _CreditNames[i].StartTimeUp = CreditsTimer.ElapsedMilliseconds; } } break; - case EDirection.Right: + case EDirection.Left: if (i * 4000f <= CreditsTimer.ElapsedMilliseconds) { - float xOld = _CreditNames[i].image.Rect.X; - _CreditNames[i].image.Rect.X = CSettings.iRenderW - (((CSettings.iRenderW - _CreditNames[i].image.Rect.W) / 2) / 3000f) * (CreditsTimer.ElapsedMilliseconds - (i * 4000f)); - _CreditNames[i].particleRect.X -= (xOld - _CreditNames[i].image.Rect.X); - _CreditNames[i].particle.Rect = _CreditNames[i].particleRect; + _CreditNames[i].X = CSettings.iRenderW - (((CSettings.iRenderW - _CreditNames[i].W) / 2) / 3000f) * (CreditsTimer.ElapsedMilliseconds - (i * 4000f)); //Check if name is in middle of screen and should go up - if (_CreditNames[i].image.Rect.X <= (CSettings.iRenderW - _CreditNames[i].image.Rect.W) / 2 ) + if (_CreditNames[i].X <= (CSettings.iRenderW - _CreditNames[i].W) / 2) { - _CreditNames[i].direction = EDirection.Up; + _CreditNames[i].Direction = EDirection.Up; _CreditNames[i].StartTimeUp = CreditsTimer.ElapsedMilliseconds; } @@ -437,31 +436,12 @@ namespace Vocaluxe.Screens break; case EDirection.Up: - float yOld = _CreditNames[i].image.Rect.Y; - _CreditNames[i].image.Rect.Y = 580 - (430f / 3000f) * (CreditsTimer.ElapsedMilliseconds - _CreditNames[i].StartTimeUp); - _CreditNames[i].particleRect.Y -= (yOld - _CreditNames[i].image.Rect.Y); - _CreditNames[i].particle.Rect = _CreditNames[i].particleRect; - - //Fade names out - if (_CreditNames[i].image.Rect.Y <= 350f) - { - //Catch some bad alpha-values - float alpha = ((250 - _CreditNames[i].image.Rect.Y) / 20); - if(alpha > 1) - { - alpha = 1; - } - else if(alpha < 0) - { - alpha = 0; - } - _CreditNames[i].image.Alpha = 1 - alpha; - } + _CreditNames[i].Y = 580 - (430f / 3000f) * (CreditsTimer.ElapsedMilliseconds - _CreditNames[i].StartTimeUp); //Set name inactive - if (_CreditNames[i].image.Rect.Y <= 150f) + if (_CreditNames[i].Y <= 160f) { - _CreditNames[i].active = false; + _CreditNames[i].Active = false; //Check, if last name is set to false if (i == _CreditNames.Count - 1) { @@ -474,6 +454,22 @@ namespace Vocaluxe.Screens active = true; } } + else if (_CreditNames[i].Y <= 360f) + { + //Fade names out + float alpha = ((360 - _CreditNames[i].Y) / 200); + //Catch some bad alpha-values + if (alpha > 1) + { + alpha = 1; + } + else if (alpha < 0) + { + alpha = 0; + } + _CreditNames[i].Alpha = 1 - alpha; + } + break; } } @@ -482,14 +478,7 @@ namespace Vocaluxe.Screens if (TextTimer.IsRunning) { - if (TextTimer.ElapsedMilliseconds > 600000) - { - active = false; - } - else - { - active = true; - } + active = TextTimer.ElapsedMilliseconds <= 60000; } return active; diff --git a/Vocaluxe/Screens/CScreenHighscore.cs b/Vocaluxe/Screens/CScreenHighscore.cs index 33a84e39..e625c468 100644 --- a/Vocaluxe/Screens/CScreenHighscore.cs +++ b/Vocaluxe/Screens/CScreenHighscore.cs @@ -13,7 +13,7 @@ namespace Vocaluxe.Screens class CScreenHighscore : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 2; + protected override int _ScreenVersion { get { return 2; } } private const int NumEntrys = 10; private const string TextSongName = "TextSongName"; @@ -34,13 +34,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "ScreenHighscore"; - _ScreenVersion = ScreenVersion; - List texts = new List(); texts.Add(TextSongName); texts.Add(TextSongMode); diff --git a/Vocaluxe/Screens/CScreenLoad.cs b/Vocaluxe/Screens/CScreenLoad.cs index 8569ab59..c0d81fdd 100644 --- a/Vocaluxe/Screens/CScreenLoad.cs +++ b/Vocaluxe/Screens/CScreenLoad.cs @@ -17,7 +17,7 @@ namespace Vocaluxe.Screens class CScreenLoad: CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } const float WaitTime = 0.5f; //wait time before starting first video const string TextStatus = "TextStatus"; @@ -38,12 +38,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "ScreenLoad"; - _ScreenVersion = ScreenVersion; _ThemeTexts = new string[] { TextStatus }; _Intros = new VideoPlayer[IntroVideo.Length]; for (int i = 0; i < _Intros.Length; i++) diff --git a/Vocaluxe/Screens/CScreenMain.cs b/Vocaluxe/Screens/CScreenMain.cs index 4278b878..943b9470 100644 --- a/Vocaluxe/Screens/CScreenMain.cs +++ b/Vocaluxe/Screens/CScreenMain.cs @@ -16,7 +16,7 @@ namespace Vocaluxe.Screens class CScreenMain: CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } const string ButtonSing = "ButtonSing"; const string ButtonParty = "ButtonParty"; @@ -30,12 +30,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "ScreenMain"; - _ScreenVersion = ScreenVersion; _ThemeStatics = new string[] { "StaticMenuBar" }; _ThemeButtons = new string[] { ButtonSing, ButtonParty, ButtonOptions, ButtonProfiles, ButtonExit }; } diff --git a/Vocaluxe/Screens/CScreenNames.cs b/Vocaluxe/Screens/CScreenNames.cs index 269cb060..9baa0f89 100644 --- a/Vocaluxe/Screens/CScreenNames.cs +++ b/Vocaluxe/Screens/CScreenNames.cs @@ -12,7 +12,7 @@ namespace Vocaluxe.Screens class CScreenNames : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 3; + protected override int _ScreenVersion { get { return 3; } } private CStatic chooseAvatarStatic; private int OldMouseX; @@ -45,13 +45,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "ScreenNames"; - _ScreenVersion = ScreenVersion; - List statics = new List(); foreach(string text in StaticPlayer){ statics.Add(text); diff --git a/Vocaluxe/Screens/CScreenOptions.cs b/Vocaluxe/Screens/CScreenOptions.cs index addb4a58..69a4f5a3 100644 --- a/Vocaluxe/Screens/CScreenOptions.cs +++ b/Vocaluxe/Screens/CScreenOptions.cs @@ -12,7 +12,7 @@ namespace Vocaluxe.Screens class CScreenOptions : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } private const string ButtonOptionsGame = "ButtonOptionsGame"; private const string ButtonOptionsSound = "ButtonOptionsSound"; @@ -25,12 +25,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "ScreenOptions"; - _ScreenVersion = ScreenVersion; _ThemeButtons = new string[] { ButtonOptionsGame, ButtonOptionsSound, ButtonOptionsRecord, ButtonOptionsVideo, ButtonOptionsLyrics, ButtonOptionsTheme }; } diff --git a/Vocaluxe/Screens/CScreenOptionsGame.cs b/Vocaluxe/Screens/CScreenOptionsGame.cs index 80c4ee3a..b3799fc7 100644 --- a/Vocaluxe/Screens/CScreenOptionsGame.cs +++ b/Vocaluxe/Screens/CScreenOptionsGame.cs @@ -13,7 +13,7 @@ namespace Vocaluxe.Screens class CScreenOptionsGame : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } private const string SelectSlideLanguage = "SelectSlideLanguage"; private const string SelectSlideDebugLevel = "SelectSlideDebugLevel"; @@ -28,12 +28,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "ScreenOptionsGame"; - _ScreenVersion = ScreenVersion; _ThemeButtons = new string[] { ButtonExit }; _ThemeSelectSlides = new string[] { SelectSlideLanguage, SelectSlideDebugLevel, SelectSlideSongMenu, SelectSlideSongSorting, SelectSlideTabs, SelectSlideTimerMode }; } diff --git a/Vocaluxe/Screens/CScreenOptionsLyrics.cs b/Vocaluxe/Screens/CScreenOptionsLyrics.cs index 81257172..38081910 100644 --- a/Vocaluxe/Screens/CScreenOptionsLyrics.cs +++ b/Vocaluxe/Screens/CScreenOptionsLyrics.cs @@ -11,7 +11,7 @@ namespace Vocaluxe.Screens class CScreenOptionsLyrics : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } private const string SelectSlideLyricStyle = "SelectSlideLyricStyle"; private const string SelectSlideLyricsOnTop = "SelectSlideLyricsOnTop"; @@ -22,13 +22,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "ScreenOptionsLyrics"; - _ScreenVersion = ScreenVersion; - _ThemeButtons = new string[] { ButtonExit }; _ThemeSelectSlides = new string[] { SelectSlideLyricStyle, SelectSlideLyricsOnTop }; } diff --git a/Vocaluxe/Screens/CScreenOptionsRecord.cs b/Vocaluxe/Screens/CScreenOptionsRecord.cs index 8a8bfca9..96ec3a0b 100644 --- a/Vocaluxe/Screens/CScreenOptionsRecord.cs +++ b/Vocaluxe/Screens/CScreenOptionsRecord.cs @@ -21,7 +21,7 @@ namespace Vocaluxe.Screens class CScreenOptionsRecord : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 2; + protected override int _ScreenVersion { get { return 2; } } private const float MaxDelayTime = 1f; private const string SelectSlideRecordDevices = "SelectSlideRecordDevices"; @@ -58,13 +58,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "ScreenOptionsRecord"; - _ScreenVersion = ScreenVersion; - List values = new List(); values.Add(StaticWarning); values.AddRange(StaticEnergyChannel); diff --git a/Vocaluxe/Screens/CScreenOptionsSound.cs b/Vocaluxe/Screens/CScreenOptionsSound.cs index 414bcbd1..0c86e642 100644 --- a/Vocaluxe/Screens/CScreenOptionsSound.cs +++ b/Vocaluxe/Screens/CScreenOptionsSound.cs @@ -12,7 +12,7 @@ namespace Vocaluxe.Screens class CScreenOptionsSound : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 3; + protected override int _ScreenVersion { get { return 3; } } private const string SelectSlideBackgroundMusic = "SelectSlideBackgroundMusic"; private const string SelectSlideBackgroundMusicVolume = "SelectSlideBackgroundMusicVolume"; @@ -29,13 +29,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "ScreenOptionsSound"; - _ScreenVersion = ScreenVersion; - _ThemeButtons = new string[] { ButtonExit }; _ThemeSelectSlides = new string[] { SelectSlideBackgroundMusic, SelectSlideBackgroundMusicVolume, SelectSlideBackgroundMusicSource, SelectSlidePreviewMusicVolume, SelectSlideGameMusicVolume }; } diff --git a/Vocaluxe/Screens/CScreenOptionsTheme.cs b/Vocaluxe/Screens/CScreenOptionsTheme.cs index d696a646..76de3983 100644 --- a/Vocaluxe/Screens/CScreenOptionsTheme.cs +++ b/Vocaluxe/Screens/CScreenOptionsTheme.cs @@ -12,7 +12,7 @@ namespace Vocaluxe.Screens class CScreenOptionsTheme : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 3; + protected override int _ScreenVersion { get { return 3; } } private const string SelectSlideTheme = "SelectSlideTheme"; private const string SelectSlideSkin = "SelectSlideSkin"; @@ -35,12 +35,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "ScreenOptionsTheme"; - _ScreenVersion = ScreenVersion; _ThemeButtons = new string[] { ButtonExit }; _ThemeSelectSlides = new string[] { SelectSlideTheme, diff --git a/Vocaluxe/Screens/CScreenOptionsVideo.cs b/Vocaluxe/Screens/CScreenOptionsVideo.cs index 9744e8cf..ff9e3f5a 100644 --- a/Vocaluxe/Screens/CScreenOptionsVideo.cs +++ b/Vocaluxe/Screens/CScreenOptionsVideo.cs @@ -13,7 +13,7 @@ namespace Vocaluxe.Screens class CScreenOptionsVideo : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 3; + protected override int _ScreenVersion { get { return 3; } } private const string SelectSlideVideoBackgrounds = "SelectSlideVideoBackgrounds"; private const string SelectSlideVideoPreview = "SelectSlideVideoPreview"; @@ -35,13 +35,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "ScreenOptionsVideo"; - _ScreenVersion = ScreenVersion; - _ThemeStatics = new string[] { StaticWebcamOutput }; _ThemeButtons = new string[] { ButtonExit }; _ThemeSelectSlides = new string[] { SelectSlideVideoBackgrounds, SelectSlideVideoPreview, SelectSlideVideosInSongs, SelectSlideVideosToBackground, SelectSlideWebcamDevices, SelectSlideWebcamCapabilities }; diff --git a/Vocaluxe/Screens/CScreenParty.cs b/Vocaluxe/Screens/CScreenParty.cs index 55d2a17c..c73726a5 100644 --- a/Vocaluxe/Screens/CScreenParty.cs +++ b/Vocaluxe/Screens/CScreenParty.cs @@ -11,7 +11,7 @@ namespace Vocaluxe.Screens class CScreenParty : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } const string TextDescription = "TextDescription"; const string TextTargetAudience = "TextTargetAudience"; @@ -30,12 +30,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "ScreenParty"; - _ScreenVersion = ScreenVersion; _ThemeTexts = new string[] { TextDescription, TextTargetAudience, TextNumTeams, TextNumPlayers, TextAuthor, TextVersion, TextError }; _ThemeButtons = new string[] { ButtonStart, ButtonExit }; _ThemeSelectSlides = new string[] { SelectSlideModes }; @@ -134,11 +132,6 @@ namespace Vocaluxe.Screens return true; } - public override void OnClose() - { - base.OnClose(); - } - private void UpdateSelection() { if (_PartyModeInfos.Count == 0) diff --git a/Vocaluxe/Screens/CScreenProfiles.cs b/Vocaluxe/Screens/CScreenProfiles.cs index e030efee..717e33af 100644 --- a/Vocaluxe/Screens/CScreenProfiles.cs +++ b/Vocaluxe/Screens/CScreenProfiles.cs @@ -20,7 +20,7 @@ namespace Vocaluxe.Screens class CScreenProfiles : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 2; + protected override int _ScreenVersion { get { return 2; } } private const string SelectSlideProfiles = "SelectSlideProfiles"; private const string SelectSlideDifficulty = "SelectSlideDifficulty"; @@ -48,12 +48,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "ScreenProfiles"; - _ScreenVersion = ScreenVersion; _ThemeButtons = new string[] { ButtonPlayerName, ButtonExit, ButtonSave, ButtonNew, ButtonDelete, ButtonWebcam, ButtonSaveSnapshot, ButtonDiscardSnapshot, ButtonTakeSnapshot }; _ThemeSelectSlides = new string[] { SelectSlideProfiles, SelectSlideDifficulty, SelectSlideAvatars, SelectSlideGuestProfile, SelectSlideActive }; _ThemeStatics = new string[] { StaticAvatar }; diff --git a/Vocaluxe/Screens/CScreenScore.cs b/Vocaluxe/Screens/CScreenScore.cs index 2ab40aec..cabb6bcf 100644 --- a/Vocaluxe/Screens/CScreenScore.cs +++ b/Vocaluxe/Screens/CScreenScore.cs @@ -15,7 +15,7 @@ namespace Vocaluxe.Screens class CScreenScore : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 3; + protected override int _ScreenVersion { get { return 3; } } private const string TextSong = "TextSong"; @@ -40,13 +40,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "ScreenScore"; - _ScreenVersion = ScreenVersion; - List texts = new List(); texts.Add(TextSong); diff --git a/Vocaluxe/Screens/CScreenSing.cs b/Vocaluxe/Screens/CScreenSing.cs index 626b8c3b..063a10c6 100644 --- a/Vocaluxe/Screens/CScreenSing.cs +++ b/Vocaluxe/Screens/CScreenSing.cs @@ -17,7 +17,7 @@ namespace Vocaluxe.Screens class CScreenSing : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 6; + protected override int _ScreenVersion { get { return 6; } } struct TimeRect { @@ -99,13 +99,10 @@ namespace Vocaluxe.Screens { } - protected override void Init() + public override void Init() { base.Init(); - _ThemeName = "ScreenSing"; - _ScreenVersion = ScreenVersion; - List texts = new List(); texts.Add(TextSongName); texts.Add(TextTime); diff --git a/Vocaluxe/Screens/CScreenSong.cs b/Vocaluxe/Screens/CScreenSong.cs index ee58cd9d..b954441b 100644 --- a/Vocaluxe/Screens/CScreenSong.cs +++ b/Vocaluxe/Screens/CScreenSong.cs @@ -26,7 +26,7 @@ namespace Vocaluxe.Screens } // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 5; + protected override int _ScreenVersion { get { return 5; } } private const string TextCategory = "TextCategory"; private const string TextSelection = "TextSelection"; @@ -80,7 +80,7 @@ namespace Vocaluxe.Screens _AvailableGameModes = new List(); } - protected override void Init() + public override void Init() { base.Init(); @@ -117,8 +117,6 @@ namespace Vocaluxe.Screens tlist.Add(TextSearchBar); tlist.Add(TextOptionsTitle); - _ThemeName = "ScreenSong"; - _ScreenVersion = ScreenVersion; _ThemeStatics = new string[] { StaticSearchBar, StaticOptionsBG }; _ThemeTexts = tlist.ToArray(); _ThemeButtons = blist.ToArray(); diff --git a/Vocaluxe/Screens/CScreenTest.cs b/Vocaluxe/Screens/CScreenTest.cs index a203518e..f4523d71 100644 --- a/Vocaluxe/Screens/CScreenTest.cs +++ b/Vocaluxe/Screens/CScreenTest.cs @@ -13,7 +13,7 @@ namespace Vocaluxe.Screens class CScreenTest : CMenu { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } private int _TestMusic = -1; @@ -21,14 +21,6 @@ namespace Vocaluxe.Screens { } - protected override void Init() - { - base.Init(); - - _ThemeName = "ScreenTest"; - _ScreenVersion = ScreenVersion; - } - public override bool HandleInput(KeyEvent KeyEvent) { if (KeyEvent.KeyPressed && !Char.IsControl(KeyEvent.Unicode)) @@ -90,12 +82,6 @@ namespace Vocaluxe.Screens return true; } - public override void OnShow() - { - base.OnShow(); - - } - public override bool Draw() { return base.Draw(); diff --git a/VocaluxeLib/Menu/CMenu.cs b/VocaluxeLib/Menu/CMenu.cs index e76db2b6..b925aabb 100644 --- a/VocaluxeLib/Menu/CMenu.cs +++ b/VocaluxeLib/Menu/CMenu.cs @@ -20,79 +20,6 @@ namespace Vocaluxe.Menu public abstract class CMenu : IMenu { - public class COrderedDictionaryLite : IEnumerable - { - private List _Items; - private Dictionary _htIndex; - private CMenu _Parent; - - public COrderedDictionaryLite(CMenu Parent) - { - _Items = new List(); - _htIndex = new Dictionary(); - _Parent = Parent; - } - - public COrderedDictionaryLite(COrderedDictionaryLite Dict) - { - _Items = new List(Dict._Items); - _htIndex = new Dictionary(Dict._htIndex); - _Parent = Dict._Parent; - } - - public T this[int index] - { - get { return _Items[index]; } - set { _Items[index] = value; } - } - - public T this[string key] - { - get - { - try - { - return _Items[_htIndex[key]]; - } - catch (Exception) - { - CBase.Log.LogError("Can't find " + typeof(T).Name.Substring(1) + " Element \"" + key + "\" in Screen " + _Parent._ThemeName); - throw; - } - } - set - { - if (!_htIndex.ContainsKey(key)) - { - _htIndex.Add(key, _Items.Count); - _Items.Add(value); - } - else - _Items[_htIndex[key]] = value; - } - } - - public int Add(T item, String key = null) - { - if (key != null) - _htIndex.Add(key, _Items.Count); - _Items.Add(item); - return _Items.Count - 1; - } - - public IEnumerator GetEnumerator() - { - return _Items.GetEnumerator(); - } - - IEnumerator IEnumerable.GetEnumerator() - { - return (IEnumerator)GetEnumerator(); - } - } - - - private List _Interactions; private int _Selection = 0; private string _ThemePath = String.Empty; @@ -121,8 +48,13 @@ namespace Vocaluxe.Menu protected bool _Active; - protected int _ScreenVersion; - protected string _ThemeName; + protected abstract int _ScreenVersion { get; } + private string _ThemeName; + public string ThemeName + { + get { return _ThemeName; } + } + protected string[] _ThemeBackgrounds; protected string[] _ThemeStatics; protected string[] _ThemeTexts; @@ -138,17 +70,11 @@ namespace Vocaluxe.Menu protected string[] _ThemeScreenSettings; protected SRectF _ScreenArea; - public SRectF ScreenArea { get { return _ScreenArea; } } - public SRectF GetScreenArea() - { - return _ScreenArea; - } - public int ThemeScreenVersion { get { return _ScreenVersion; } @@ -158,13 +84,12 @@ namespace Vocaluxe.Menu { } - public void Initialize() + public virtual void Init() { - Init(); - } + _ThemeName = this.GetType().Name; + if(_ThemeName[0]=='C' && Char.IsUpper(_ThemeName[1])) + _ThemeName = _ThemeName.Remove(0, 1); - protected virtual void Init() - { _Interactions = new List(); _Selection = 0; @@ -191,7 +116,6 @@ namespace Vocaluxe.Menu _Active = false; _ScreenArea = new SRectF(0f, 0f, CBase.Settings.GetRenderW(), CBase.Settings.GetRenderH(), 0f); - _ThemeName = String.Empty; _ThemeBackgrounds = null; _ThemeStatics = null; _ThemeTexts = null; @@ -223,13 +147,13 @@ namespace Vocaluxe.Menu foreach (string elName in Elements) { T Element = (T)Activator.CreateInstance(typeof(T), _PartyModeID); - if (Element.LoadTheme("//root/" + _ThemeName, elName, xmlReader, SkinIndex)) + if (Element.LoadTheme("//root/" + ThemeName, elName, xmlReader, SkinIndex)) { MAddElement(Element, elName); } else { - CBase.Log.LogError("Can't load " + typeof(T).Name.Substring(1) + " \"" + elName + "\" in screen " + _ThemeName); + CBase.Log.LogError("Can't load " + typeof(T).Name.Substring(1) + " \"" + elName + "\" in screen " + ThemeName); } } } @@ -237,7 +161,7 @@ namespace Vocaluxe.Menu public virtual void LoadTheme(string XmlPath) { - string file = Path.Combine(XmlPath, _ThemeName + ".xml"); + string file = Path.Combine(XmlPath, ThemeName + ".xml"); CXMLReader xmlReader = CXMLReader.OpenFile(file); if (xmlReader == null) @@ -279,14 +203,14 @@ namespace Vocaluxe.Menu settings.Encoding = Encoding.UTF8; settings.ConformanceLevel = ConformanceLevel.Document; - string file = Path.Combine(_ThemePath, _ThemeName + ".xml"); + string file = Path.Combine(_ThemePath, ThemeName + ".xml"); using (XmlWriter writer = XmlWriter.Create(file, settings)) { writer.WriteStartDocument(); writer.WriteStartElement("root"); - writer.WriteStartElement(_ThemeName); + writer.WriteStartElement(ThemeName); // Screen Version writer.WriteElementString("ScreenVersion", _ScreenVersion.ToString()); @@ -2139,13 +2063,13 @@ namespace Vocaluxe.Menu private bool CheckVersion(int Version, CXMLReader xmlReader) { int version = 0; - xmlReader.TryGetIntValue("//root/" + _ThemeName + "/ScreenVersion", ref version); + xmlReader.TryGetIntValue("//root/" + ThemeName + "/ScreenVersion", ref version); if (version == Version) return true; else { - string msg = "Can't load screen file of screen \"" + _ThemeName + "\", "; + string msg = "Can't load screen file of screen \"" + ThemeName + "\", "; if (version < Version) msg += "the file ist outdated! "; else @@ -2164,7 +2088,7 @@ namespace Vocaluxe.Menu // Backgrounds CBackground background = new CBackground(_PartyModeID); int i = 1; - while (background.LoadTheme("//root/" + _ThemeName, "Background" + i.ToString(), xmlReader, SkinIndex)) + while (background.LoadTheme("//root/" + ThemeName, "Background" + i.ToString(), xmlReader, SkinIndex)) { AddBackground(background); background = new CBackground(_PartyModeID); @@ -2174,7 +2098,7 @@ namespace Vocaluxe.Menu // Statics CStatic stat = new CStatic(_PartyModeID); i = 1; - while (stat.LoadTheme("//root/" + _ThemeName, "Static" + i.ToString(), xmlReader, SkinIndex)) + while (stat.LoadTheme("//root/" + ThemeName, "Static" + i.ToString(), xmlReader, SkinIndex)) { AddStatic(stat); stat = new CStatic(_PartyModeID); @@ -2184,7 +2108,7 @@ namespace Vocaluxe.Menu // Texts CText text = new CText(_PartyModeID); i = 1; - while (text.LoadTheme("//root/" + _ThemeName, "Text" + i.ToString(), xmlReader, SkinIndex)) + while (text.LoadTheme("//root/" + ThemeName, "Text" + i.ToString(), xmlReader, SkinIndex)) { AddText(text); text = new CText(_PartyModeID); @@ -2194,7 +2118,7 @@ namespace Vocaluxe.Menu // ParticleEffects CParticleEffect partef = new CParticleEffect(_PartyModeID); i = 1; - while (partef.LoadTheme("//root/" + _ThemeName, "ParticleEffect" + i.ToString(), xmlReader, SkinIndex)) + while (partef.LoadTheme("//root/" + ThemeName, "ParticleEffect" + i.ToString(), xmlReader, SkinIndex)) { AddParticleEffect(partef); partef = new CParticleEffect(_PartyModeID); diff --git a/VocaluxeLib/Menu/COrderedDictionaryLite.cs b/VocaluxeLib/Menu/COrderedDictionaryLite.cs new file mode 100644 index 00000000..444fa13e --- /dev/null +++ b/VocaluxeLib/Menu/COrderedDictionaryLite.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Text; + +namespace Vocaluxe.Menu +{ + public class COrderedDictionaryLite : IEnumerable + { + private List _Items; + private Dictionary _htIndex; + private CMenu _Parent; + + public COrderedDictionaryLite(CMenu Parent) + { + _Items = new List(); + _htIndex = new Dictionary(); + _Parent = Parent; + } + + public COrderedDictionaryLite(COrderedDictionaryLite Dict) + { + _Items = new List(Dict._Items); + _htIndex = new Dictionary(Dict._htIndex); + _Parent = Dict._Parent; + } + + public T this[int index] + { + get { return _Items[index]; } + set { _Items[index] = value; } + } + + public T this[string key] + { + get + { + try + { + return _Items[_htIndex[key]]; + } + catch (Exception) + { + CBase.Log.LogError("Can't find " + typeof(T).Name.Substring(1) + " Element \"" + key + "\" in Screen " + _Parent.ThemeName); + throw; + } + } + set + { + if (!_htIndex.ContainsKey(key)) + { + _htIndex.Add(key, _Items.Count); + _Items.Add(value); + } + else + _Items[_htIndex[key]] = value; + } + } + + public int Add(T item, String key = null) + { + if (key != null) + _htIndex.Add(key, _Items.Count); + _Items.Add(item); + return _Items.Count - 1; + } + + public IEnumerator GetEnumerator() + { + return _Items.GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + } +} diff --git a/VocaluxeLib/Menu/IMenu.cs b/VocaluxeLib/Menu/IMenu.cs index cb64b806..81b41b60 100644 --- a/VocaluxeLib/Menu/IMenu.cs +++ b/VocaluxeLib/Menu/IMenu.cs @@ -12,7 +12,7 @@ namespace Vocaluxe.Menu { public interface IMenu { - void Initialize(); + void Init(); void LoadTheme(string XmlPath); void SaveTheme(); @@ -32,7 +32,7 @@ namespace Vocaluxe.Menu void OnClose(); bool Draw(); - SRectF GetScreenArea(); + SRectF ScreenArea { get; } void NextInteraction(); void PrevInteraction(); diff --git a/VocaluxeLib/PartyModes/CScreenPartyDummy.cs b/VocaluxeLib/PartyModes/CScreenPartyDummy.cs index 47b1d37a..771ff1bd 100644 --- a/VocaluxeLib/PartyModes/CScreenPartyDummy.cs +++ b/VocaluxeLib/PartyModes/CScreenPartyDummy.cs @@ -10,21 +10,13 @@ namespace Vocaluxe.PartyModes public class CScreenPartyDummy : CMenuParty { // Version number for theme files. Increment it, if you've changed something on the theme files! - const int ScreenVersion = 1; + protected override int _ScreenVersion { get { return 1; } } private CText Warning; public CScreenPartyDummy() { } - protected override void Init() - { - base.Init(); - - _ThemeName = "ScreenPartyDummy"; - _ScreenVersion = ScreenVersion; - } - public override void LoadTheme(string XmlPath) { Warning = GetNewText(); @@ -93,11 +85,6 @@ namespace Vocaluxe.PartyModes return true; } - public override void OnShow() - { - base.OnShow(); - } - public override bool UpdateGame() { return true; @@ -109,9 +96,5 @@ namespace Vocaluxe.PartyModes return true; } - public override void OnClose() - { - base.OnClose(); - } } } diff --git a/VocaluxeLib/VocaluxeLib.csproj b/VocaluxeLib/VocaluxeLib.csproj index 44f557a2..b66a1afd 100644 --- a/VocaluxeLib/VocaluxeLib.csproj +++ b/VocaluxeLib/VocaluxeLib.csproj @@ -123,6 +123,7 @@ +