diff --git a/Output/PartyModes/Challenge/Code/PartyModeChallenge.cs b/Output/PartyModes/Challenge/Code/PartyModeChallenge.cs index b7083451..7126c48e 100644 --- a/Output/PartyModes/Challenge/Code/PartyModeChallenge.cs +++ b/Output/PartyModes/Challenge/Code/PartyModeChallenge.cs @@ -52,6 +52,7 @@ namespace Vocaluxe.PartyModes public struct FromScreenMain { + public bool FadeToSongSelection; } #endregion FromScreen #endregion Communication @@ -93,9 +94,9 @@ namespace Vocaluxe.PartyModes public PartyModeChallenge() { _ScreenSongOptions.Selection.RandomOnly = false; - _ScreenSongOptions.Selection.PartyMode = false; + _ScreenSongOptions.Selection.PartyMode = true; _ScreenSongOptions.Selection.CategoryChangeAllowed = true; - _ScreenSongOptions.Selection.NumJokers = null; + _ScreenSongOptions.Selection.NumJokers = new int[] { 5, 5 }; _ScreenSongOptions.Sorting.SearchString = String.Empty; _ScreenSongOptions.Sorting.SearchStringVisible = false; @@ -164,8 +165,20 @@ namespace Vocaluxe.PartyModes break; case "PartyScreenChallengeMain": - _Stage = EStage.Singing; - _Base.Graphics.FadeTo(EScreens.ScreenPartyDummy); + try + { + data = (DataFromScreen)Data; + if (data.ScreenMain.FadeToSongSelection) + _Stage = EStage.Singing; + } + catch (Exception e) + { + _Base.Log.LogError("Error in party mode challenge. Can't cast received data from screen " + ScreenName + ". " + e.Message); + } + + + if (_Stage == EStage.Singing) + StartNextRound(); break; default: @@ -269,5 +282,11 @@ namespace Vocaluxe.PartyModes { return MaxNumRounds; } + + private void StartNextRound() + { + + _Base.Graphics.FadeTo(EScreens.ScreenSong); + } } } \ No newline at end of file diff --git a/Output/PartyModes/Challenge/Code/PartyScreenChallengeMain.cs b/Output/PartyModes/Challenge/Code/PartyScreenChallengeMain.cs index 193a8924..ba0fc37f 100644 --- a/Output/PartyModes/Challenge/Code/PartyScreenChallengeMain.cs +++ b/Output/PartyModes/Challenge/Code/PartyScreenChallengeMain.cs @@ -14,8 +14,12 @@ namespace Vocaluxe.PartyModes const string ButtonNextRound = "ButtonNextRound"; + private DataFromScreen Data; + public PartyScreenChallengeMain() { + Data = new DataFromScreen(); + Data.ScreenMain = new FromScreenMain(); } protected override void Init() @@ -32,6 +36,22 @@ namespace Vocaluxe.PartyModes base.LoadTheme(XmlPath); } + public override void DataToScreen(object ReceivedData) + { + DataToScreenMain data = new DataToScreenMain(); + + try + { + data = (DataToScreenMain)ReceivedData; + + } + catch (Exception e) + { + _Base.Log.LogError("Error in party mode screen challenge main. Can't cast received data from game mode " + _ThemeName + ". " + e.Message); ; + } + + } + public override bool HandleInput(KeyEvent KeyEvent) { base.HandleInput(KeyEvent); @@ -46,7 +66,12 @@ namespace Vocaluxe.PartyModes { case Keys.Back: case Keys.Escape: - FadeTo(EScreens.ScreenParty); + EndParty(); + break; + + case Keys.Enter: + if (Buttons[htButtons(ButtonNextRound)].Selected) + NextRound(); break; } } @@ -59,12 +84,13 @@ namespace Vocaluxe.PartyModes if (MouseEvent.LB && IsMouseOver(MouseEvent)) { - + if (Buttons[htButtons(ButtonNextRound)].Selected) + NextRound(); } if (MouseEvent.RB) { - FadeTo(EScreens.ScreenParty); + EndParty(); } return true; @@ -90,5 +116,16 @@ namespace Vocaluxe.PartyModes { base.OnClose(); } + + private void NextRound() + { + Data.ScreenMain.FadeToSongSelection = true; + _PartyMode.DataFromScreen(_ThemeName, Data); + } + + private void EndParty() + { + //TODO + } } } diff --git a/Output/PartyModes/Challenge/Code/PartyScreenChallengeNames.cs b/Output/PartyModes/Challenge/Code/PartyScreenChallengeNames.cs index fa8d32dc..975eaa02 100644 --- a/Output/PartyModes/Challenge/Code/PartyScreenChallengeNames.cs +++ b/Output/PartyModes/Challenge/Code/PartyScreenChallengeNames.cs @@ -101,7 +101,7 @@ namespace Vocaluxe.PartyModes } catch (Exception e) { - _Base.Log.LogError("Error in party mode screen challenge config. Can't cast received data from game mode " + _ThemeName + ". " + e.Message); ; + _Base.Log.LogError("Error in party mode screen challenge names. Can't cast received data from game mode " + _ThemeName + ". " + e.Message); ; } } diff --git a/PartyModeChallenge/PartyModeChallenge.cs b/PartyModeChallenge/PartyModeChallenge.cs index b7083451..7126c48e 100644 --- a/PartyModeChallenge/PartyModeChallenge.cs +++ b/PartyModeChallenge/PartyModeChallenge.cs @@ -52,6 +52,7 @@ namespace Vocaluxe.PartyModes public struct FromScreenMain { + public bool FadeToSongSelection; } #endregion FromScreen #endregion Communication @@ -93,9 +94,9 @@ namespace Vocaluxe.PartyModes public PartyModeChallenge() { _ScreenSongOptions.Selection.RandomOnly = false; - _ScreenSongOptions.Selection.PartyMode = false; + _ScreenSongOptions.Selection.PartyMode = true; _ScreenSongOptions.Selection.CategoryChangeAllowed = true; - _ScreenSongOptions.Selection.NumJokers = null; + _ScreenSongOptions.Selection.NumJokers = new int[] { 5, 5 }; _ScreenSongOptions.Sorting.SearchString = String.Empty; _ScreenSongOptions.Sorting.SearchStringVisible = false; @@ -164,8 +165,20 @@ namespace Vocaluxe.PartyModes break; case "PartyScreenChallengeMain": - _Stage = EStage.Singing; - _Base.Graphics.FadeTo(EScreens.ScreenPartyDummy); + try + { + data = (DataFromScreen)Data; + if (data.ScreenMain.FadeToSongSelection) + _Stage = EStage.Singing; + } + catch (Exception e) + { + _Base.Log.LogError("Error in party mode challenge. Can't cast received data from screen " + ScreenName + ". " + e.Message); + } + + + if (_Stage == EStage.Singing) + StartNextRound(); break; default: @@ -269,5 +282,11 @@ namespace Vocaluxe.PartyModes { return MaxNumRounds; } + + private void StartNextRound() + { + + _Base.Graphics.FadeTo(EScreens.ScreenSong); + } } } \ No newline at end of file diff --git a/PartyModeChallenge/PartyScreenChallengeMain.cs b/PartyModeChallenge/PartyScreenChallengeMain.cs index 193a8924..ba0fc37f 100644 --- a/PartyModeChallenge/PartyScreenChallengeMain.cs +++ b/PartyModeChallenge/PartyScreenChallengeMain.cs @@ -14,8 +14,12 @@ namespace Vocaluxe.PartyModes const string ButtonNextRound = "ButtonNextRound"; + private DataFromScreen Data; + public PartyScreenChallengeMain() { + Data = new DataFromScreen(); + Data.ScreenMain = new FromScreenMain(); } protected override void Init() @@ -32,6 +36,22 @@ namespace Vocaluxe.PartyModes base.LoadTheme(XmlPath); } + public override void DataToScreen(object ReceivedData) + { + DataToScreenMain data = new DataToScreenMain(); + + try + { + data = (DataToScreenMain)ReceivedData; + + } + catch (Exception e) + { + _Base.Log.LogError("Error in party mode screen challenge main. Can't cast received data from game mode " + _ThemeName + ". " + e.Message); ; + } + + } + public override bool HandleInput(KeyEvent KeyEvent) { base.HandleInput(KeyEvent); @@ -46,7 +66,12 @@ namespace Vocaluxe.PartyModes { case Keys.Back: case Keys.Escape: - FadeTo(EScreens.ScreenParty); + EndParty(); + break; + + case Keys.Enter: + if (Buttons[htButtons(ButtonNextRound)].Selected) + NextRound(); break; } } @@ -59,12 +84,13 @@ namespace Vocaluxe.PartyModes if (MouseEvent.LB && IsMouseOver(MouseEvent)) { - + if (Buttons[htButtons(ButtonNextRound)].Selected) + NextRound(); } if (MouseEvent.RB) { - FadeTo(EScreens.ScreenParty); + EndParty(); } return true; @@ -90,5 +116,16 @@ namespace Vocaluxe.PartyModes { base.OnClose(); } + + private void NextRound() + { + Data.ScreenMain.FadeToSongSelection = true; + _PartyMode.DataFromScreen(_ThemeName, Data); + } + + private void EndParty() + { + //TODO + } } } diff --git a/PartyModeChallenge/PartyScreenChallengeNames.cs b/PartyModeChallenge/PartyScreenChallengeNames.cs index fa8d32dc..975eaa02 100644 --- a/PartyModeChallenge/PartyScreenChallengeNames.cs +++ b/PartyModeChallenge/PartyScreenChallengeNames.cs @@ -101,7 +101,7 @@ namespace Vocaluxe.PartyModes } catch (Exception e) { - _Base.Log.LogError("Error in party mode screen challenge config. Can't cast received data from game mode " + _ThemeName + ". " + e.Message); ; + _Base.Log.LogError("Error in party mode screen challenge names. Can't cast received data from game mode " + _ThemeName + ". " + e.Message); ; } }