added communication methods and structures for party modes
This commit is contained in:
1 parent
7151d1ccdf
commit
007ea68a15
13 files changed
+445
-33
No files matched your search
@@ -6,6 +6,36 @@ using Vocaluxe.Menu;
|
|||||||
|
|
||||||
namespace Vocaluxe.PartyModes
|
namespace Vocaluxe.PartyModes
|
||||||
{
|
{
|
||||||
|
public struct DataToScreen
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct DataFromScreen
|
||||||
|
{
|
||||||
|
public FromScreenConfig ScreenConfig;
|
||||||
|
public FromScreenNames ScreenNames;
|
||||||
|
public FromScreenMain ScreenMain;
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct FromScreenConfig
|
||||||
|
{
|
||||||
|
public int NumPlayers;
|
||||||
|
public int NumPlayersAtOnce;
|
||||||
|
public int NumRounds;
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct FromScreenNames
|
||||||
|
{
|
||||||
|
public bool FadeToConfig;
|
||||||
|
public bool FadeToMain;
|
||||||
|
public List<int> ProfileIDs;
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct FromScreenMain
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
public class PartyModeChallenge : CPartyMode
|
public class PartyModeChallenge : CPartyMode
|
||||||
{
|
{
|
||||||
private const int MaxPlayer = 10;
|
private const int MaxPlayer = 10;
|
||||||
@@ -13,6 +43,16 @@ namespace Vocaluxe.PartyModes
|
|||||||
private const int MaxTeams = 0;
|
private const int MaxTeams = 0;
|
||||||
private const int MinTeams = 0;
|
private const int MinTeams = 0;
|
||||||
|
|
||||||
|
enum EStage
|
||||||
|
{
|
||||||
|
NotStarted,
|
||||||
|
Config,
|
||||||
|
Names,
|
||||||
|
Main,
|
||||||
|
Singing
|
||||||
|
}
|
||||||
|
|
||||||
|
private EStage _Stage;
|
||||||
|
|
||||||
public PartyModeChallenge()
|
public PartyModeChallenge()
|
||||||
{
|
{
|
||||||
@@ -23,15 +63,102 @@ namespace Vocaluxe.PartyModes
|
|||||||
|
|
||||||
_ScreenSongOptions.Sorting.SearchString = String.Empty;
|
_ScreenSongOptions.Sorting.SearchString = String.Empty;
|
||||||
_ScreenSongOptions.Sorting.SearchStringVisible = false;
|
_ScreenSongOptions.Sorting.SearchStringVisible = false;
|
||||||
|
|
||||||
|
_Stage = EStage.NotStarted;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override CMenuParty GetNextPartyScreen()
|
public override bool Init()
|
||||||
|
{
|
||||||
|
_Stage = EStage.NotStarted;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void DataFromScreen(string ScreenName, Object Data)
|
||||||
|
{
|
||||||
|
DataFromScreen data = new DataFromScreen();
|
||||||
|
switch (ScreenName)
|
||||||
|
{
|
||||||
|
case "PartyScreenChallengeConfig":
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
data = (DataFromScreen)Data;
|
||||||
|
_Stage = EStage.Config;
|
||||||
|
_Base.Graphics.FadeTo(EScreens.ScreenPartyDummy);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
_Base.Log.LogError("Error in party mode challenge. Can't cast received data from screen " + ScreenName + ". " + e.Message);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "PartyScreenChallengeNames":
|
||||||
|
try
|
||||||
|
{
|
||||||
|
data = (DataFromScreen)Data;
|
||||||
|
if (data.ScreenNames.FadeToConfig)
|
||||||
|
_Stage = EStage.NotStarted;
|
||||||
|
else
|
||||||
|
_Stage = EStage.Names;
|
||||||
|
|
||||||
|
_Base.Graphics.FadeTo(EScreens.ScreenPartyDummy);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
_Base.Log.LogError("Error in party mode challenge. Can't cast received data from screen " + ScreenName + ". " + e.Message);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "PartyScreenChallengeMain":
|
||||||
|
_Stage = EStage.Singing;
|
||||||
|
_Base.Graphics.FadeTo(EScreens.ScreenPartyDummy);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
_Base.Log.LogError("Error in party mode challenge. Wrong screen is sending: " + ScreenName);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override CMenuParty GetNextPartyScreen(out EScreens AlternativeScreen)
|
||||||
{
|
{
|
||||||
CMenuParty Screen = null;
|
CMenuParty Screen = null;
|
||||||
_Screens.TryGetValue("PartyScreenChallengeConfig", out Screen);
|
AlternativeScreen = EScreens.ScreenSong;
|
||||||
|
|
||||||
|
switch (_Stage)
|
||||||
|
{
|
||||||
|
case EStage.NotStarted:
|
||||||
|
_Screens.TryGetValue("PartyScreenChallengeConfig", out Screen);
|
||||||
|
break;
|
||||||
|
case EStage.Config:
|
||||||
|
_Screens.TryGetValue("PartyScreenChallengeNames", out Screen);
|
||||||
|
break;
|
||||||
|
case EStage.Names:
|
||||||
|
_Screens.TryGetValue("PartyScreenChallengeMain", out Screen);
|
||||||
|
break;
|
||||||
|
case EStage.Main:
|
||||||
|
AlternativeScreen = EScreens.ScreenSong;
|
||||||
|
break;
|
||||||
|
case EStage.Singing:
|
||||||
|
_Screens.TryGetValue("PartyScreenChallengeMain", out Screen);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return Screen;
|
return Screen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override EScreens GetStartScreen()
|
||||||
|
{
|
||||||
|
return EScreens.ScreenPartyDummy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override EScreens GetMainScreen()
|
||||||
|
{
|
||||||
|
return EScreens.ScreenPartyDummy;
|
||||||
|
}
|
||||||
|
|
||||||
public override ScreenSongOptions GetScreenSongOptions()
|
public override ScreenSongOptions GetScreenSongOptions()
|
||||||
{
|
{
|
||||||
_ScreenSongOptions.Sorting.SongSorting = _Base.Config.GetSongSorting();
|
_ScreenSongOptions.Sorting.SongSorting = _Base.Config.GetSongSorting();
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ namespace Vocaluxe.PartyModes
|
|||||||
const string ButtonNext = "ButtonNext";
|
const string ButtonNext = "ButtonNext";
|
||||||
const string ButtonBack = "ButtonBack";
|
const string ButtonBack = "ButtonBack";
|
||||||
|
|
||||||
|
DataFromScreen Data;
|
||||||
|
|
||||||
public PartyScreenChallengeConfig()
|
public PartyScreenChallengeConfig()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -26,6 +28,13 @@ namespace Vocaluxe.PartyModes
|
|||||||
_ThemeName = "PartyScreenChallengeConfig";
|
_ThemeName = "PartyScreenChallengeConfig";
|
||||||
_ThemeButtons = new string[] { ButtonNext, ButtonBack };
|
_ThemeButtons = new string[] { ButtonNext, ButtonBack };
|
||||||
_ScreenVersion = ScreenVersion;
|
_ScreenVersion = ScreenVersion;
|
||||||
|
|
||||||
|
Data = new DataFromScreen();
|
||||||
|
FromScreenConfig config = new FromScreenConfig();
|
||||||
|
config.NumPlayers = 0;
|
||||||
|
config.NumPlayersAtOnce = 0;
|
||||||
|
config.NumRounds = 0;
|
||||||
|
Data.ScreenConfig = config;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void LoadTheme(string XmlPath)
|
public override void LoadTheme(string XmlPath)
|
||||||
@@ -47,7 +56,15 @@ namespace Vocaluxe.PartyModes
|
|||||||
{
|
{
|
||||||
case Keys.Back:
|
case Keys.Back:
|
||||||
case Keys.Escape:
|
case Keys.Escape:
|
||||||
FadeTo(EScreens.ScreenParty);
|
Back();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Keys.Enter:
|
||||||
|
if (Buttons[htButtons(ButtonBack)].Selected)
|
||||||
|
Back();
|
||||||
|
|
||||||
|
if (Buttons[htButtons(ButtonNext)].Selected)
|
||||||
|
Next();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -60,12 +77,16 @@ namespace Vocaluxe.PartyModes
|
|||||||
|
|
||||||
if (MouseEvent.LB && IsMouseOver(MouseEvent))
|
if (MouseEvent.LB && IsMouseOver(MouseEvent))
|
||||||
{
|
{
|
||||||
|
if (Buttons[htButtons(ButtonBack)].Selected)
|
||||||
|
Back();
|
||||||
|
|
||||||
|
if (Buttons[htButtons(ButtonNext)].Selected)
|
||||||
|
Next();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MouseEvent.RB)
|
if (MouseEvent.RB)
|
||||||
{
|
{
|
||||||
FadeTo(EScreens.ScreenParty);
|
Back();
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -91,5 +112,19 @@ namespace Vocaluxe.PartyModes
|
|||||||
{
|
{
|
||||||
base.OnClose();
|
base.OnClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Back()
|
||||||
|
{
|
||||||
|
FadeTo(EScreens.ScreenParty);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Next()
|
||||||
|
{
|
||||||
|
Data.ScreenConfig.NumPlayers = 4;
|
||||||
|
Data.ScreenConfig.NumPlayersAtOnce = 2;
|
||||||
|
Data.ScreenConfig.NumRounds = 8;
|
||||||
|
|
||||||
|
_PartyMode.DataFromScreen(_ThemeName, Data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -12,6 +12,11 @@ namespace Vocaluxe.PartyModes
|
|||||||
// Version number for theme files. Increment it, if you've changed something on the theme files!
|
// Version number for theme files. Increment it, if you've changed something on the theme files!
|
||||||
const int ScreenVersion = 1;
|
const int ScreenVersion = 1;
|
||||||
|
|
||||||
|
const string ButtonNext = "ButtonNext";
|
||||||
|
const string ButtonBack = "ButtonBack";
|
||||||
|
|
||||||
|
private DataFromScreen Data;
|
||||||
|
|
||||||
public PartyScreenChallengeNames()
|
public PartyScreenChallengeNames()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -21,7 +26,15 @@ namespace Vocaluxe.PartyModes
|
|||||||
base.Init();
|
base.Init();
|
||||||
|
|
||||||
_ThemeName = "PartyScreenChallengeNames";
|
_ThemeName = "PartyScreenChallengeNames";
|
||||||
|
_ThemeButtons = new string[] { ButtonNext, ButtonBack };
|
||||||
_ScreenVersion = ScreenVersion;
|
_ScreenVersion = ScreenVersion;
|
||||||
|
|
||||||
|
Data = new DataFromScreen();
|
||||||
|
FromScreenNames names = new FromScreenNames();
|
||||||
|
names.FadeToConfig = false;
|
||||||
|
names.FadeToMain = false;
|
||||||
|
names.ProfileIDs = new List<int>();
|
||||||
|
Data.ScreenNames = names;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void LoadTheme(string XmlPath)
|
public override void LoadTheme(string XmlPath)
|
||||||
@@ -43,7 +56,16 @@ namespace Vocaluxe.PartyModes
|
|||||||
{
|
{
|
||||||
case Keys.Back:
|
case Keys.Back:
|
||||||
case Keys.Escape:
|
case Keys.Escape:
|
||||||
FadeTo(EScreens.ScreenParty);
|
Back();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Keys.Enter:
|
||||||
|
if (Buttons[htButtons(ButtonBack)].Selected)
|
||||||
|
Back();
|
||||||
|
|
||||||
|
if (Buttons[htButtons(ButtonNext)].Selected)
|
||||||
|
Next();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -56,7 +78,11 @@ namespace Vocaluxe.PartyModes
|
|||||||
|
|
||||||
if (MouseEvent.LB && IsMouseOver(MouseEvent))
|
if (MouseEvent.LB && IsMouseOver(MouseEvent))
|
||||||
{
|
{
|
||||||
|
if (Buttons[htButtons(ButtonBack)].Selected)
|
||||||
|
Back();
|
||||||
|
|
||||||
|
if (Buttons[htButtons(ButtonNext)].Selected)
|
||||||
|
Next();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MouseEvent.RB)
|
if (MouseEvent.RB)
|
||||||
@@ -87,5 +113,19 @@ namespace Vocaluxe.PartyModes
|
|||||||
{
|
{
|
||||||
base.OnClose();
|
base.OnClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Back()
|
||||||
|
{
|
||||||
|
Data.ScreenNames.FadeToConfig = true;
|
||||||
|
Data.ScreenNames.FadeToMain = false;
|
||||||
|
_PartyMode.DataFromScreen(_ThemeName, Data);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Next()
|
||||||
|
{
|
||||||
|
Data.ScreenNames.FadeToConfig = false;
|
||||||
|
Data.ScreenNames.FadeToMain = true;
|
||||||
|
_PartyMode.DataFromScreen(_ThemeName, Data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -115,7 +115,7 @@
|
|||||||
<Height>26</Height>
|
<Height>26</Height>
|
||||||
</SReflection>
|
</SReflection>
|
||||||
</ButtonNext>
|
</ButtonNext>
|
||||||
<ButtonExit>
|
<ButtonBack>
|
||||||
<!--<Skin>: Texture name-->
|
<!--<Skin>: Texture name-->
|
||||||
<Skin>Button</Skin>
|
<Skin>Button</Skin>
|
||||||
<!--<SkinSelected>: Texture name for selected button-->
|
<!--<SkinSelected>: Texture name for selected button-->
|
||||||
@@ -171,6 +171,6 @@
|
|||||||
<Space>10</Space>
|
<Space>10</Space>
|
||||||
<Height>26</Height>
|
<Height>26</Height>
|
||||||
</SReflection>
|
</SReflection>
|
||||||
</ButtonExit>
|
</ButtonBack>
|
||||||
</PartyScreenChallengeNames>
|
</PartyScreenChallengeNames>
|
||||||
</root>
|
</root>
|
||||||
@@ -6,6 +6,36 @@ using Vocaluxe.Menu;
|
|||||||
|
|
||||||
namespace Vocaluxe.PartyModes
|
namespace Vocaluxe.PartyModes
|
||||||
{
|
{
|
||||||
|
public struct DataToScreen
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct DataFromScreen
|
||||||
|
{
|
||||||
|
public FromScreenConfig ScreenConfig;
|
||||||
|
public FromScreenNames ScreenNames;
|
||||||
|
public FromScreenMain ScreenMain;
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct FromScreenConfig
|
||||||
|
{
|
||||||
|
public int NumPlayers;
|
||||||
|
public int NumPlayersAtOnce;
|
||||||
|
public int NumRounds;
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct FromScreenNames
|
||||||
|
{
|
||||||
|
public bool FadeToConfig;
|
||||||
|
public bool FadeToMain;
|
||||||
|
public List<int> ProfileIDs;
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct FromScreenMain
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
public class PartyModeChallenge : CPartyMode
|
public class PartyModeChallenge : CPartyMode
|
||||||
{
|
{
|
||||||
private const int MaxPlayer = 10;
|
private const int MaxPlayer = 10;
|
||||||
@@ -13,6 +43,16 @@ namespace Vocaluxe.PartyModes
|
|||||||
private const int MaxTeams = 0;
|
private const int MaxTeams = 0;
|
||||||
private const int MinTeams = 0;
|
private const int MinTeams = 0;
|
||||||
|
|
||||||
|
enum EStage
|
||||||
|
{
|
||||||
|
NotStarted,
|
||||||
|
Config,
|
||||||
|
Names,
|
||||||
|
Main,
|
||||||
|
Singing
|
||||||
|
}
|
||||||
|
|
||||||
|
private EStage _Stage;
|
||||||
|
|
||||||
public PartyModeChallenge()
|
public PartyModeChallenge()
|
||||||
{
|
{
|
||||||
@@ -23,15 +63,102 @@ namespace Vocaluxe.PartyModes
|
|||||||
|
|
||||||
_ScreenSongOptions.Sorting.SearchString = String.Empty;
|
_ScreenSongOptions.Sorting.SearchString = String.Empty;
|
||||||
_ScreenSongOptions.Sorting.SearchStringVisible = false;
|
_ScreenSongOptions.Sorting.SearchStringVisible = false;
|
||||||
|
|
||||||
|
_Stage = EStage.NotStarted;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override CMenuParty GetNextPartyScreen()
|
public override bool Init()
|
||||||
|
{
|
||||||
|
_Stage = EStage.NotStarted;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void DataFromScreen(string ScreenName, Object Data)
|
||||||
|
{
|
||||||
|
DataFromScreen data = new DataFromScreen();
|
||||||
|
switch (ScreenName)
|
||||||
|
{
|
||||||
|
case "PartyScreenChallengeConfig":
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
data = (DataFromScreen)Data;
|
||||||
|
_Stage = EStage.Config;
|
||||||
|
_Base.Graphics.FadeTo(EScreens.ScreenPartyDummy);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
_Base.Log.LogError("Error in party mode challenge. Can't cast received data from screen " + ScreenName + ". " + e.Message);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "PartyScreenChallengeNames":
|
||||||
|
try
|
||||||
|
{
|
||||||
|
data = (DataFromScreen)Data;
|
||||||
|
if (data.ScreenNames.FadeToConfig)
|
||||||
|
_Stage = EStage.NotStarted;
|
||||||
|
else
|
||||||
|
_Stage = EStage.Names;
|
||||||
|
|
||||||
|
_Base.Graphics.FadeTo(EScreens.ScreenPartyDummy);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
_Base.Log.LogError("Error in party mode challenge. Can't cast received data from screen " + ScreenName + ". " + e.Message);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "PartyScreenChallengeMain":
|
||||||
|
_Stage = EStage.Singing;
|
||||||
|
_Base.Graphics.FadeTo(EScreens.ScreenPartyDummy);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
_Base.Log.LogError("Error in party mode challenge. Wrong screen is sending: " + ScreenName);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override CMenuParty GetNextPartyScreen(out EScreens AlternativeScreen)
|
||||||
{
|
{
|
||||||
CMenuParty Screen = null;
|
CMenuParty Screen = null;
|
||||||
_Screens.TryGetValue("PartyScreenChallengeConfig", out Screen);
|
AlternativeScreen = EScreens.ScreenSong;
|
||||||
|
|
||||||
|
switch (_Stage)
|
||||||
|
{
|
||||||
|
case EStage.NotStarted:
|
||||||
|
_Screens.TryGetValue("PartyScreenChallengeConfig", out Screen);
|
||||||
|
break;
|
||||||
|
case EStage.Config:
|
||||||
|
_Screens.TryGetValue("PartyScreenChallengeNames", out Screen);
|
||||||
|
break;
|
||||||
|
case EStage.Names:
|
||||||
|
_Screens.TryGetValue("PartyScreenChallengeMain", out Screen);
|
||||||
|
break;
|
||||||
|
case EStage.Main:
|
||||||
|
AlternativeScreen = EScreens.ScreenSong;
|
||||||
|
break;
|
||||||
|
case EStage.Singing:
|
||||||
|
_Screens.TryGetValue("PartyScreenChallengeMain", out Screen);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return Screen;
|
return Screen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override EScreens GetStartScreen()
|
||||||
|
{
|
||||||
|
return EScreens.ScreenPartyDummy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override EScreens GetMainScreen()
|
||||||
|
{
|
||||||
|
return EScreens.ScreenPartyDummy;
|
||||||
|
}
|
||||||
|
|
||||||
public override ScreenSongOptions GetScreenSongOptions()
|
public override ScreenSongOptions GetScreenSongOptions()
|
||||||
{
|
{
|
||||||
_ScreenSongOptions.Sorting.SongSorting = _Base.Config.GetSongSorting();
|
_ScreenSongOptions.Sorting.SongSorting = _Base.Config.GetSongSorting();
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ namespace Vocaluxe.PartyModes
|
|||||||
const string ButtonNext = "ButtonNext";
|
const string ButtonNext = "ButtonNext";
|
||||||
const string ButtonBack = "ButtonBack";
|
const string ButtonBack = "ButtonBack";
|
||||||
|
|
||||||
|
DataFromScreen Data;
|
||||||
|
|
||||||
public PartyScreenChallengeConfig()
|
public PartyScreenChallengeConfig()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -26,6 +28,13 @@ namespace Vocaluxe.PartyModes
|
|||||||
_ThemeName = "PartyScreenChallengeConfig";
|
_ThemeName = "PartyScreenChallengeConfig";
|
||||||
_ThemeButtons = new string[] { ButtonNext, ButtonBack };
|
_ThemeButtons = new string[] { ButtonNext, ButtonBack };
|
||||||
_ScreenVersion = ScreenVersion;
|
_ScreenVersion = ScreenVersion;
|
||||||
|
|
||||||
|
Data = new DataFromScreen();
|
||||||
|
FromScreenConfig config = new FromScreenConfig();
|
||||||
|
config.NumPlayers = 0;
|
||||||
|
config.NumPlayersAtOnce = 0;
|
||||||
|
config.NumRounds = 0;
|
||||||
|
Data.ScreenConfig = config;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void LoadTheme(string XmlPath)
|
public override void LoadTheme(string XmlPath)
|
||||||
@@ -47,7 +56,15 @@ namespace Vocaluxe.PartyModes
|
|||||||
{
|
{
|
||||||
case Keys.Back:
|
case Keys.Back:
|
||||||
case Keys.Escape:
|
case Keys.Escape:
|
||||||
FadeTo(EScreens.ScreenParty);
|
Back();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Keys.Enter:
|
||||||
|
if (Buttons[htButtons(ButtonBack)].Selected)
|
||||||
|
Back();
|
||||||
|
|
||||||
|
if (Buttons[htButtons(ButtonNext)].Selected)
|
||||||
|
Next();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -60,12 +77,16 @@ namespace Vocaluxe.PartyModes
|
|||||||
|
|
||||||
if (MouseEvent.LB && IsMouseOver(MouseEvent))
|
if (MouseEvent.LB && IsMouseOver(MouseEvent))
|
||||||
{
|
{
|
||||||
|
if (Buttons[htButtons(ButtonBack)].Selected)
|
||||||
|
Back();
|
||||||
|
|
||||||
|
if (Buttons[htButtons(ButtonNext)].Selected)
|
||||||
|
Next();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MouseEvent.RB)
|
if (MouseEvent.RB)
|
||||||
{
|
{
|
||||||
FadeTo(EScreens.ScreenParty);
|
Back();
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -91,5 +112,19 @@ namespace Vocaluxe.PartyModes
|
|||||||
{
|
{
|
||||||
base.OnClose();
|
base.OnClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Back()
|
||||||
|
{
|
||||||
|
FadeTo(EScreens.ScreenParty);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Next()
|
||||||
|
{
|
||||||
|
Data.ScreenConfig.NumPlayers = 4;
|
||||||
|
Data.ScreenConfig.NumPlayersAtOnce = 2;
|
||||||
|
Data.ScreenConfig.NumRounds = 8;
|
||||||
|
|
||||||
|
_PartyMode.DataFromScreen(_ThemeName, Data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -12,6 +12,11 @@ namespace Vocaluxe.PartyModes
|
|||||||
// Version number for theme files. Increment it, if you've changed something on the theme files!
|
// Version number for theme files. Increment it, if you've changed something on the theme files!
|
||||||
const int ScreenVersion = 1;
|
const int ScreenVersion = 1;
|
||||||
|
|
||||||
|
const string ButtonNext = "ButtonNext";
|
||||||
|
const string ButtonBack = "ButtonBack";
|
||||||
|
|
||||||
|
private DataFromScreen Data;
|
||||||
|
|
||||||
public PartyScreenChallengeNames()
|
public PartyScreenChallengeNames()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -21,7 +26,15 @@ namespace Vocaluxe.PartyModes
|
|||||||
base.Init();
|
base.Init();
|
||||||
|
|
||||||
_ThemeName = "PartyScreenChallengeNames";
|
_ThemeName = "PartyScreenChallengeNames";
|
||||||
|
_ThemeButtons = new string[] { ButtonNext, ButtonBack };
|
||||||
_ScreenVersion = ScreenVersion;
|
_ScreenVersion = ScreenVersion;
|
||||||
|
|
||||||
|
Data = new DataFromScreen();
|
||||||
|
FromScreenNames names = new FromScreenNames();
|
||||||
|
names.FadeToConfig = false;
|
||||||
|
names.FadeToMain = false;
|
||||||
|
names.ProfileIDs = new List<int>();
|
||||||
|
Data.ScreenNames = names;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void LoadTheme(string XmlPath)
|
public override void LoadTheme(string XmlPath)
|
||||||
@@ -43,7 +56,16 @@ namespace Vocaluxe.PartyModes
|
|||||||
{
|
{
|
||||||
case Keys.Back:
|
case Keys.Back:
|
||||||
case Keys.Escape:
|
case Keys.Escape:
|
||||||
FadeTo(EScreens.ScreenParty);
|
Back();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Keys.Enter:
|
||||||
|
if (Buttons[htButtons(ButtonBack)].Selected)
|
||||||
|
Back();
|
||||||
|
|
||||||
|
if (Buttons[htButtons(ButtonNext)].Selected)
|
||||||
|
Next();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -56,7 +78,11 @@ namespace Vocaluxe.PartyModes
|
|||||||
|
|
||||||
if (MouseEvent.LB && IsMouseOver(MouseEvent))
|
if (MouseEvent.LB && IsMouseOver(MouseEvent))
|
||||||
{
|
{
|
||||||
|
if (Buttons[htButtons(ButtonBack)].Selected)
|
||||||
|
Back();
|
||||||
|
|
||||||
|
if (Buttons[htButtons(ButtonNext)].Selected)
|
||||||
|
Next();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MouseEvent.RB)
|
if (MouseEvent.RB)
|
||||||
@@ -87,5 +113,19 @@ namespace Vocaluxe.PartyModes
|
|||||||
{
|
{
|
||||||
base.OnClose();
|
base.OnClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Back()
|
||||||
|
{
|
||||||
|
Data.ScreenNames.FadeToConfig = true;
|
||||||
|
Data.ScreenNames.FadeToMain = false;
|
||||||
|
_PartyMode.DataFromScreen(_ThemeName, Data);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Next()
|
||||||
|
{
|
||||||
|
Data.ScreenNames.FadeToConfig = false;
|
||||||
|
Data.ScreenNames.FadeToMain = true;
|
||||||
|
_PartyMode.DataFromScreen(_ThemeName, Data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -453,7 +453,16 @@ namespace Vocaluxe.Base
|
|||||||
public static void FadeTo(EScreens Screen)
|
public static void FadeTo(EScreens Screen)
|
||||||
{
|
{
|
||||||
if (Screen == EScreens.ScreenPartyDummy)
|
if (Screen == EScreens.ScreenPartyDummy)
|
||||||
_Screens[(int)EScreens.ScreenPartyDummy] = CParty.GetNextPartyScreen();
|
{
|
||||||
|
EScreens alt;
|
||||||
|
CMenu scr = CParty.GetNextPartyScreen(out alt);
|
||||||
|
if (scr == null)
|
||||||
|
{
|
||||||
|
_NextScreen = alt;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_Screens[(int)EScreens.ScreenPartyDummy] = scr;
|
||||||
|
}
|
||||||
|
|
||||||
_NextScreen = Screen;
|
_NextScreen = Screen;
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-10
@@ -131,18 +131,13 @@ namespace Vocaluxe.Base
|
|||||||
{
|
{
|
||||||
if (!_PartyModes.TryGetValue(PartyModeID, out _CurrentPartyMode))
|
if (!_PartyModes.TryGetValue(PartyModeID, out _CurrentPartyMode))
|
||||||
CLog.LogError("CParty: Can't find party mode ID: " + PartyModeID.ToString());
|
CLog.LogError("CParty: Can't find party mode ID: " + PartyModeID.ToString());
|
||||||
|
|
||||||
|
_CurrentPartyMode.PartyMode.Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CMenu GetNextPartyScreen()
|
public static CMenu GetNextPartyScreen(out EScreens AlternativeScreen)
|
||||||
{
|
{
|
||||||
CMenu NextScreen = _CurrentPartyMode.PartyMode.GetNextPartyScreen();
|
return _CurrentPartyMode.PartyMode.GetNextPartyScreen(out AlternativeScreen);
|
||||||
if (NextScreen != null)
|
|
||||||
return NextScreen;
|
|
||||||
|
|
||||||
NextScreen = new CScreenPartyDummy();
|
|
||||||
NextScreen.Initialize(CMain.Base);
|
|
||||||
NextScreen.LoadTheme(String.Empty);
|
|
||||||
return NextScreen;
|
|
||||||
}
|
}
|
||||||
#endregion public stuff
|
#endregion public stuff
|
||||||
|
|
||||||
@@ -290,7 +285,7 @@ namespace Vocaluxe.Base
|
|||||||
|
|
||||||
if (Screen != null)
|
if (Screen != null)
|
||||||
{
|
{
|
||||||
Screen.AssignPartyMode(pm.PartyMode);
|
Screen.AssingPartyMode(pm.PartyMode);
|
||||||
pm.PartyMode.AddScreen(Screen, screenfile);
|
pm.PartyMode.AddScreen(Screen, screenfile);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -25,11 +25,15 @@ namespace Vocaluxe.Menu
|
|||||||
return _PartyModeID;
|
return _PartyModeID;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AssignPartyMode(IPartyMode PartyMode)
|
public void AssingPartyMode(IPartyMode PartyMode)
|
||||||
{
|
{
|
||||||
_PartyMode = PartyMode;
|
_PartyMode = PartyMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public virtual void DataToScreen(Object Data)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
public sealed override void LoadTheme()
|
public sealed override void LoadTheme()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -49,7 +49,8 @@ namespace Vocaluxe.Menu
|
|||||||
void SetPartyModeID(int PartyModeID);
|
void SetPartyModeID(int PartyModeID);
|
||||||
int GetPartyModeID();
|
int GetPartyModeID();
|
||||||
|
|
||||||
void AssignPartyMode(IPartyMode PartyMode);
|
void AssingPartyMode(IPartyMode PartyMode);
|
||||||
|
void DataToScreen(Object Data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface IConfig
|
public interface IConfig
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ namespace Vocaluxe.PartyModes
|
|||||||
protected ScreenSongOptions _ScreenSongOptions;
|
protected ScreenSongOptions _ScreenSongOptions;
|
||||||
protected Dictionary<string, CMenuParty> _Screens;
|
protected Dictionary<string, CMenuParty> _Screens;
|
||||||
protected string _Folder;
|
protected string _Folder;
|
||||||
protected Delegate _Callback;
|
|
||||||
|
|
||||||
public CPartyMode()
|
public CPartyMode()
|
||||||
{
|
{
|
||||||
@@ -24,7 +23,7 @@ namespace Vocaluxe.PartyModes
|
|||||||
}
|
}
|
||||||
|
|
||||||
#region Implementation
|
#region Implementation
|
||||||
public virtual bool Init(string Folder)
|
public virtual bool Init()
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -39,13 +38,13 @@ namespace Vocaluxe.PartyModes
|
|||||||
_Screens.Add(ScreenName, Screen);
|
_Screens.Add(ScreenName, Screen);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetPartyModeCallback(Delegate Callback)
|
public virtual void DataFromScreen(string ScreenName, Object Data)
|
||||||
{
|
{
|
||||||
_Callback = Callback;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual CMenuParty GetNextPartyScreen()
|
public virtual CMenuParty GetNextPartyScreen(out EScreens AlternativeScreen)
|
||||||
{
|
{
|
||||||
|
AlternativeScreen = EScreens.ScreenMain;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -51,12 +51,12 @@ namespace Vocaluxe.PartyModes
|
|||||||
|
|
||||||
public interface IPartyMode
|
public interface IPartyMode
|
||||||
{
|
{
|
||||||
bool Init(string Folder);
|
bool Init();
|
||||||
void Initialize(Basic Base);
|
void Initialize(Basic Base);
|
||||||
void AddScreen(CMenuParty Screen, string ScreenName);
|
void AddScreen(CMenuParty Screen, string ScreenName);
|
||||||
void SetPartyModeCallback(Delegate Callback);
|
void DataFromScreen(string ScreenName, Object Data);
|
||||||
|
|
||||||
CMenuParty GetNextPartyScreen();
|
CMenuParty GetNextPartyScreen(out EScreens AlternativeScreen);
|
||||||
EScreens GetStartScreen();
|
EScreens GetStartScreen();
|
||||||
EScreens GetMainScreen();
|
EScreens GetMainScreen();
|
||||||
ScreenSongOptions GetScreenSongOptions();
|
ScreenSongOptions GetScreenSongOptions();
|
||||||
|
|||||||
Reference in new issue
Block a user