diff --git a/PartyModeChallenge/PartyModeChallenge.cs b/PartyModeChallenge/PartyModeChallenge.cs
new file mode 100644
index 00000000..1ca2cd5b
--- /dev/null
+++ b/PartyModeChallenge/PartyModeChallenge.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+using Vocaluxe.Menu;
+
+namespace Vocaluxe.PartyModes
+{
+ public class PartyModeChallenge : CPartyMode
+ {
+ public PartyModeChallenge()
+ {
+ _ScreenSongOptions.Selection.RandomOnly = false;
+ _ScreenSongOptions.Selection.PartyMode = false;
+ _ScreenSongOptions.Selection.CategoryChangeAllowed = true;
+ _ScreenSongOptions.Selection.NumJokers = null;
+
+ _ScreenSongOptions.Sorting.SearchString = String.Empty;
+ _ScreenSongOptions.Sorting.SearchStringVisible = false;
+ }
+
+ public override CMenuParty GetNextPartyScreen()
+ {
+ CMenuParty Screen = null;
+ _Screens.TryGetValue("PartyScreenChallengeConfig", out Screen);
+ return Screen;
+ }
+
+ public override ScreenSongOptions GetScreenSongOptions()
+ {
+ _ScreenSongOptions.Sorting.SongSorting = _Base.Config.GetSongSorting();
+ _ScreenSongOptions.Sorting.Tabs = _Base.Config.GetTabs();
+ _ScreenSongOptions.Sorting.IgnoreArticles = _Base.Config.GetIgnoreArticles();
+
+ return _ScreenSongOptions;
+ }
+
+ public override void SetSearchString(string SearchString, bool Visible)
+ {
+ _ScreenSongOptions.Sorting.SearchString = SearchString;
+ _ScreenSongOptions.Sorting.SearchStringVisible = Visible;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/PartyModeChallenge/PartyModeChallenge.csproj b/PartyModeChallenge/PartyModeChallenge.csproj
new file mode 100644
index 00000000..422a8bf5
--- /dev/null
+++ b/PartyModeChallenge/PartyModeChallenge.csproj
@@ -0,0 +1,145 @@
+
+
+
+ Debug
+ x86
+ 8.0.30703
+ 2.0
+ {6F3E1874-F28A-40E9-AFBD-31934D593679}
+ Library
+ Properties
+ PartyModeChallenge
+ PartyModeChallenge
+ v2.0
+
+
+ 512
+
+
+ AnyCPU
+ true
+ full
+ false
+ ..\Output\PartyModes\Challenge\Code
+ TRACE;DEBUG;WIN
+ prompt
+ 4
+ Off
+
+
+ AnyCPU
+ none
+ true
+ ..\Output\PartyModes\Challenge\Code
+ prompt
+ 4
+ false
+ WIN
+ Off
+
+
+ AnyCPU
+ true
+ full
+ false
+ ..\Output\PartyModes\Challenge\Code
+ TRACE;DEBUG;WIN
+ prompt
+ 4
+ Off
+
+
+ AnyCPU
+ none
+ true
+ ..\Output\PartyModes\Challenge\Code
+ prompt
+ 4
+ false
+ WIN
+ Off
+
+
+ AnyCPU
+ true
+ full
+ false
+ ..\Output\PartyModes\Challenge\Code
+ TRACE;DEBUG;LINUX
+ prompt
+ 4
+ Off
+
+
+ AnyCPU
+ none
+ true
+ ..\Output\PartyModes\Challenge\Code
+ prompt
+ 4
+ false
+ LINUX
+ Off
+
+
+ AnyCPU
+ true
+ full
+ false
+ ..\Output\PartyModes\Challenge\Code
+ TRACE;DEBUG;LINUX
+ prompt
+ 4
+ Off
+
+
+ AnyCPU
+ none
+ true
+ ..\Output\PartyModes\Challenge\Code
+ prompt
+ 4
+ false
+ LINUX
+ Off
+
+
+
+
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+
+
+ {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}
+ VocaluxeLib
+ False
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PartyModeChallenge/PartyScreenChallengeConfig.cs b/PartyModeChallenge/PartyScreenChallengeConfig.cs
new file mode 100644
index 00000000..c988c88f
--- /dev/null
+++ b/PartyModeChallenge/PartyScreenChallengeConfig.cs
@@ -0,0 +1,95 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Windows.Forms;
+
+using Vocaluxe.Menu;
+
+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;
+
+ const string ButtonNext = "ButtonNext";
+ const string ButtonBack = "ButtonBack";
+
+ public PartyScreenChallengeConfig()
+ {
+ }
+
+ protected override void Init()
+ {
+ base.Init();
+
+ _ThemeName = "PartyScreenChallengeConfig";
+ _ThemeButtons = new string[] { ButtonNext, ButtonBack };
+ _ScreenVersion = ScreenVersion;
+ }
+
+ public override void LoadTheme(string XmlPath)
+ {
+ base.LoadTheme(XmlPath);
+ }
+
+ public override bool HandleInput(KeyEvent KeyEvent)
+ {
+ base.HandleInput(KeyEvent);
+
+ if (KeyEvent.KeyPressed)
+ {
+
+ }
+ else
+ {
+ switch (KeyEvent.Key)
+ {
+ case Keys.Back:
+ case Keys.Escape:
+ FadeTo(EScreens.ScreenParty);
+ break;
+ }
+ }
+ return true;
+ }
+
+ public override bool HandleMouse(MouseEvent MouseEvent)
+ {
+ base.HandleMouse(MouseEvent);
+
+ if (MouseEvent.LB && IsMouseOver(MouseEvent))
+ {
+
+ }
+
+ if (MouseEvent.RB)
+ {
+ FadeTo(EScreens.ScreenParty);
+ }
+
+ return true;
+ }
+
+ public override void OnShow()
+ {
+ base.OnShow();
+ }
+
+ public override bool UpdateGame()
+ {
+ return true;
+ }
+
+ public override bool Draw()
+ {
+ base.Draw();
+ return true;
+ }
+
+ public override void OnClose()
+ {
+ base.OnClose();
+ }
+ }
+}
diff --git a/PartyModeChallenge/PartyScreenChallengeMain.cs b/PartyModeChallenge/PartyScreenChallengeMain.cs
new file mode 100644
index 00000000..eb06ae0e
--- /dev/null
+++ b/PartyModeChallenge/PartyScreenChallengeMain.cs
@@ -0,0 +1,91 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Windows.Forms;
+
+using Vocaluxe.Menu;
+
+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;
+
+ public PartyScreenChallengeMain()
+ {
+ }
+
+ protected override void Init()
+ {
+ base.Init();
+
+ _ThemeName = "PartyScreenChallengeMain";
+ _ScreenVersion = ScreenVersion;
+ }
+
+ public override void LoadTheme(string XmlPath)
+ {
+ base.LoadTheme(XmlPath);
+ }
+
+ public override bool HandleInput(KeyEvent KeyEvent)
+ {
+ base.HandleInput(KeyEvent);
+
+ if (KeyEvent.KeyPressed)
+ {
+
+ }
+ else
+ {
+ switch (KeyEvent.Key)
+ {
+ case Keys.Back:
+ case Keys.Escape:
+ FadeTo(EScreens.ScreenParty);
+ break;
+ }
+ }
+ return true;
+ }
+
+ public override bool HandleMouse(MouseEvent MouseEvent)
+ {
+ base.HandleMouse(MouseEvent);
+
+ if (MouseEvent.LB && IsMouseOver(MouseEvent))
+ {
+
+ }
+
+ if (MouseEvent.RB)
+ {
+ FadeTo(EScreens.ScreenParty);
+ }
+
+ return true;
+ }
+
+ public override void OnShow()
+ {
+ base.OnShow();
+ }
+
+ public override bool UpdateGame()
+ {
+ return true;
+ }
+
+ public override bool Draw()
+ {
+ base.Draw();
+ return true;
+ }
+
+ public override void OnClose()
+ {
+ base.OnClose();
+ }
+ }
+}
diff --git a/PartyModeChallenge/PartyScreenChallengeNames.cs b/PartyModeChallenge/PartyScreenChallengeNames.cs
new file mode 100644
index 00000000..908f4c0e
--- /dev/null
+++ b/PartyModeChallenge/PartyScreenChallengeNames.cs
@@ -0,0 +1,91 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Windows.Forms;
+
+using Vocaluxe.Menu;
+
+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;
+
+ public PartyScreenChallengeNames()
+ {
+ }
+
+ protected override void Init()
+ {
+ base.Init();
+
+ _ThemeName = "PartyScreenChallengeNames";
+ _ScreenVersion = ScreenVersion;
+ }
+
+ public override void LoadTheme(string XmlPath)
+ {
+ base.LoadTheme(XmlPath);
+ }
+
+ public override bool HandleInput(KeyEvent KeyEvent)
+ {
+ base.HandleInput(KeyEvent);
+
+ if (KeyEvent.KeyPressed)
+ {
+
+ }
+ else
+ {
+ switch (KeyEvent.Key)
+ {
+ case Keys.Back:
+ case Keys.Escape:
+ FadeTo(EScreens.ScreenParty);
+ break;
+ }
+ }
+ return true;
+ }
+
+ public override bool HandleMouse(MouseEvent MouseEvent)
+ {
+ base.HandleMouse(MouseEvent);
+
+ if (MouseEvent.LB && IsMouseOver(MouseEvent))
+ {
+
+ }
+
+ if (MouseEvent.RB)
+ {
+ FadeTo(EScreens.ScreenParty);
+ }
+
+ return true;
+ }
+
+ public override void OnShow()
+ {
+ base.OnShow();
+ }
+
+ public override bool UpdateGame()
+ {
+ return true;
+ }
+
+ public override bool Draw()
+ {
+ base.Draw();
+ return true;
+ }
+
+ public override void OnClose()
+ {
+ base.OnClose();
+ }
+ }
+}
diff --git a/Vocaluxe.sln b/Vocaluxe.sln
index 4fcb3b6a..3f653674 100644
--- a/Vocaluxe.sln
+++ b/Vocaluxe.sln
@@ -3,11 +3,14 @@ Microsoft Visual Studio Solution File, Format Version 11.00
# Visual C# Express 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vocaluxe", "Vocaluxe\Vocaluxe.csproj", "{2A1E0F2D-5392-4BB7-B0A1-A9DFA13E79FF}"
ProjectSection(ProjectDependencies) = postProject
+ {6F3E1874-F28A-40E9-AFBD-31934D593679} = {6F3E1874-F28A-40E9-AFBD-31934D593679}
{D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC} = {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VocaluxeLib", "VocaluxeLib\VocaluxeLib.csproj", "{D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PartyModeChallenge", "PartyModeChallenge\PartyModeChallenge.csproj", "{6F3E1874-F28A-40E9-AFBD-31934D593679}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
DebugLinux|x64 = DebugLinux|x64
@@ -46,6 +49,14 @@ Global
{D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86
{D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}.ReleaseWin|x64.ActiveCfg = ReleaseWin|x64
{D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}.ReleaseWin|x86.ActiveCfg = ReleaseWin|x86
+ {6F3E1874-F28A-40E9-AFBD-31934D593679}.DebugLinux|x64.ActiveCfg = DebugLinux|x64
+ {6F3E1874-F28A-40E9-AFBD-31934D593679}.DebugLinux|x86.ActiveCfg = DebugLinux|x86
+ {6F3E1874-F28A-40E9-AFBD-31934D593679}.DebugWin|x64.ActiveCfg = DebugWin|x64
+ {6F3E1874-F28A-40E9-AFBD-31934D593679}.DebugWin|x86.ActiveCfg = DebugWin|x86
+ {6F3E1874-F28A-40E9-AFBD-31934D593679}.ReleaseLinux|x64.ActiveCfg = ReleaseLinux|x64
+ {6F3E1874-F28A-40E9-AFBD-31934D593679}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86
+ {6F3E1874-F28A-40E9-AFBD-31934D593679}.ReleaseWin|x64.ActiveCfg = ReleaseWin|x64
+ {6F3E1874-F28A-40E9-AFBD-31934D593679}.ReleaseWin|x86.ActiveCfg = ReleaseWin|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Vocaluxe/Base/CParty.cs b/Vocaluxe/Base/CParty.cs
index 72076ad2..7d618986 100644
--- a/Vocaluxe/Base/CParty.cs
+++ b/Vocaluxe/Base/CParty.cs
@@ -279,7 +279,10 @@ namespace Vocaluxe.Base
pm.PartyModeID);
if (Screen != null)
+ {
+ Screen.AssignPartyMode(pm.PartyMode);
pm.PartyMode.AddScreen(Screen, screenfile);
+ }
else
return pm;
}
diff --git a/VocaluxeLib/Menu/CMenuParty.cs b/VocaluxeLib/Menu/CMenuParty.cs
index e726e707..ac967eb3 100644
--- a/VocaluxeLib/Menu/CMenuParty.cs
+++ b/VocaluxeLib/Menu/CMenuParty.cs
@@ -2,12 +2,17 @@
using System.Collections.Generic;
using System.Text;
+using Vocaluxe.PartyModes;
+
namespace Vocaluxe.Menu
{
public abstract class CMenuParty : CMenu
{
+ protected IPartyMode _PartyMode;
+
public CMenuParty()
{
+ _PartyMode = new CPartyModeNone();
}
public void SetPartyModeID(int PartyModeID)
@@ -20,6 +25,11 @@ namespace Vocaluxe.Menu
return _PartyModeID;
}
+ public void AssignPartyMode(IPartyMode PartyMode)
+ {
+ _PartyMode = PartyMode;
+ }
+
/*
public sealed override void LoadTheme()
{
diff --git a/VocaluxeLib/Menu/IMenu.cs b/VocaluxeLib/Menu/IMenu.cs
index a50a085c..8ec23110 100644
--- a/VocaluxeLib/Menu/IMenu.cs
+++ b/VocaluxeLib/Menu/IMenu.cs
@@ -6,6 +6,7 @@ using System.Windows.Forms;
using Vocaluxe.Menu.SingNotes;
using Vocaluxe.Menu.SongMenu;
+using Vocaluxe.PartyModes;
namespace Vocaluxe.Menu
{
@@ -47,6 +48,8 @@ namespace Vocaluxe.Menu
{
void SetPartyModeID(int PartyModeID);
int GetPartyModeID();
+
+ void AssignPartyMode(IPartyMode PartyMode);
}
public interface IConfig
diff --git a/VocaluxeLib/PartyModes/CPartyMode.cs b/VocaluxeLib/PartyModes/CPartyMode.cs
index fd95f35d..d81b2d67 100644
--- a/VocaluxeLib/PartyModes/CPartyMode.cs
+++ b/VocaluxeLib/PartyModes/CPartyMode.cs
@@ -12,6 +12,7 @@ namespace Vocaluxe.PartyModes
protected ScreenSongOptions _ScreenSongOptions;
protected Dictionary _Screens;
protected string _Folder;
+ protected Delegate _Callback;
public CPartyMode()
{
@@ -38,6 +39,11 @@ namespace Vocaluxe.PartyModes
_Screens.Add(ScreenName, Screen);
}
+ public void SetPartyModeCallback(Delegate Callback)
+ {
+ _Callback = Callback;
+ }
+
public virtual CMenuParty GetNextPartyScreen()
{
return null;
diff --git a/VocaluxeLib/PartyModes/IPartyMode.cs b/VocaluxeLib/PartyModes/IPartyMode.cs
index c583340c..40d37bd3 100644
--- a/VocaluxeLib/PartyModes/IPartyMode.cs
+++ b/VocaluxeLib/PartyModes/IPartyMode.cs
@@ -54,6 +54,7 @@ namespace Vocaluxe.PartyModes
bool Init(string Folder);
void Initialize(Basic Base);
void AddScreen(CMenuParty Screen, string ScreenName);
+ void SetPartyModeCallback(Delegate Callback);
CMenuParty GetNextPartyScreen();
EScreens GetStartScreen();