Many cleanups according to ReSharper suggestions (Mostly redundant code)
Minor Bug fixes
This commit is contained in:
1 parent
9aa81b7ba2
commit
dcbbc5caf3
96 files changed
+2702
-3322
No files matched your search
@@ -13,6 +13,7 @@
|
||||
<string name="TR_DEBUG_MAX_VOLUME">Max Volume</string>
|
||||
<string name="TR_DEBUG_SONGS">Loaded songs</string>
|
||||
<string name="TR_DEBUG_MOUSE">Mouse</string>
|
||||
<string name="TR_DEBUG_MEMORY">Memory usage</string>
|
||||
<string name="TR_GAMEMODE_NORMAL">Normal</string>
|
||||
<string name="TR_GAMEMODE_DUET">Duet</string>
|
||||
<string name="TR_GAMEMODE_MEDLEY">Medley</string>
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
<string name="TR_DEBUG_MAX_VOLUME">Max. Volume</string>
|
||||
<string name="TR_DEBUG_SONGS">Geladene Songs</string>
|
||||
<string name="TR_DEBUG_MOUSE">Maus</string>
|
||||
<string name="TR_DEBUG_MEMORY">Speicherverbrauch</string>
|
||||
<string name="TR_GAMEMODE_NORMAL">Normal</string>
|
||||
<string name="TR_GAMEMODE_DUET">Duett</string>
|
||||
<string name="TR_GAMEMODE_MEDLEY">Medley</string>
|
||||
|
||||
@@ -211,7 +211,7 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
|
||||
public override void DataFromScreen(string screenName, Object data)
|
||||
{
|
||||
SDataFromScreen dataFrom = new SDataFromScreen();
|
||||
SDataFromScreen dataFrom;
|
||||
switch (screenName)
|
||||
{
|
||||
case "PartyScreenChallengeConfig":
|
||||
@@ -371,10 +371,11 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
return _ScreenSongOptions;
|
||||
}
|
||||
|
||||
// ReSharper disable RedundantAssignment
|
||||
public override void OnSongChange(int songIndex, ref SScreenSongOptions screenSongOptions)
|
||||
// ReSharper restore RedundantAssignment
|
||||
{
|
||||
if (_ScreenSongOptions.Selection.SongIndex != -1)
|
||||
_ScreenSongOptions.Selection.SongIndex = -1;
|
||||
_ScreenSongOptions.Selection.SongIndex = -1;
|
||||
|
||||
if (_ScreenSongOptions.Selection.SelectNextRandomSong && songIndex != -1)
|
||||
{
|
||||
@@ -391,7 +392,9 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
screenSongOptions = _ScreenSongOptions;
|
||||
}
|
||||
|
||||
// ReSharper disable RedundantAssignment
|
||||
public override void OnCategoryChange(int categoryIndex, ref SScreenSongOptions screenSongOptions)
|
||||
// ReSharper restore RedundantAssignment
|
||||
{
|
||||
if (_GameData.CatSongIndices != null && categoryIndex != -1)
|
||||
{
|
||||
|
||||
@@ -60,11 +60,9 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
|
||||
public override void DataToScreen(object receivedData)
|
||||
{
|
||||
SDataToScreenConfig config = new SDataToScreenConfig();
|
||||
|
||||
try
|
||||
{
|
||||
config = (SDataToScreenConfig)receivedData;
|
||||
SDataToScreenConfig config = (SDataToScreenConfig)receivedData;
|
||||
_Data.ScreenConfig.NumPlayer = config.NumPlayer;
|
||||
_Data.ScreenConfig.NumPlayerAtOnce = config.NumPlayerAtOnce;
|
||||
_Data.ScreenConfig.NumRounds = config.NumRounds;
|
||||
@@ -92,10 +90,10 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
case Keys.Enter:
|
||||
_UpdateSlides();
|
||||
|
||||
if (Buttons[_ButtonBack].Selected)
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
_Back();
|
||||
|
||||
if (Buttons[_ButtonNext].Selected)
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
_Next();
|
||||
break;
|
||||
|
||||
@@ -115,13 +113,13 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
{
|
||||
base.HandleMouse(mouseEvent);
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
_UpdateSlides();
|
||||
if (Buttons[_ButtonBack].Selected)
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
_Back();
|
||||
|
||||
if (Buttons[_ButtonNext].Selected)
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
_Next();
|
||||
}
|
||||
|
||||
@@ -158,10 +156,10 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
private void _RebuildSlides()
|
||||
{
|
||||
// build num player slide (min player ... max player);
|
||||
SelectSlides[_SelectSlideNumPlayers].Clear();
|
||||
_SelectSlides[_SelectSlideNumPlayers].Clear();
|
||||
for (int i = _PartyMode.GetMinPlayer(); i <= _PartyMode.GetMaxPlayer(); i++)
|
||||
SelectSlides[_SelectSlideNumPlayers].AddValue(i.ToString());
|
||||
SelectSlides[_SelectSlideNumPlayers].Selection = _Data.ScreenConfig.NumPlayer - _PartyMode.GetMinPlayer();
|
||||
_SelectSlides[_SelectSlideNumPlayers].AddValue(i.ToString());
|
||||
_SelectSlides[_SelectSlideNumPlayers].Selection = _Data.ScreenConfig.NumPlayer - _PartyMode.GetMinPlayer();
|
||||
|
||||
_UpdateMicsAtOnce();
|
||||
_SetRoundSteps();
|
||||
@@ -172,9 +170,9 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
{
|
||||
int player = _Data.ScreenConfig.NumPlayer;
|
||||
int mics = _Data.ScreenConfig.NumPlayerAtOnce;
|
||||
_Data.ScreenConfig.NumPlayer = SelectSlides[_SelectSlideNumPlayers].Selection + _PartyMode.GetMinPlayer();
|
||||
_Data.ScreenConfig.NumPlayerAtOnce = SelectSlides[_SelectSlideNumMics].Selection + _PartyMode.GetMinPlayer();
|
||||
_Data.ScreenConfig.NumRounds = (SelectSlides[_SelectSlideNumRounds].Selection + 1) * _RoundSteps;
|
||||
_Data.ScreenConfig.NumPlayer = _SelectSlides[_SelectSlideNumPlayers].Selection + _PartyMode.GetMinPlayer();
|
||||
_Data.ScreenConfig.NumPlayerAtOnce = _SelectSlides[_SelectSlideNumMics].Selection + _PartyMode.GetMinPlayer();
|
||||
_Data.ScreenConfig.NumRounds = (_SelectSlides[_SelectSlideNumRounds].Selection + 1) * _RoundSteps;
|
||||
|
||||
_UpdateMicsAtOnce();
|
||||
_SetRoundSteps();
|
||||
@@ -201,19 +199,19 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
_Data.ScreenConfig.NumPlayerAtOnce = maxNum;
|
||||
|
||||
// build mics at once slide
|
||||
SelectSlides[_SelectSlideNumMics].Clear();
|
||||
_SelectSlides[_SelectSlideNumMics].Clear();
|
||||
for (int i = 1; i <= maxNum; i++)
|
||||
SelectSlides[_SelectSlideNumMics].AddValue(i.ToString());
|
||||
SelectSlides[_SelectSlideNumMics].Selection = _Data.ScreenConfig.NumPlayerAtOnce - _PartyMode.GetMinPlayer();
|
||||
_SelectSlides[_SelectSlideNumMics].AddValue(i.ToString());
|
||||
_SelectSlides[_SelectSlideNumMics].Selection = _Data.ScreenConfig.NumPlayerAtOnce - _PartyMode.GetMinPlayer();
|
||||
}
|
||||
|
||||
private void _UpdateSlideRounds()
|
||||
{
|
||||
// build num rounds slide
|
||||
SelectSlides[_SelectSlideNumRounds].Clear();
|
||||
_SelectSlides[_SelectSlideNumRounds].Clear();
|
||||
for (int i = _RoundSteps; i <= _MaxNumRounds; i += _RoundSteps)
|
||||
SelectSlides[_SelectSlideNumRounds].AddValue(i.ToString());
|
||||
SelectSlides[_SelectSlideNumRounds].Selection = _Data.ScreenConfig.NumRounds / _RoundSteps - 1;
|
||||
_SelectSlides[_SelectSlideNumRounds].AddValue(i.ToString());
|
||||
_SelectSlides[_SelectSlideNumRounds].Selection = _Data.ScreenConfig.NumRounds / _RoundSteps - 1;
|
||||
}
|
||||
|
||||
private void _SetRoundSteps()
|
||||
|
||||
@@ -130,20 +130,18 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
|
||||
for (int i = 0; i < _PartyMode.GetMaxPlayer(); i++)
|
||||
{
|
||||
_NextPlayerTexts.Add(GetNewText(Texts[_TextNextPlayer]));
|
||||
AddText(_NextPlayerTexts[_NextPlayerTexts.Count - 1]);
|
||||
_NextPlayerStatics.Add(GetNewStatic(Statics[_StaticNextPlayer]));
|
||||
AddStatic(_NextPlayerStatics[_NextPlayerStatics.Count - 1]);
|
||||
_NextPlayerTexts.Add(GetNewText(_Texts[_TextNextPlayer]));
|
||||
_AddText(_NextPlayerTexts[_NextPlayerTexts.Count - 1]);
|
||||
_NextPlayerStatics.Add(GetNewStatic(_Statics[_StaticNextPlayer]));
|
||||
_AddStatic(_NextPlayerStatics[_NextPlayerStatics.Count - 1]);
|
||||
}
|
||||
}
|
||||
|
||||
public override void DataToScreen(object receivedData)
|
||||
{
|
||||
SDataToScreenMain data = new SDataToScreenMain();
|
||||
|
||||
try
|
||||
{
|
||||
data = (SDataToScreenMain)receivedData;
|
||||
SDataToScreenMain data = (SDataToScreenMain)receivedData;
|
||||
_GameState = data;
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -177,26 +175,26 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
case Keys.Enter:
|
||||
if (!_ExitPopupVisible)
|
||||
{
|
||||
if (Buttons[_ButtonNextRound].Selected)
|
||||
if (_Buttons[_ButtonNextRound].Selected)
|
||||
_NextRound();
|
||||
if (Buttons[_ButtonBack].Selected && _GameState.CurrentRoundNr == 1)
|
||||
if (_Buttons[_ButtonBack].Selected && _GameState.CurrentRoundNr == 1)
|
||||
_Back();
|
||||
if (Buttons[_ButtonExit].Selected && _GameState.CurrentRoundNr > 1)
|
||||
if (_Buttons[_ButtonExit].Selected && _GameState.CurrentRoundNr > 1)
|
||||
_ShowPopup(true);
|
||||
if (Buttons[_ButtonPlayerScrollUp].Selected)
|
||||
if (_Buttons[_ButtonPlayerScrollUp].Selected)
|
||||
_ScrollPlayerTable(-1);
|
||||
if (Buttons[_ButtonPlayerScrollDown].Selected)
|
||||
if (_Buttons[_ButtonPlayerScrollDown].Selected)
|
||||
_ScrollPlayerTable(1);
|
||||
if (Buttons[_ButtonRoundsScrollUp].Selected)
|
||||
if (_Buttons[_ButtonRoundsScrollUp].Selected)
|
||||
_ScrollRoundsTable(-1);
|
||||
if (Buttons[_ButtonRoundsScrollDown].Selected)
|
||||
if (_Buttons[_ButtonRoundsScrollDown].Selected)
|
||||
_ScrollRoundsTable(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Buttons[_ButtonPopupYes].Selected)
|
||||
if (_Buttons[_ButtonPopupYes].Selected)
|
||||
_EndParty();
|
||||
if (Buttons[_ButtonPopupNo].Selected)
|
||||
if (_Buttons[_ButtonPopupNo].Selected)
|
||||
_ShowPopup(false);
|
||||
}
|
||||
break;
|
||||
@@ -209,30 +207,30 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
{
|
||||
base.HandleMouse(mouseEvent);
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
if (!_ExitPopupVisible)
|
||||
{
|
||||
if (Buttons[_ButtonNextRound].Selected)
|
||||
if (_Buttons[_ButtonNextRound].Selected)
|
||||
_NextRound();
|
||||
if (Buttons[_ButtonBack].Selected && _GameState.CurrentRoundNr == 1)
|
||||
if (_Buttons[_ButtonBack].Selected && _GameState.CurrentRoundNr == 1)
|
||||
_Back();
|
||||
if (Buttons[_ButtonExit].Selected && _GameState.CurrentRoundNr > 1)
|
||||
if (_Buttons[_ButtonExit].Selected && _GameState.CurrentRoundNr > 1)
|
||||
_ShowPopup(true);
|
||||
if (Buttons[_ButtonPlayerScrollUp].Selected)
|
||||
if (_Buttons[_ButtonPlayerScrollUp].Selected)
|
||||
_ScrollPlayerTable(-1);
|
||||
if (Buttons[_ButtonPlayerScrollDown].Selected)
|
||||
if (_Buttons[_ButtonPlayerScrollDown].Selected)
|
||||
_ScrollPlayerTable(1);
|
||||
if (Buttons[_ButtonRoundsScrollUp].Selected)
|
||||
if (_Buttons[_ButtonRoundsScrollUp].Selected)
|
||||
_ScrollRoundsTable(-1);
|
||||
if (Buttons[_ButtonRoundsScrollDown].Selected)
|
||||
if (_Buttons[_ButtonRoundsScrollDown].Selected)
|
||||
_ScrollRoundsTable(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Buttons[_ButtonPopupYes].Selected)
|
||||
if (_Buttons[_ButtonPopupYes].Selected)
|
||||
_EndParty();
|
||||
if (Buttons[_ButtonPopupNo].Selected)
|
||||
if (_Buttons[_ButtonPopupNo].Selected)
|
||||
_ShowPopup(false);
|
||||
}
|
||||
}
|
||||
@@ -279,29 +277,29 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
|
||||
if (_GameState.CurrentRoundNr == 1)
|
||||
{
|
||||
Buttons[_ButtonBack].Visible = true;
|
||||
Buttons[_ButtonExit].Visible = false;
|
||||
_Buttons[_ButtonBack].Visible = true;
|
||||
_Buttons[_ButtonExit].Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Buttons[_ButtonBack].Visible = false;
|
||||
Buttons[_ButtonExit].Visible = true;
|
||||
_Buttons[_ButtonBack].Visible = false;
|
||||
_Buttons[_ButtonExit].Visible = true;
|
||||
}
|
||||
|
||||
if (_GameState.CurrentRoundNr <= _GameState.Combs.Count)
|
||||
{
|
||||
Buttons[_ButtonNextRound].Visible = true;
|
||||
Texts[_TextFinishMessage].Visible = false;
|
||||
Texts[_TextFinishPlayerWin].Visible = false;
|
||||
SetInteractionToButton(Buttons[_ButtonNextRound]);
|
||||
_Buttons[_ButtonNextRound].Visible = true;
|
||||
_Texts[_TextFinishMessage].Visible = false;
|
||||
_Texts[_TextFinishPlayerWin].Visible = false;
|
||||
_SetInteractionToButton(_Buttons[_ButtonNextRound]);
|
||||
}
|
||||
else
|
||||
{
|
||||
Buttons[_ButtonNextRound].Visible = false;
|
||||
Texts[_TextFinishMessage].Visible = true;
|
||||
Texts[_TextFinishPlayerWin].Visible = true;
|
||||
Texts[_TextFinishPlayerWin].Text = _GetPlayerWinString();
|
||||
SetInteractionToButton(Buttons[_ButtonExit]);
|
||||
_Buttons[_ButtonNextRound].Visible = false;
|
||||
_Texts[_TextFinishMessage].Visible = true;
|
||||
_Texts[_TextFinishPlayerWin].Visible = true;
|
||||
_Texts[_TextFinishPlayerWin].Text = _GetPlayerWinString();
|
||||
_SetInteractionToButton(_Buttons[_ButtonExit]);
|
||||
}
|
||||
|
||||
_ShowPopup(false);
|
||||
@@ -334,13 +332,13 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
{
|
||||
_ExitPopupVisible = visible;
|
||||
|
||||
Statics[_StaticPopupBG].Visible = _ExitPopupVisible;
|
||||
Texts[_TextPopupReallyExit].Visible = _ExitPopupVisible;
|
||||
Buttons[_ButtonPopupYes].Visible = _ExitPopupVisible;
|
||||
Buttons[_ButtonPopupNo].Visible = _ExitPopupVisible;
|
||||
_Statics[_StaticPopupBG].Visible = _ExitPopupVisible;
|
||||
_Texts[_TextPopupReallyExit].Visible = _ExitPopupVisible;
|
||||
_Buttons[_ButtonPopupYes].Visible = _ExitPopupVisible;
|
||||
_Buttons[_ButtonPopupNo].Visible = _ExitPopupVisible;
|
||||
|
||||
if (_ExitPopupVisible)
|
||||
SetInteractionToButton(Buttons[_ButtonPopupNo]);
|
||||
_SetInteractionToButton(_Buttons[_ButtonPopupNo]);
|
||||
}
|
||||
|
||||
private void _Back()
|
||||
@@ -352,7 +350,7 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
|
||||
private void _UpdateNextPlayerPositions()
|
||||
{
|
||||
float x = CBase.Settings.GetRenderW() / 2 - ((_GameState.NumPlayerAtOnce * Statics[_StaticNextPlayer].Rect.W) + ((_GameState.NumPlayerAtOnce - 1) * 15)) / 2;
|
||||
float x = CBase.Settings.GetRenderW() / 2 - ((_GameState.NumPlayerAtOnce * _Statics[_StaticNextPlayer].Rect.W) + ((_GameState.NumPlayerAtOnce - 1) * 15)) / 2;
|
||||
float staticY = 590;
|
||||
float textY = 550;
|
||||
for (int i = 0; i < _GameState.NumPlayerAtOnce; i++)
|
||||
@@ -362,11 +360,11 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
_NextPlayerStatics[i].Rect.Y = staticY;
|
||||
_NextPlayerStatics[i].Visible = true;
|
||||
//text
|
||||
_NextPlayerTexts[i].X = x + Statics[_StaticNextPlayer].Rect.W / 2;
|
||||
_NextPlayerTexts[i].X = x + _Statics[_StaticNextPlayer].Rect.W / 2;
|
||||
_NextPlayerTexts[i].Y = textY;
|
||||
_NextPlayerTexts[i].Visible = true;
|
||||
|
||||
x += Statics[_StaticNextPlayer].Rect.W + 15;
|
||||
x += _Statics[_StaticNextPlayer].Rect.W + 15;
|
||||
}
|
||||
for (int i = _GameState.NumPlayerAtOnce; i < _PartyMode.GetMaxPlayer(); i++)
|
||||
{
|
||||
@@ -379,7 +377,7 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
{
|
||||
if (_GameState.CurrentRoundNr <= _GameState.Combs.Count)
|
||||
{
|
||||
Texts[_TextNextPlayerMessage].Visible = true;
|
||||
_Texts[_TextNextPlayerMessage].Visible = true;
|
||||
SProfile[] profiles = CBase.Profiles.GetProfiles();
|
||||
for (int i = 0; i < _GameState.NumPlayerAtOnce; i++)
|
||||
{
|
||||
@@ -391,7 +389,7 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
}
|
||||
else
|
||||
{
|
||||
Texts[_TextNextPlayerMessage].Visible = false;
|
||||
_Texts[_TextNextPlayerMessage].Visible = false;
|
||||
for (int i = 0; i < _GameState.NumPlayerAtOnce; i++)
|
||||
{
|
||||
_NextPlayerStatics[i].Visible = false;
|
||||
@@ -415,20 +413,20 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
for (int round = 0; round < _RoundsTable.Count; round++)
|
||||
{
|
||||
//Round-number
|
||||
CText text = GetNewText(Texts[_TextRoundNumber]);
|
||||
AddText(text);
|
||||
CText text = GetNewText(_Texts[_TextRoundNumber]);
|
||||
_AddText(text);
|
||||
_RoundsTable[round].Number = text;
|
||||
for (int row = 0; row < 2; row++)
|
||||
{
|
||||
for (int column = 0; column < 3; column++)
|
||||
{
|
||||
//Player
|
||||
text = GetNewText(Texts[_TextRoundPlayer]);
|
||||
AddText(text);
|
||||
text = GetNewText(_Texts[_TextRoundPlayer]);
|
||||
_AddText(text);
|
||||
_RoundsTable[round].TextPlayer.Add(text);
|
||||
//Score
|
||||
text = GetNewText(Texts[_TextRoundScore]);
|
||||
AddText(text);
|
||||
text = GetNewText(_Texts[_TextRoundScore]);
|
||||
_AddText(text);
|
||||
_RoundsTable[round].TextScores.Add(text);
|
||||
}
|
||||
}
|
||||
@@ -448,14 +446,14 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
if (_NumRoundsVisible > _GameState.Combs.Count)
|
||||
_NumRoundsVisible = _GameState.Combs.Count;
|
||||
|
||||
float numberX = Texts[_TextRoundNumber].X;
|
||||
float numberY = Texts[_TextRoundNumber].Y;
|
||||
float numberX = _Texts[_TextRoundNumber].X;
|
||||
float numberY = _Texts[_TextRoundNumber].Y;
|
||||
|
||||
_RoundsTableScrollArea.X = numberX;
|
||||
_RoundsTableScrollArea.Y = numberY;
|
||||
_RoundsTableScrollArea.W = CBase.Settings.GetRenderW() - Texts[_TextRoundNumber].X - 20;
|
||||
_RoundsTableScrollArea.W = CBase.Settings.GetRenderW() - _Texts[_TextRoundNumber].X - 20;
|
||||
|
||||
float delta = Texts[_TextRoundNumber].Height;
|
||||
float delta = _Texts[_TextRoundNumber].Height;
|
||||
|
||||
//Update statics and texts for rounds
|
||||
for (int round = 0; round < _RoundsTable.Count; round++)
|
||||
@@ -476,9 +474,9 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
for (int column = row * numPlayerInOneRow; column < num; column++)
|
||||
{
|
||||
//Player
|
||||
float x = numberX + 15 + (CBase.Settings.GetRenderW() - Texts[_TextRoundNumber].X - 20) / numPlayerInThisRow * (column - row * numPlayerInOneRow) +
|
||||
((CBase.Settings.GetRenderW() - Texts[_TextRoundNumber].X - 20) / numPlayerInThisRow) / 2;
|
||||
float maxw = ((CBase.Settings.GetRenderW() - Texts[_TextRoundNumber].X - 20) / numPlayerInThisRow) / 2 - 5;
|
||||
float x = numberX + 15 + (CBase.Settings.GetRenderW() - _Texts[_TextRoundNumber].X - 20) / numPlayerInThisRow * (column - row * numPlayerInOneRow) +
|
||||
((CBase.Settings.GetRenderW() - _Texts[_TextRoundNumber].X - 20) / numPlayerInThisRow) / 2;
|
||||
float maxw = ((CBase.Settings.GetRenderW() - _Texts[_TextRoundNumber].X - 20) / numPlayerInThisRow) / 2 - 5;
|
||||
_RoundsTable[round].TextPlayer[column].X = x;
|
||||
_RoundsTable[round].TextPlayer[column].Y = numberY;
|
||||
_RoundsTable[round].TextPlayer[column].MaxWidth = maxw;
|
||||
@@ -507,7 +505,7 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
_RoundsTable[i].Number.Visible = true;
|
||||
_RoundsTable[i].TextPlayer[p].Visible = true;
|
||||
_RoundsTable[i].TextScores[p].Visible = true;
|
||||
_RoundsTable[i].Number.Text = (i + 1 + _RoundsTableOffset).ToString() + ")";
|
||||
_RoundsTable[i].Number.Text = (i + 1 + _RoundsTableOffset) + ")";
|
||||
int pID = _GameState.ProfileIDs[_GameState.Combs[i + _RoundsTableOffset].Player[p]];
|
||||
_RoundsTable[i].TextPlayer[p].Text = profile[pID].PlayerName;
|
||||
if ((_GameState.CurrentRoundNr - 1) > i + _RoundsTableOffset)
|
||||
@@ -532,19 +530,19 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
}
|
||||
}
|
||||
|
||||
Buttons[_ButtonRoundsScrollUp].Visible = _RoundsTableOffset > 0;
|
||||
Buttons[_ButtonRoundsScrollDown].Visible = _GameState.Combs.Count - _NumRoundsVisible - _RoundsTableOffset > 0;
|
||||
_Buttons[_ButtonRoundsScrollUp].Visible = _RoundsTableOffset > 0;
|
||||
_Buttons[_ButtonRoundsScrollDown].Visible = _GameState.Combs.Count - _NumRoundsVisible - _RoundsTableOffset > 0;
|
||||
}
|
||||
|
||||
private void _BuildPlayerTable()
|
||||
{
|
||||
_PlayerTableScrollArea = new SRectF();
|
||||
_PlayerTableScrollArea.X = Texts[_TextPosition].X;
|
||||
_PlayerTableScrollArea.Y = Texts[_TextPosition].Y;
|
||||
_PlayerTableScrollArea.W = Texts[_TextGamePoints].X - Texts[_TextPosition].X;
|
||||
_PlayerTableScrollArea.X = _Texts[_TextPosition].X;
|
||||
_PlayerTableScrollArea.Y = _Texts[_TextPosition].Y;
|
||||
_PlayerTableScrollArea.W = _Texts[_TextGamePoints].X - _Texts[_TextPosition].X;
|
||||
|
||||
_PlayerTable = new List<STableRow>();
|
||||
float delta = Texts[_TextPosition].Height * 1.2f;
|
||||
float delta = _Texts[_TextPosition].Height * 1.2f;
|
||||
|
||||
float h = 0;
|
||||
|
||||
@@ -552,12 +550,12 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
{
|
||||
STableRow row = new STableRow();
|
||||
|
||||
row.Pos = GetNewText(Texts[_TextPosition]);
|
||||
row.Name = GetNewText(Texts[_TextPlayerName]);
|
||||
row.Rounds = GetNewText(Texts[_TextNumPlayed]);
|
||||
row.Won = GetNewText(Texts[_TextWon]);
|
||||
row.SingPoints = GetNewText(Texts[_TextSingPoints]);
|
||||
row.GamePoints = GetNewText(Texts[_TextGamePoints]);
|
||||
row.Pos = GetNewText(_Texts[_TextPosition]);
|
||||
row.Name = GetNewText(_Texts[_TextPlayerName]);
|
||||
row.Rounds = GetNewText(_Texts[_TextNumPlayed]);
|
||||
row.Won = GetNewText(_Texts[_TextWon]);
|
||||
row.SingPoints = GetNewText(_Texts[_TextSingPoints]);
|
||||
row.GamePoints = GetNewText(_Texts[_TextGamePoints]);
|
||||
|
||||
row.Pos.Y += delta * (i + 1);
|
||||
row.Name.Y += delta * (i + 1);
|
||||
@@ -566,7 +564,7 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
row.SingPoints.Y += delta * (i + 1);
|
||||
row.GamePoints.Y += delta * (i + 1);
|
||||
|
||||
row.Pos.Text = (i + 1).ToString() + ".";
|
||||
row.Pos.Text = (i + 1) + ".";
|
||||
|
||||
row.Pos.Visible = false;
|
||||
row.Name.Visible = false;
|
||||
@@ -575,12 +573,12 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
row.SingPoints.Visible = false;
|
||||
row.GamePoints.Visible = false;
|
||||
|
||||
AddText(row.Pos);
|
||||
AddText(row.Name);
|
||||
AddText(row.Rounds);
|
||||
AddText(row.Won);
|
||||
AddText(row.SingPoints);
|
||||
AddText(row.GamePoints);
|
||||
_AddText(row.Pos);
|
||||
_AddText(row.Name);
|
||||
_AddText(row.Rounds);
|
||||
_AddText(row.Won);
|
||||
_AddText(row.SingPoints);
|
||||
_AddText(row.GamePoints);
|
||||
|
||||
_PlayerTable.Add(row);
|
||||
|
||||
@@ -606,7 +604,7 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
row.SingPoints.Visible = true;
|
||||
row.GamePoints.Visible = true;
|
||||
|
||||
row.Pos.Text = _GameState.ResultTable[i + _PlayerTableOffset].Position.ToString() + ".";
|
||||
row.Pos.Text = _GameState.ResultTable[i + _PlayerTableOffset].Position + ".";
|
||||
row.Name.Text = profiles[_GameState.ResultTable[i + _PlayerTableOffset].PlayerID].PlayerName;
|
||||
row.Rounds.Text = _GameState.ResultTable[i + _PlayerTableOffset].NumRounds.ToString();
|
||||
row.Won.Text = _GameState.ResultTable[i + _PlayerTableOffset].NumWon.ToString();
|
||||
@@ -624,8 +622,8 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
}
|
||||
}
|
||||
|
||||
Buttons[_ButtonPlayerScrollUp].Visible = _PlayerTableOffset > 0;
|
||||
Buttons[_ButtonPlayerScrollDown].Visible = _GameState.ProfileIDs.Count - _NumPlayerVisible - _PlayerTableOffset > 0;
|
||||
_Buttons[_ButtonPlayerScrollUp].Visible = _PlayerTableOffset > 0;
|
||||
_Buttons[_ButtonPlayerScrollDown].Visible = _GameState.ProfileIDs.Count - _NumPlayerVisible - _PlayerTableOffset > 0;
|
||||
}
|
||||
|
||||
private void _ScrollPlayerTable(int offset)
|
||||
|
||||
@@ -19,12 +19,15 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using VocaluxeLib.Menu;
|
||||
|
||||
namespace VocaluxeLib.PartyModes.Challenge
|
||||
{
|
||||
// ReSharper disable UnusedMember.Global
|
||||
public class CPartyScreenChallengeNames : CMenuParty
|
||||
// ReSharper restore UnusedMember.Global
|
||||
{
|
||||
// Version number for theme files. Increment it, if you've changed something on the theme files!
|
||||
protected override int _ScreenVersion
|
||||
@@ -41,7 +44,6 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
private List<CButton> _PlayerDestinationButtons;
|
||||
//PlayerDestinationButtons-Option
|
||||
private const int _PlayerDestinationButtonsNumH = 3;
|
||||
private const int _PlayerDestinationButtonsNumW = 4;
|
||||
private const int _PlayerDestinationButtonsFirstX = 900;
|
||||
private const int _PlayerDestinationButtonsFirstY = 105;
|
||||
private const int _PlayerDestinationButtonsSpaceH = 15;
|
||||
@@ -54,7 +56,7 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
private const int _PlayerChooseButtonsFirstY = 105;
|
||||
private const int _PlayerChooseButtonsSpaceH = 15;
|
||||
private const int _PlayerChooseButtonsSpaceW = 25;
|
||||
private int _PlayerChooseButtonsOffset = 0;
|
||||
private const int _PlayerChooseButtonsOffset = 0;
|
||||
|
||||
private CStatic _ChooseAvatarStatic;
|
||||
private bool _SelectingMouseActive;
|
||||
@@ -84,27 +86,19 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
|
||||
_Data.ScreenNames.ProfileIDs = new List<int>();
|
||||
|
||||
List<string> buttons = new List<string>();
|
||||
_ThemeButtons = new string[] {_ButtonBack, _ButtonNext, _ButtonPlayerDestination, _ButtonPlayerChoose};
|
||||
|
||||
_Data = new SDataFromScreen();
|
||||
SFromScreenNames names = new SFromScreenNames();
|
||||
names.FadeToConfig = false;
|
||||
names.FadeToMain = false;
|
||||
names.ProfileIDs = new List<int>();
|
||||
SFromScreenNames names = new SFromScreenNames {FadeToConfig = false, FadeToMain = false, ProfileIDs = new List<int>()};
|
||||
_Data.ScreenNames = names;
|
||||
}
|
||||
|
||||
public override void DataToScreen(object receivedData)
|
||||
{
|
||||
SDataToScreenNames config = new SDataToScreenNames();
|
||||
|
||||
try
|
||||
{
|
||||
config = (SDataToScreenNames)receivedData;
|
||||
_Data.ScreenNames.ProfileIDs = config.ProfileIDs;
|
||||
if (_Data.ScreenNames.ProfileIDs == null)
|
||||
_Data.ScreenNames.ProfileIDs = new List<int>();
|
||||
SDataToScreenNames config = (SDataToScreenNames)receivedData;
|
||||
_Data.ScreenNames.ProfileIDs = config.ProfileIDs ?? new List<int>();
|
||||
|
||||
_NumPlayer = config.NumPlayer;
|
||||
|
||||
@@ -132,10 +126,10 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
if (Buttons[_ButtonBack].Selected)
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
_Back();
|
||||
|
||||
if (Buttons[_ButtonNext].Selected)
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
_Next();
|
||||
|
||||
if (!_OnAdd())
|
||||
@@ -237,12 +231,12 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
_ChooseAvatarStatic.Visible = false;
|
||||
}
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
if (Buttons[_ButtonBack].Selected)
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
_Back();
|
||||
|
||||
if (Buttons[_ButtonNext].Selected)
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
_Next();
|
||||
|
||||
if (!_OnAdd())
|
||||
@@ -287,13 +281,13 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
|
||||
private void _AddButtonPlayerDestination()
|
||||
{
|
||||
Buttons[_ButtonPlayerDestination].Visible = false;
|
||||
_Buttons[_ButtonPlayerDestination].Visible = false;
|
||||
_PlayerDestinationButtons = new List<CButton>();
|
||||
int row = 0;
|
||||
int column = 0;
|
||||
for (int i = 1; i <= _PartyMode.GetMaxPlayer(); i++)
|
||||
{
|
||||
CButton b = GetNewButton(Buttons[_ButtonPlayerDestination]);
|
||||
CButton b = GetNewButton(_Buttons[_ButtonPlayerDestination]);
|
||||
b.Rect.X = _PlayerDestinationButtonsFirstX + column * (b.Rect.W + _PlayerDestinationButtonsSpaceH);
|
||||
b.Rect.Y = _PlayerDestinationButtonsFirstY + row * (b.Rect.H + _PlayerDestinationButtonsSpaceW);
|
||||
_PlayerDestinationButtons.Add(b);
|
||||
@@ -305,24 +299,22 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
}
|
||||
b.Visible = true;
|
||||
b.Enabled = false;
|
||||
AddButton(b);
|
||||
_AddButton(b);
|
||||
}
|
||||
}
|
||||
|
||||
private void _AddButtonPlayerChoose()
|
||||
{
|
||||
Buttons[_ButtonPlayerChoose].Visible = false;
|
||||
_Buttons[_ButtonPlayerChoose].Visible = false;
|
||||
_PlayerChooseButtons = new List<CPlayerChooseButton>();
|
||||
int row = 0;
|
||||
int column = 0;
|
||||
for (int i = 1; i <= _PlayerChooseButtonsNumH * _PlayerChooseButtonsNumW; i++)
|
||||
{
|
||||
CButton b = GetNewButton(Buttons[_ButtonPlayerChoose]);
|
||||
CButton b = GetNewButton(_Buttons[_ButtonPlayerChoose]);
|
||||
b.Rect.X = _PlayerChooseButtonsFirstX + column * (b.Rect.W + _PlayerChooseButtonsSpaceH);
|
||||
b.Rect.Y = _PlayerChooseButtonsFirstY + row * (b.Rect.H + _PlayerChooseButtonsSpaceW);
|
||||
CPlayerChooseButton pcb = new CPlayerChooseButton();
|
||||
pcb.Button = b;
|
||||
pcb.ProfileID = -1;
|
||||
CPlayerChooseButton pcb = new CPlayerChooseButton {Button = b, ProfileID = -1};
|
||||
_PlayerChooseButtons.Add(pcb);
|
||||
column++;
|
||||
if (column >= _PlayerChooseButtonsNumH)
|
||||
@@ -332,7 +324,7 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
}
|
||||
b.Visible = true;
|
||||
b.Enabled = false;
|
||||
AddButton(b);
|
||||
_AddButton(b);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -348,7 +340,7 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
|
||||
private void _UpdateButtonPlayerChoose(int offset)
|
||||
{
|
||||
int numButtonPlayerChoose = _PlayerChooseButtonsNumW * _PlayerChooseButtonsNumH;
|
||||
const int numButtonPlayerChoose = _PlayerChooseButtonsNumW * _PlayerChooseButtonsNumH;
|
||||
if (offset < 0)
|
||||
offset = 0;
|
||||
|
||||
@@ -372,10 +364,10 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
{
|
||||
_PlayerChooseButtons[i].ProfileID = -1;
|
||||
_PlayerChooseButtons[i].Button.Text.Text = String.Empty;
|
||||
_PlayerChooseButtons[i].Button.Texture = Buttons[_ButtonPlayerChoose].Texture;
|
||||
_PlayerChooseButtons[i].Button.SelTexture = Buttons[_ButtonPlayerChoose].SelTexture;
|
||||
_PlayerChooseButtons[i].Button.Color = Buttons[_ButtonPlayerChoose].Color;
|
||||
_PlayerChooseButtons[i].Button.SelColor = Buttons[_ButtonPlayerChoose].SelColor;
|
||||
_PlayerChooseButtons[i].Button.Texture = _Buttons[_ButtonPlayerChoose].Texture;
|
||||
_PlayerChooseButtons[i].Button.SelTexture = _Buttons[_ButtonPlayerChoose].SelTexture;
|
||||
_PlayerChooseButtons[i].Button.Color = _Buttons[_ButtonPlayerChoose].Color;
|
||||
_PlayerChooseButtons[i].Button.SelColor = _Buttons[_ButtonPlayerChoose].SelColor;
|
||||
_PlayerChooseButtons[i].Button.Enabled = false;
|
||||
}
|
||||
}
|
||||
@@ -391,17 +383,7 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
//Show profile only if active
|
||||
if (CBase.Profiles.GetProfiles()[i].Active == EOffOn.TR_CONFIG_ON)
|
||||
{
|
||||
visible = true;
|
||||
|
||||
for (int p = 0; p < _Data.ScreenNames.ProfileIDs.Count; p++)
|
||||
{
|
||||
//Don't show profile if is selected
|
||||
if (_Data.ScreenNames.ProfileIDs[p] == i)
|
||||
{
|
||||
visible = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
visible = _Data.ScreenNames.ProfileIDs.All(profileID => profileID != i);
|
||||
}
|
||||
if (visible)
|
||||
_PlayerChooseButtonsVisibleProfiles.Add(i);
|
||||
@@ -439,10 +421,10 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
}
|
||||
else
|
||||
{
|
||||
_PlayerDestinationButtons[i].Color = Buttons[_ButtonPlayerDestination].Color;
|
||||
_PlayerDestinationButtons[i].SelColor = Buttons[_ButtonPlayerDestination].SelColor;
|
||||
_PlayerDestinationButtons[i].Texture = Buttons[_ButtonPlayerDestination].Texture;
|
||||
_PlayerDestinationButtons[i].SelTexture = Buttons[_ButtonPlayerDestination].SelTexture;
|
||||
_PlayerDestinationButtons[i].Color = _Buttons[_ButtonPlayerDestination].Color;
|
||||
_PlayerDestinationButtons[i].SelColor = _Buttons[_ButtonPlayerDestination].SelColor;
|
||||
_PlayerDestinationButtons[i].Texture = _Buttons[_ButtonPlayerDestination].Texture;
|
||||
_PlayerDestinationButtons[i].SelTexture = _Buttons[_ButtonPlayerDestination].SelTexture;
|
||||
_PlayerDestinationButtons[i].Text.Text = String.Empty;
|
||||
_PlayerDestinationButtons[i].Enabled = false;
|
||||
}
|
||||
@@ -453,59 +435,52 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
{
|
||||
if (_Data.ScreenNames.ProfileIDs.Count == _NumPlayer)
|
||||
{
|
||||
Buttons[_ButtonNext].Visible = true;
|
||||
SetInteractionToButton(Buttons[_ButtonNext]);
|
||||
_Buttons[_ButtonNext].Visible = true;
|
||||
_SetInteractionToButton(_Buttons[_ButtonNext]);
|
||||
}
|
||||
else
|
||||
Buttons[_ButtonNext].Visible = false;
|
||||
_Buttons[_ButtonNext].Visible = false;
|
||||
}
|
||||
|
||||
private bool _OnAdd()
|
||||
{
|
||||
for (int i = 0; i < _PlayerChooseButtons.Count; i++)
|
||||
foreach (CPlayerChooseButton button in _PlayerChooseButtons)
|
||||
{
|
||||
if (_PlayerChooseButtons[i].Button.Selected && _PlayerChooseButtons[i].ProfileID != -1)
|
||||
{
|
||||
if (_Data.ScreenNames.ProfileIDs.Count < _NumPlayer)
|
||||
{
|
||||
_Data.ScreenNames.ProfileIDs.Add(_PlayerChooseButtons[i].ProfileID);
|
||||
int added = _Data.ScreenNames.ProfileIDs.Count - 1;
|
||||
_UpdateButtonNext();
|
||||
//Update texture and name
|
||||
_PlayerDestinationButtons[added].Color = new SColorF(1, 1, 1, 0.6f);
|
||||
_PlayerDestinationButtons[added].SelColor = new SColorF(1, 1, 1, 1);
|
||||
_PlayerDestinationButtons[added].Texture = CBase.Profiles.GetProfiles()[_PlayerChooseButtons[i].ProfileID].Avatar.Texture;
|
||||
_PlayerDestinationButtons[added].SelTexture = CBase.Profiles.GetProfiles()[_PlayerChooseButtons[i].ProfileID].Avatar.Texture;
|
||||
_PlayerDestinationButtons[added].Text.Text = CBase.Profiles.GetProfiles()[_PlayerChooseButtons[i].ProfileID].PlayerName;
|
||||
_PlayerDestinationButtons[added].Enabled = true;
|
||||
//Update Tiles-List
|
||||
_UpdateButtonPlayerChoose();
|
||||
CheckInteraction();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (!button.Button.Selected || button.ProfileID == -1 || _Data.ScreenNames.ProfileIDs.Count >= _NumPlayer)
|
||||
continue;
|
||||
_Data.ScreenNames.ProfileIDs.Add(button.ProfileID);
|
||||
int added = _Data.ScreenNames.ProfileIDs.Count - 1;
|
||||
_UpdateButtonNext();
|
||||
//Update texture and name
|
||||
_PlayerDestinationButtons[added].Color = new SColorF(1, 1, 1, 0.6f);
|
||||
_PlayerDestinationButtons[added].SelColor = new SColorF(1, 1, 1, 1);
|
||||
_PlayerDestinationButtons[added].Texture = CBase.Profiles.GetProfiles()[button.ProfileID].Avatar.Texture;
|
||||
_PlayerDestinationButtons[added].SelTexture = CBase.Profiles.GetProfiles()[button.ProfileID].Avatar.Texture;
|
||||
_PlayerDestinationButtons[added].Text.Text = CBase.Profiles.GetProfiles()[button.ProfileID].PlayerName;
|
||||
_PlayerDestinationButtons[added].Enabled = true;
|
||||
//Update Tiles-List
|
||||
_UpdateButtonPlayerChoose();
|
||||
_CheckInteraction();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool _OnRemove()
|
||||
private void _OnRemove()
|
||||
{
|
||||
for (int i = 0; i < _PlayerDestinationButtons.Count; i++)
|
||||
{
|
||||
if (_PlayerDestinationButtons[i].Selected)
|
||||
{
|
||||
if ((i + 1) <= _Data.ScreenNames.ProfileIDs.Count)
|
||||
{
|
||||
_Data.ScreenNames.ProfileIDs.RemoveAt(i);
|
||||
_UpdateButtonNext();
|
||||
_UpdateButtonPlayerDestination();
|
||||
_UpdateButtonPlayerChoose();
|
||||
CheckInteraction();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (!_PlayerDestinationButtons[i].Selected)
|
||||
continue;
|
||||
if ((i + 1) > _Data.ScreenNames.ProfileIDs.Count)
|
||||
continue;
|
||||
_Data.ScreenNames.ProfileIDs.RemoveAt(i);
|
||||
_UpdateButtonNext();
|
||||
_UpdateButtonPlayerDestination();
|
||||
_UpdateButtonPlayerChoose();
|
||||
_CheckInteraction();
|
||||
return;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void _Back()
|
||||
|
||||
@@ -216,7 +216,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
|
||||
public override void DataFromScreen(string screenName, Object data)
|
||||
{
|
||||
SDataFromScreen dataFrom = new SDataFromScreen();
|
||||
SDataFromScreen dataFrom;
|
||||
switch (screenName)
|
||||
{
|
||||
case "PartyScreenChallengeMedleyConfig":
|
||||
@@ -376,10 +376,11 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
return _ScreenSongOptions;
|
||||
}
|
||||
|
||||
// ReSharper disable RedundantAssignment
|
||||
public override void OnSongChange(int songIndex, ref SScreenSongOptions screenSongOptions)
|
||||
// ReSharper restore RedundantAssignment
|
||||
{
|
||||
if (_ScreenSongOptions.Selection.SongIndex != -1)
|
||||
_ScreenSongOptions.Selection.SongIndex = -1;
|
||||
_ScreenSongOptions.Selection.SongIndex = -1;
|
||||
|
||||
if (_ScreenSongOptions.Selection.SelectNextRandomSong && songIndex != -1)
|
||||
{
|
||||
@@ -396,7 +397,9 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
screenSongOptions = _ScreenSongOptions;
|
||||
}
|
||||
|
||||
// ReSharper disable RedundantAssignment
|
||||
public override void OnCategoryChange(int categoryIndex, ref SScreenSongOptions screenSongOptions)
|
||||
// ReSharper restore RedundantAssignment
|
||||
{
|
||||
if (_GameData.CatSongIndices != null && categoryIndex != -1)
|
||||
{
|
||||
|
||||
@@ -60,11 +60,9 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
|
||||
public override void DataToScreen(object receivedData)
|
||||
{
|
||||
SDataToScreenConfig config = new SDataToScreenConfig();
|
||||
|
||||
try
|
||||
{
|
||||
config = (SDataToScreenConfig)receivedData;
|
||||
SDataToScreenConfig config = (SDataToScreenConfig)receivedData;
|
||||
_Data.ScreenConfig.NumPlayer = config.NumPlayer;
|
||||
_Data.ScreenConfig.NumPlayerAtOnce = config.NumPlayerAtOnce;
|
||||
_Data.ScreenConfig.NumRounds = config.NumRounds;
|
||||
@@ -92,10 +90,10 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
case Keys.Enter:
|
||||
_UpdateSlides();
|
||||
|
||||
if (Buttons[_ButtonBack].Selected)
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
_Back();
|
||||
|
||||
if (Buttons[_ButtonNext].Selected)
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
_Next();
|
||||
break;
|
||||
|
||||
@@ -115,13 +113,13 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
{
|
||||
base.HandleMouse(mouseEvent);
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
_UpdateSlides();
|
||||
if (Buttons[_ButtonBack].Selected)
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
_Back();
|
||||
|
||||
if (Buttons[_ButtonNext].Selected)
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
_Next();
|
||||
}
|
||||
|
||||
@@ -158,10 +156,10 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
private void _RebuildSlides()
|
||||
{
|
||||
// build num player slide (min player ... max player);
|
||||
SelectSlides[_SelectSlideNumPlayers].Clear();
|
||||
_SelectSlides[_SelectSlideNumPlayers].Clear();
|
||||
for (int i = _PartyMode.GetMinPlayer(); i <= _PartyMode.GetMaxPlayer(); i++)
|
||||
SelectSlides[_SelectSlideNumPlayers].AddValue(i.ToString());
|
||||
SelectSlides[_SelectSlideNumPlayers].Selection = _Data.ScreenConfig.NumPlayer - _PartyMode.GetMinPlayer();
|
||||
_SelectSlides[_SelectSlideNumPlayers].AddValue(i.ToString());
|
||||
_SelectSlides[_SelectSlideNumPlayers].Selection = _Data.ScreenConfig.NumPlayer - _PartyMode.GetMinPlayer();
|
||||
|
||||
_UpdateMicsAtOnce();
|
||||
_SetRoundSteps();
|
||||
@@ -172,9 +170,9 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
{
|
||||
int player = _Data.ScreenConfig.NumPlayer;
|
||||
int mics = _Data.ScreenConfig.NumPlayerAtOnce;
|
||||
_Data.ScreenConfig.NumPlayer = SelectSlides[_SelectSlideNumPlayers].Selection + _PartyMode.GetMinPlayer();
|
||||
_Data.ScreenConfig.NumPlayerAtOnce = SelectSlides[_SelectSlideNumMics].Selection + _PartyMode.GetMinPlayer();
|
||||
_Data.ScreenConfig.NumRounds = (SelectSlides[_SelectSlideNumRounds].Selection + 1) * _RoundSteps;
|
||||
_Data.ScreenConfig.NumPlayer = _SelectSlides[_SelectSlideNumPlayers].Selection + _PartyMode.GetMinPlayer();
|
||||
_Data.ScreenConfig.NumPlayerAtOnce = _SelectSlides[_SelectSlideNumMics].Selection + _PartyMode.GetMinPlayer();
|
||||
_Data.ScreenConfig.NumRounds = (_SelectSlides[_SelectSlideNumRounds].Selection + 1) * _RoundSteps;
|
||||
|
||||
_UpdateMicsAtOnce();
|
||||
_SetRoundSteps();
|
||||
@@ -201,19 +199,19 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
_Data.ScreenConfig.NumPlayerAtOnce = maxNum;
|
||||
|
||||
// build mics at once slide
|
||||
SelectSlides[_SelectSlideNumMics].Clear();
|
||||
_SelectSlides[_SelectSlideNumMics].Clear();
|
||||
for (int i = 1; i <= maxNum; i++)
|
||||
SelectSlides[_SelectSlideNumMics].AddValue(i.ToString());
|
||||
SelectSlides[_SelectSlideNumMics].Selection = _Data.ScreenConfig.NumPlayerAtOnce - _PartyMode.GetMinPlayer();
|
||||
_SelectSlides[_SelectSlideNumMics].AddValue(i.ToString());
|
||||
_SelectSlides[_SelectSlideNumMics].Selection = _Data.ScreenConfig.NumPlayerAtOnce - _PartyMode.GetMinPlayer();
|
||||
}
|
||||
|
||||
private void _UpdateSlideRounds()
|
||||
{
|
||||
// build num rounds slide
|
||||
SelectSlides[_SelectSlideNumRounds].Clear();
|
||||
_SelectSlides[_SelectSlideNumRounds].Clear();
|
||||
for (int i = _RoundSteps; i <= _MaxNumRounds; i += _RoundSteps)
|
||||
SelectSlides[_SelectSlideNumRounds].AddValue(i.ToString());
|
||||
SelectSlides[_SelectSlideNumRounds].Selection = _Data.ScreenConfig.NumRounds / _RoundSteps - 1;
|
||||
_SelectSlides[_SelectSlideNumRounds].AddValue(i.ToString());
|
||||
_SelectSlides[_SelectSlideNumRounds].Selection = _Data.ScreenConfig.NumRounds / _RoundSteps - 1;
|
||||
}
|
||||
|
||||
private void _SetRoundSteps()
|
||||
|
||||
@@ -130,20 +130,18 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
|
||||
for (int i = 0; i < _PartyMode.GetMaxPlayer(); i++)
|
||||
{
|
||||
_NextPlayerTexts.Add(GetNewText(Texts[_TextNextPlayer]));
|
||||
AddText(_NextPlayerTexts[_NextPlayerTexts.Count - 1]);
|
||||
_NextPlayerStatics.Add(GetNewStatic(Statics[_StaticNextPlayer]));
|
||||
AddStatic(_NextPlayerStatics[_NextPlayerStatics.Count - 1]);
|
||||
_NextPlayerTexts.Add(GetNewText(_Texts[_TextNextPlayer]));
|
||||
_AddText(_NextPlayerTexts[_NextPlayerTexts.Count - 1]);
|
||||
_NextPlayerStatics.Add(GetNewStatic(_Statics[_StaticNextPlayer]));
|
||||
_AddStatic(_NextPlayerStatics[_NextPlayerStatics.Count - 1]);
|
||||
}
|
||||
}
|
||||
|
||||
public override void DataToScreen(object receivedData)
|
||||
{
|
||||
SDataToScreenMain data = new SDataToScreenMain();
|
||||
|
||||
try
|
||||
{
|
||||
data = (SDataToScreenMain)receivedData;
|
||||
SDataToScreenMain data = (SDataToScreenMain)receivedData;
|
||||
_GameState = data;
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -177,26 +175,26 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
case Keys.Enter:
|
||||
if (!_ExitPopupVisible)
|
||||
{
|
||||
if (Buttons[_ButtonNextRound].Selected)
|
||||
if (_Buttons[_ButtonNextRound].Selected)
|
||||
_NextRound();
|
||||
if (Buttons[_ButtonBack].Selected && _GameState.CurrentRoundNr == 1)
|
||||
if (_Buttons[_ButtonBack].Selected && _GameState.CurrentRoundNr == 1)
|
||||
_Back();
|
||||
if (Buttons[_ButtonExit].Selected && _GameState.CurrentRoundNr > 1)
|
||||
if (_Buttons[_ButtonExit].Selected && _GameState.CurrentRoundNr > 1)
|
||||
_ShowPopup(true);
|
||||
if (Buttons[_ButtonPlayerScrollUp].Selected)
|
||||
if (_Buttons[_ButtonPlayerScrollUp].Selected)
|
||||
_ScrollPlayerTable(-1);
|
||||
if (Buttons[_ButtonPlayerScrollDown].Selected)
|
||||
if (_Buttons[_ButtonPlayerScrollDown].Selected)
|
||||
_ScrollPlayerTable(1);
|
||||
if (Buttons[_ButtonRoundsScrollUp].Selected)
|
||||
if (_Buttons[_ButtonRoundsScrollUp].Selected)
|
||||
_ScrollRoundsTable(-1);
|
||||
if (Buttons[_ButtonRoundsScrollDown].Selected)
|
||||
if (_Buttons[_ButtonRoundsScrollDown].Selected)
|
||||
_ScrollRoundsTable(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Buttons[_ButtonPopupYes].Selected)
|
||||
if (_Buttons[_ButtonPopupYes].Selected)
|
||||
_EndParty();
|
||||
if (Buttons[_ButtonPopupNo].Selected)
|
||||
if (_Buttons[_ButtonPopupNo].Selected)
|
||||
_ShowPopup(false);
|
||||
}
|
||||
break;
|
||||
@@ -209,30 +207,30 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
{
|
||||
base.HandleMouse(mouseEvent);
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
if (!_ExitPopupVisible)
|
||||
{
|
||||
if (Buttons[_ButtonNextRound].Selected)
|
||||
if (_Buttons[_ButtonNextRound].Selected)
|
||||
_NextRound();
|
||||
if (Buttons[_ButtonBack].Selected && _GameState.CurrentRoundNr == 1)
|
||||
if (_Buttons[_ButtonBack].Selected && _GameState.CurrentRoundNr == 1)
|
||||
_Back();
|
||||
if (Buttons[_ButtonExit].Selected && _GameState.CurrentRoundNr > 1)
|
||||
if (_Buttons[_ButtonExit].Selected && _GameState.CurrentRoundNr > 1)
|
||||
_ShowPopup(true);
|
||||
if (Buttons[_ButtonPlayerScrollUp].Selected)
|
||||
if (_Buttons[_ButtonPlayerScrollUp].Selected)
|
||||
_ScrollPlayerTable(-1);
|
||||
if (Buttons[_ButtonPlayerScrollDown].Selected)
|
||||
if (_Buttons[_ButtonPlayerScrollDown].Selected)
|
||||
_ScrollPlayerTable(1);
|
||||
if (Buttons[_ButtonRoundsScrollUp].Selected)
|
||||
if (_Buttons[_ButtonRoundsScrollUp].Selected)
|
||||
_ScrollRoundsTable(-1);
|
||||
if (Buttons[_ButtonRoundsScrollDown].Selected)
|
||||
if (_Buttons[_ButtonRoundsScrollDown].Selected)
|
||||
_ScrollRoundsTable(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Buttons[_ButtonPopupYes].Selected)
|
||||
if (_Buttons[_ButtonPopupYes].Selected)
|
||||
_EndParty();
|
||||
if (Buttons[_ButtonPopupNo].Selected)
|
||||
if (_Buttons[_ButtonPopupNo].Selected)
|
||||
_ShowPopup(false);
|
||||
}
|
||||
}
|
||||
@@ -279,29 +277,29 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
|
||||
if (_GameState.CurrentRoundNr == 1)
|
||||
{
|
||||
Buttons[_ButtonBack].Visible = true;
|
||||
Buttons[_ButtonExit].Visible = false;
|
||||
_Buttons[_ButtonBack].Visible = true;
|
||||
_Buttons[_ButtonExit].Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Buttons[_ButtonBack].Visible = false;
|
||||
Buttons[_ButtonExit].Visible = true;
|
||||
_Buttons[_ButtonBack].Visible = false;
|
||||
_Buttons[_ButtonExit].Visible = true;
|
||||
}
|
||||
|
||||
if (_GameState.CurrentRoundNr <= _GameState.Combs.Count)
|
||||
{
|
||||
Buttons[_ButtonNextRound].Visible = true;
|
||||
Texts[_TextFinishMessage].Visible = false;
|
||||
Texts[_TextFinishPlayerWin].Visible = false;
|
||||
SetInteractionToButton(Buttons[_ButtonNextRound]);
|
||||
_Buttons[_ButtonNextRound].Visible = true;
|
||||
_Texts[_TextFinishMessage].Visible = false;
|
||||
_Texts[_TextFinishPlayerWin].Visible = false;
|
||||
_SetInteractionToButton(_Buttons[_ButtonNextRound]);
|
||||
}
|
||||
else
|
||||
{
|
||||
Buttons[_ButtonNextRound].Visible = false;
|
||||
Texts[_TextFinishMessage].Visible = true;
|
||||
Texts[_TextFinishPlayerWin].Visible = true;
|
||||
Texts[_TextFinishPlayerWin].Text = _GetPlayerWinString();
|
||||
SetInteractionToButton(Buttons[_ButtonExit]);
|
||||
_Buttons[_ButtonNextRound].Visible = false;
|
||||
_Texts[_TextFinishMessage].Visible = true;
|
||||
_Texts[_TextFinishPlayerWin].Visible = true;
|
||||
_Texts[_TextFinishPlayerWin].Text = _GetPlayerWinString();
|
||||
_SetInteractionToButton(_Buttons[_ButtonExit]);
|
||||
}
|
||||
|
||||
_ShowPopup(false);
|
||||
@@ -334,13 +332,13 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
{
|
||||
_ExitPopupVisible = visible;
|
||||
|
||||
Statics[_StaticPopupBG].Visible = _ExitPopupVisible;
|
||||
Texts[_TextPopupReallyExit].Visible = _ExitPopupVisible;
|
||||
Buttons[_ButtonPopupYes].Visible = _ExitPopupVisible;
|
||||
Buttons[_ButtonPopupNo].Visible = _ExitPopupVisible;
|
||||
_Statics[_StaticPopupBG].Visible = _ExitPopupVisible;
|
||||
_Texts[_TextPopupReallyExit].Visible = _ExitPopupVisible;
|
||||
_Buttons[_ButtonPopupYes].Visible = _ExitPopupVisible;
|
||||
_Buttons[_ButtonPopupNo].Visible = _ExitPopupVisible;
|
||||
|
||||
if (_ExitPopupVisible)
|
||||
SetInteractionToButton(Buttons[_ButtonPopupNo]);
|
||||
_SetInteractionToButton(_Buttons[_ButtonPopupNo]);
|
||||
}
|
||||
|
||||
private void _Back()
|
||||
@@ -352,7 +350,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
|
||||
private void _UpdateNextPlayerPositions()
|
||||
{
|
||||
float x = CBase.Settings.GetRenderW() / 2 - ((_GameState.NumPlayerAtOnce * Statics[_StaticNextPlayer].Rect.W) + ((_GameState.NumPlayerAtOnce - 1) * 15)) / 2;
|
||||
float x = CBase.Settings.GetRenderW() / 2 - ((_GameState.NumPlayerAtOnce * _Statics[_StaticNextPlayer].Rect.W) + ((_GameState.NumPlayerAtOnce - 1) * 15)) / 2;
|
||||
float staticY = 590;
|
||||
float textY = 550;
|
||||
for (int i = 0; i < _GameState.NumPlayerAtOnce; i++)
|
||||
@@ -362,11 +360,11 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
_NextPlayerStatics[i].Rect.Y = staticY;
|
||||
_NextPlayerStatics[i].Visible = true;
|
||||
//text
|
||||
_NextPlayerTexts[i].X = x + Statics[_StaticNextPlayer].Rect.W / 2;
|
||||
_NextPlayerTexts[i].X = x + _Statics[_StaticNextPlayer].Rect.W / 2;
|
||||
_NextPlayerTexts[i].Y = textY;
|
||||
_NextPlayerTexts[i].Visible = true;
|
||||
|
||||
x += Statics[_StaticNextPlayer].Rect.W + 15;
|
||||
x += _Statics[_StaticNextPlayer].Rect.W + 15;
|
||||
}
|
||||
for (int i = _GameState.NumPlayerAtOnce; i < _PartyMode.GetMaxPlayer(); i++)
|
||||
{
|
||||
@@ -379,7 +377,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
{
|
||||
if (_GameState.CurrentRoundNr <= _GameState.Combs.Count)
|
||||
{
|
||||
Texts[_TextNextPlayerMessage].Visible = true;
|
||||
_Texts[_TextNextPlayerMessage].Visible = true;
|
||||
SProfile[] profiles = CBase.Profiles.GetProfiles();
|
||||
for (int i = 0; i < _GameState.NumPlayerAtOnce; i++)
|
||||
{
|
||||
@@ -391,7 +389,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
}
|
||||
else
|
||||
{
|
||||
Texts[_TextNextPlayerMessage].Visible = false;
|
||||
_Texts[_TextNextPlayerMessage].Visible = false;
|
||||
for (int i = 0; i < _GameState.NumPlayerAtOnce; i++)
|
||||
{
|
||||
_NextPlayerStatics[i].Visible = false;
|
||||
@@ -415,20 +413,20 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
for (int round = 0; round < _RoundsTable.Count; round++)
|
||||
{
|
||||
//Round-number
|
||||
CText text = GetNewText(Texts[_TextRoundNumber]);
|
||||
AddText(text);
|
||||
CText text = GetNewText(_Texts[_TextRoundNumber]);
|
||||
_AddText(text);
|
||||
_RoundsTable[round].Number = text;
|
||||
for (int row = 0; row < 2; row++)
|
||||
{
|
||||
for (int column = 0; column < 3; column++)
|
||||
{
|
||||
//Player
|
||||
text = GetNewText(Texts[_TextRoundPlayer]);
|
||||
AddText(text);
|
||||
text = GetNewText(_Texts[_TextRoundPlayer]);
|
||||
_AddText(text);
|
||||
_RoundsTable[round].TextPlayer.Add(text);
|
||||
//Score
|
||||
text = GetNewText(Texts[_TextRoundScore]);
|
||||
AddText(text);
|
||||
text = GetNewText(_Texts[_TextRoundScore]);
|
||||
_AddText(text);
|
||||
_RoundsTable[round].TextScores.Add(text);
|
||||
}
|
||||
}
|
||||
@@ -448,14 +446,14 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
if (_NumRoundsVisible > _GameState.Combs.Count)
|
||||
_NumRoundsVisible = _GameState.Combs.Count;
|
||||
|
||||
float numberX = Texts[_TextRoundNumber].X;
|
||||
float numberY = Texts[_TextRoundNumber].Y;
|
||||
float numberX = _Texts[_TextRoundNumber].X;
|
||||
float numberY = _Texts[_TextRoundNumber].Y;
|
||||
|
||||
_RoundsTableScrollArea.X = numberX;
|
||||
_RoundsTableScrollArea.Y = numberY;
|
||||
_RoundsTableScrollArea.W = CBase.Settings.GetRenderW() - Texts[_TextRoundNumber].X - 20;
|
||||
_RoundsTableScrollArea.W = CBase.Settings.GetRenderW() - _Texts[_TextRoundNumber].X - 20;
|
||||
|
||||
float delta = Texts[_TextRoundNumber].Height;
|
||||
float delta = _Texts[_TextRoundNumber].Height;
|
||||
|
||||
//Update statics and texts for rounds
|
||||
for (int round = 0; round < _RoundsTable.Count; round++)
|
||||
@@ -476,9 +474,9 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
for (int column = row * numPlayerInOneRow; column < num; column++)
|
||||
{
|
||||
//Player
|
||||
float x = numberX + 15 + (CBase.Settings.GetRenderW() - Texts[_TextRoundNumber].X - 20) / numPlayerInThisRow * (column - row * numPlayerInOneRow) +
|
||||
((CBase.Settings.GetRenderW() - Texts[_TextRoundNumber].X - 20) / numPlayerInThisRow) / 2;
|
||||
float maxw = ((CBase.Settings.GetRenderW() - Texts[_TextRoundNumber].X - 20) / numPlayerInThisRow) / 2 - 5;
|
||||
float x = numberX + 15 + (CBase.Settings.GetRenderW() - _Texts[_TextRoundNumber].X - 20) / numPlayerInThisRow * (column - row * numPlayerInOneRow) +
|
||||
((CBase.Settings.GetRenderW() - _Texts[_TextRoundNumber].X - 20) / numPlayerInThisRow) / 2;
|
||||
float maxw = ((CBase.Settings.GetRenderW() - _Texts[_TextRoundNumber].X - 20) / numPlayerInThisRow) / 2 - 5;
|
||||
_RoundsTable[round].TextPlayer[column].X = x;
|
||||
_RoundsTable[round].TextPlayer[column].Y = numberY;
|
||||
_RoundsTable[round].TextPlayer[column].MaxWidth = maxw;
|
||||
@@ -507,7 +505,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
_RoundsTable[i].Number.Visible = true;
|
||||
_RoundsTable[i].TextPlayer[p].Visible = true;
|
||||
_RoundsTable[i].TextScores[p].Visible = true;
|
||||
_RoundsTable[i].Number.Text = (i + 1 + _RoundsTableOffset).ToString() + ")";
|
||||
_RoundsTable[i].Number.Text = (i + 1 + _RoundsTableOffset) + ")";
|
||||
int pID = _GameState.ProfileIDs[_GameState.Combs[i + _RoundsTableOffset].Player[p]];
|
||||
_RoundsTable[i].TextPlayer[p].Text = profile[pID].PlayerName;
|
||||
if ((_GameState.CurrentRoundNr - 1) > i + _RoundsTableOffset)
|
||||
@@ -532,19 +530,19 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
}
|
||||
}
|
||||
|
||||
Buttons[_ButtonRoundsScrollUp].Visible = _RoundsTableOffset > 0;
|
||||
Buttons[_ButtonRoundsScrollDown].Visible = _GameState.Combs.Count - _NumRoundsVisible - _RoundsTableOffset > 0;
|
||||
_Buttons[_ButtonRoundsScrollUp].Visible = _RoundsTableOffset > 0;
|
||||
_Buttons[_ButtonRoundsScrollDown].Visible = _GameState.Combs.Count - _NumRoundsVisible - _RoundsTableOffset > 0;
|
||||
}
|
||||
|
||||
private void _BuildPlayerTable()
|
||||
{
|
||||
_PlayerTableScrollArea = new SRectF();
|
||||
_PlayerTableScrollArea.X = Texts[_TextPosition].X;
|
||||
_PlayerTableScrollArea.Y = Texts[_TextPosition].Y;
|
||||
_PlayerTableScrollArea.W = Texts[_TextGamePoints].X - Texts[_TextPosition].X;
|
||||
_PlayerTableScrollArea.X = _Texts[_TextPosition].X;
|
||||
_PlayerTableScrollArea.Y = _Texts[_TextPosition].Y;
|
||||
_PlayerTableScrollArea.W = _Texts[_TextGamePoints].X - _Texts[_TextPosition].X;
|
||||
|
||||
_PlayerTable = new List<STableRow>();
|
||||
float delta = Texts[_TextPosition].Height * 1.2f;
|
||||
float delta = _Texts[_TextPosition].Height * 1.2f;
|
||||
|
||||
float h = 0;
|
||||
|
||||
@@ -552,12 +550,12 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
{
|
||||
STableRow row = new STableRow();
|
||||
|
||||
row.Pos = GetNewText(Texts[_TextPosition]);
|
||||
row.Name = GetNewText(Texts[_TextPlayerName]);
|
||||
row.Rounds = GetNewText(Texts[_TextNumPlayed]);
|
||||
row.Won = GetNewText(Texts[_TextWon]);
|
||||
row.SingPoints = GetNewText(Texts[_TextSingPoints]);
|
||||
row.GamePoints = GetNewText(Texts[_TextGamePoints]);
|
||||
row.Pos = GetNewText(_Texts[_TextPosition]);
|
||||
row.Name = GetNewText(_Texts[_TextPlayerName]);
|
||||
row.Rounds = GetNewText(_Texts[_TextNumPlayed]);
|
||||
row.Won = GetNewText(_Texts[_TextWon]);
|
||||
row.SingPoints = GetNewText(_Texts[_TextSingPoints]);
|
||||
row.GamePoints = GetNewText(_Texts[_TextGamePoints]);
|
||||
|
||||
row.Pos.Y += delta * (i + 1);
|
||||
row.Name.Y += delta * (i + 1);
|
||||
@@ -566,7 +564,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
row.SingPoints.Y += delta * (i + 1);
|
||||
row.GamePoints.Y += delta * (i + 1);
|
||||
|
||||
row.Pos.Text = (i + 1).ToString() + ".";
|
||||
row.Pos.Text = (i + 1) + ".";
|
||||
|
||||
row.Pos.Visible = false;
|
||||
row.Name.Visible = false;
|
||||
@@ -575,12 +573,12 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
row.SingPoints.Visible = false;
|
||||
row.GamePoints.Visible = false;
|
||||
|
||||
AddText(row.Pos);
|
||||
AddText(row.Name);
|
||||
AddText(row.Rounds);
|
||||
AddText(row.Won);
|
||||
AddText(row.SingPoints);
|
||||
AddText(row.GamePoints);
|
||||
_AddText(row.Pos);
|
||||
_AddText(row.Name);
|
||||
_AddText(row.Rounds);
|
||||
_AddText(row.Won);
|
||||
_AddText(row.SingPoints);
|
||||
_AddText(row.GamePoints);
|
||||
|
||||
_PlayerTable.Add(row);
|
||||
|
||||
@@ -606,7 +604,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
row.SingPoints.Visible = true;
|
||||
row.GamePoints.Visible = true;
|
||||
|
||||
row.Pos.Text = _GameState.ResultTable[i + _PlayerTableOffset].Position.ToString() + ".";
|
||||
row.Pos.Text = _GameState.ResultTable[i + _PlayerTableOffset].Position + ".";
|
||||
row.Name.Text = profiles[_GameState.ResultTable[i + _PlayerTableOffset].PlayerID].PlayerName;
|
||||
row.Rounds.Text = _GameState.ResultTable[i + _PlayerTableOffset].NumRounds.ToString();
|
||||
row.Won.Text = _GameState.ResultTable[i + _PlayerTableOffset].NumWon.ToString();
|
||||
@@ -624,8 +622,8 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
}
|
||||
}
|
||||
|
||||
Buttons[_ButtonPlayerScrollUp].Visible = _PlayerTableOffset > 0;
|
||||
Buttons[_ButtonPlayerScrollDown].Visible = _GameState.ProfileIDs.Count - _NumPlayerVisible - _PlayerTableOffset > 0;
|
||||
_Buttons[_ButtonPlayerScrollUp].Visible = _PlayerTableOffset > 0;
|
||||
_Buttons[_ButtonPlayerScrollDown].Visible = _GameState.ProfileIDs.Count - _NumPlayerVisible - _PlayerTableOffset > 0;
|
||||
}
|
||||
|
||||
private void _ScrollPlayerTable(int offset)
|
||||
|
||||
@@ -41,7 +41,6 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
private List<CButton> _PlayerDestinationButtons;
|
||||
//PlayerDestinationButtons-Option
|
||||
private const int _PlayerDestinationButtonsNumH = 3;
|
||||
private const int _PlayerDestinationButtonsNumW = 4;
|
||||
private const int _PlayerDestinationButtonsFirstX = 900;
|
||||
private const int _PlayerDestinationButtonsFirstY = 105;
|
||||
private const int _PlayerDestinationButtonsSpaceH = 15;
|
||||
@@ -97,14 +96,10 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
|
||||
public override void DataToScreen(object receivedData)
|
||||
{
|
||||
SDataToScreenNames config = new SDataToScreenNames();
|
||||
|
||||
try
|
||||
{
|
||||
config = (SDataToScreenNames)receivedData;
|
||||
_Data.ScreenNames.ProfileIDs = config.ProfileIDs;
|
||||
if (_Data.ScreenNames.ProfileIDs == null)
|
||||
_Data.ScreenNames.ProfileIDs = new List<int>();
|
||||
SDataToScreenNames config = (SDataToScreenNames)receivedData;
|
||||
_Data.ScreenNames.ProfileIDs = config.ProfileIDs ?? new List<int>();
|
||||
|
||||
_NumPlayer = config.NumPlayer;
|
||||
|
||||
@@ -132,10 +127,10 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
if (Buttons[_ButtonBack].Selected)
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
_Back();
|
||||
|
||||
if (Buttons[_ButtonNext].Selected)
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
_Next();
|
||||
|
||||
if (!_OnAdd())
|
||||
@@ -237,12 +232,12 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
_ChooseAvatarStatic.Visible = false;
|
||||
}
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
if (Buttons[_ButtonBack].Selected)
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
_Back();
|
||||
|
||||
if (Buttons[_ButtonNext].Selected)
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
_Next();
|
||||
|
||||
if (!_OnAdd())
|
||||
@@ -287,13 +282,13 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
|
||||
private void _AddButtonPlayerDestination()
|
||||
{
|
||||
Buttons[_ButtonPlayerDestination].Visible = false;
|
||||
_Buttons[_ButtonPlayerDestination].Visible = false;
|
||||
_PlayerDestinationButtons = new List<CButton>();
|
||||
int row = 0;
|
||||
int column = 0;
|
||||
for (int i = 1; i <= _PartyMode.GetMaxPlayer(); i++)
|
||||
{
|
||||
CButton b = GetNewButton(Buttons[_ButtonPlayerDestination]);
|
||||
CButton b = GetNewButton(_Buttons[_ButtonPlayerDestination]);
|
||||
b.Rect.X = _PlayerDestinationButtonsFirstX + column * (b.Rect.W + _PlayerDestinationButtonsSpaceH);
|
||||
b.Rect.Y = _PlayerDestinationButtonsFirstY + row * (b.Rect.H + _PlayerDestinationButtonsSpaceW);
|
||||
_PlayerDestinationButtons.Add(b);
|
||||
@@ -305,19 +300,19 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
}
|
||||
b.Visible = true;
|
||||
b.Enabled = false;
|
||||
AddButton(b);
|
||||
_AddButton(b);
|
||||
}
|
||||
}
|
||||
|
||||
private void _AddButtonPlayerChoose()
|
||||
{
|
||||
Buttons[_ButtonPlayerChoose].Visible = false;
|
||||
_Buttons[_ButtonPlayerChoose].Visible = false;
|
||||
_PlayerChooseButtons = new List<CPlayerChooseButton>();
|
||||
int row = 0;
|
||||
int column = 0;
|
||||
for (int i = 1; i <= _PlayerChooseButtonsNumH * _PlayerChooseButtonsNumW; i++)
|
||||
{
|
||||
CButton b = GetNewButton(Buttons[_ButtonPlayerChoose]);
|
||||
CButton b = GetNewButton(_Buttons[_ButtonPlayerChoose]);
|
||||
b.Rect.X = _PlayerChooseButtonsFirstX + column * (b.Rect.W + _PlayerChooseButtonsSpaceH);
|
||||
b.Rect.Y = _PlayerChooseButtonsFirstY + row * (b.Rect.H + _PlayerChooseButtonsSpaceW);
|
||||
CPlayerChooseButton pcb = new CPlayerChooseButton();
|
||||
@@ -332,7 +327,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
}
|
||||
b.Visible = true;
|
||||
b.Enabled = false;
|
||||
AddButton(b);
|
||||
_AddButton(b);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -372,10 +367,10 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
{
|
||||
_PlayerChooseButtons[i].ProfileID = -1;
|
||||
_PlayerChooseButtons[i].Button.Text.Text = String.Empty;
|
||||
_PlayerChooseButtons[i].Button.Texture = Buttons[_ButtonPlayerChoose].Texture;
|
||||
_PlayerChooseButtons[i].Button.SelTexture = Buttons[_ButtonPlayerChoose].SelTexture;
|
||||
_PlayerChooseButtons[i].Button.Color = Buttons[_ButtonPlayerChoose].Color;
|
||||
_PlayerChooseButtons[i].Button.SelColor = Buttons[_ButtonPlayerChoose].SelColor;
|
||||
_PlayerChooseButtons[i].Button.Texture = _Buttons[_ButtonPlayerChoose].Texture;
|
||||
_PlayerChooseButtons[i].Button.SelTexture = _Buttons[_ButtonPlayerChoose].SelTexture;
|
||||
_PlayerChooseButtons[i].Button.Color = _Buttons[_ButtonPlayerChoose].Color;
|
||||
_PlayerChooseButtons[i].Button.SelColor = _Buttons[_ButtonPlayerChoose].SelColor;
|
||||
_PlayerChooseButtons[i].Button.Enabled = false;
|
||||
}
|
||||
}
|
||||
@@ -439,10 +434,10 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
}
|
||||
else
|
||||
{
|
||||
_PlayerDestinationButtons[i].Color = Buttons[_ButtonPlayerDestination].Color;
|
||||
_PlayerDestinationButtons[i].SelColor = Buttons[_ButtonPlayerDestination].SelColor;
|
||||
_PlayerDestinationButtons[i].Texture = Buttons[_ButtonPlayerDestination].Texture;
|
||||
_PlayerDestinationButtons[i].SelTexture = Buttons[_ButtonPlayerDestination].SelTexture;
|
||||
_PlayerDestinationButtons[i].Color = _Buttons[_ButtonPlayerDestination].Color;
|
||||
_PlayerDestinationButtons[i].SelColor = _Buttons[_ButtonPlayerDestination].SelColor;
|
||||
_PlayerDestinationButtons[i].Texture = _Buttons[_ButtonPlayerDestination].Texture;
|
||||
_PlayerDestinationButtons[i].SelTexture = _Buttons[_ButtonPlayerDestination].SelTexture;
|
||||
_PlayerDestinationButtons[i].Text.Text = String.Empty;
|
||||
_PlayerDestinationButtons[i].Enabled = false;
|
||||
}
|
||||
@@ -453,11 +448,11 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
{
|
||||
if (_Data.ScreenNames.ProfileIDs.Count == _NumPlayer)
|
||||
{
|
||||
Buttons[_ButtonNext].Visible = true;
|
||||
SetInteractionToButton(Buttons[_ButtonNext]);
|
||||
_Buttons[_ButtonNext].Visible = true;
|
||||
_SetInteractionToButton(_Buttons[_ButtonNext]);
|
||||
}
|
||||
else
|
||||
Buttons[_ButtonNext].Visible = false;
|
||||
_Buttons[_ButtonNext].Visible = false;
|
||||
}
|
||||
|
||||
private bool _OnAdd()
|
||||
@@ -480,7 +475,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
_PlayerDestinationButtons[added].Enabled = true;
|
||||
//Update Tiles-List
|
||||
_UpdateButtonPlayerChoose();
|
||||
CheckInteraction();
|
||||
_CheckInteraction();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -500,7 +495,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
_UpdateButtonNext();
|
||||
_UpdateButtonPlayerDestination();
|
||||
_UpdateButtonPlayerChoose();
|
||||
CheckInteraction();
|
||||
_CheckInteraction();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
public int PointsTeam1;
|
||||
public int PointsTeam2;
|
||||
public int Winner;
|
||||
public bool Finished = false;
|
||||
public bool Finished;
|
||||
}
|
||||
|
||||
#region Communication
|
||||
@@ -456,12 +456,16 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
return _ScreenSongOptions;
|
||||
}
|
||||
|
||||
// ReSharper disable RedundantAssignment
|
||||
public override void OnSongChange(int songIndex, ref SScreenSongOptions screenSongOptions)
|
||||
// ReSharper restore RedundantAssignment
|
||||
{
|
||||
screenSongOptions = _ScreenSongOptions;
|
||||
}
|
||||
|
||||
// ReSharper disable RedundantAssignment
|
||||
public override void OnCategoryChange(int categoryIndex, ref SScreenSongOptions screenSongOptions)
|
||||
// ReSharper restore RedundantAssignment
|
||||
{
|
||||
screenSongOptions = _ScreenSongOptions;
|
||||
}
|
||||
@@ -541,99 +545,101 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
|
||||
private void _PreparePlayerList(int team)
|
||||
{
|
||||
if (team == 0)
|
||||
switch (team)
|
||||
{
|
||||
_GameData.PlayerTeam1 = new List<int>();
|
||||
_GameData.PlayerTeam2 = new List<int>();
|
||||
case 0:
|
||||
{
|
||||
_GameData.PlayerTeam1 = new List<int>();
|
||||
_GameData.PlayerTeam2 = new List<int>();
|
||||
|
||||
//Prepare Player-IDs
|
||||
List<int> iDs1 = new List<int>();
|
||||
List<int> iDs2 = new List<int>();
|
||||
int num = 0;
|
||||
int random = 0;
|
||||
//Add IDs to team-list
|
||||
while (_GameData.PlayerTeam1.Count < _GameData.NumFields + _GameData.NumJokerRetry[0] && iDs1.Count == 0 &&
|
||||
_GameData.PlayerTeam2.Count < _GameData.NumFields + _GameData.NumJokerRetry[1] && iDs2.Count == 0)
|
||||
{
|
||||
if (iDs1.Count == 0)
|
||||
{
|
||||
for (int i = 0; i < _GameData.NumPlayerTeam1; i++)
|
||||
iDs1.Add(i);
|
||||
//Prepare Player-IDs
|
||||
List<int> ids1 = new List<int>();
|
||||
List<int> ids2 = new List<int>();
|
||||
//Add IDs to team-list
|
||||
while (_GameData.PlayerTeam1.Count < _GameData.NumFields + _GameData.NumJokerRetry[0] && ids1.Count == 0 &&
|
||||
_GameData.PlayerTeam2.Count < _GameData.NumFields + _GameData.NumJokerRetry[1] && ids2.Count == 0)
|
||||
{
|
||||
if (ids1.Count == 0)
|
||||
{
|
||||
for (int i = 0; i < _GameData.NumPlayerTeam1; i++)
|
||||
ids1.Add(i);
|
||||
}
|
||||
if (ids2.Count == 0)
|
||||
{
|
||||
for (int i = 0; i < _GameData.NumPlayerTeam2; i++)
|
||||
ids2.Add(i);
|
||||
}
|
||||
int num;
|
||||
int random;
|
||||
if (_GameData.PlayerTeam1.Count < _GameData.NumFields + _GameData.NumJokerRetry[0])
|
||||
{
|
||||
random = CBase.Game.GetRandom((ids1.Count - 1) * 10);
|
||||
num = (int)Math.Round((double)random / 10);
|
||||
if (num >= ids1.Count)
|
||||
num = ids1.Count - 1;
|
||||
_GameData.PlayerTeam1.Add(ids1[num]);
|
||||
ids1.RemoveAt(num);
|
||||
}
|
||||
if (_GameData.PlayerTeam2.Count < _GameData.NumFields + _GameData.NumJokerRetry[1])
|
||||
{
|
||||
random = CBase.Game.GetRandom((ids2.Count - 1) * 20);
|
||||
num = (int)Math.Round((double)random / 20);
|
||||
if (num >= ids2.Count)
|
||||
num = ids2.Count - 1;
|
||||
_GameData.PlayerTeam2.Add(ids2[num]);
|
||||
ids2.RemoveAt(num);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (iDs2.Count == 0)
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
for (int i = 0; i < _GameData.NumPlayerTeam2; i++)
|
||||
iDs2.Add(i);
|
||||
//Prepare Player-IDs
|
||||
List<int> iDs = new List<int>();
|
||||
//Add IDs to team-list
|
||||
while (_GameData.PlayerTeam1.Count < _GameData.NumFields + _GameData.NumJokerRetry[0] && iDs.Count == 0)
|
||||
{
|
||||
if (iDs.Count == 0)
|
||||
{
|
||||
for (int i = 0; i < _GameData.NumPlayerTeam1; i++)
|
||||
iDs.Add(i);
|
||||
}
|
||||
if (_GameData.PlayerTeam1.Count < _GameData.NumFields + _GameData.NumJokerRetry[0])
|
||||
{
|
||||
int random = CBase.Game.GetRandom((iDs.Count - 1) * 10);
|
||||
int num = (int)Math.Round((double)random / 10);
|
||||
if (num >= iDs.Count)
|
||||
num = iDs.Count - 1;
|
||||
_GameData.PlayerTeam1.Add(iDs[num]);
|
||||
iDs.RemoveAt(num);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (_GameData.PlayerTeam1.Count < _GameData.NumFields + _GameData.NumJokerRetry[0])
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
random = CBase.Game.GetRandom((iDs1.Count - 1) * 10);
|
||||
num = (int)Math.Round((double)random / 10);
|
||||
if (num >= iDs1.Count)
|
||||
num = iDs1.Count - 1;
|
||||
_GameData.PlayerTeam1.Add(iDs1[num]);
|
||||
iDs1.RemoveAt(num);
|
||||
//Prepare Player-IDs
|
||||
List<int> ids = new List<int>();
|
||||
//Add IDs to team-list
|
||||
while (_GameData.PlayerTeam2.Count < _GameData.NumFields + _GameData.NumJokerRetry[1] && ids.Count == 0)
|
||||
{
|
||||
if (ids.Count == 0)
|
||||
{
|
||||
for (int i = 0; i < _GameData.NumPlayerTeam2; i++)
|
||||
ids.Add(i);
|
||||
}
|
||||
if (_GameData.PlayerTeam2.Count < _GameData.NumFields + _GameData.NumJokerRetry[1])
|
||||
{
|
||||
int random = CBase.Game.GetRandom((ids.Count - 1) * 20);
|
||||
int num = (int)Math.Round((double)random / 20);
|
||||
if (num >= ids.Count)
|
||||
num = ids.Count - 1;
|
||||
_GameData.PlayerTeam2.Add(ids[num]);
|
||||
ids.RemoveAt(num);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (_GameData.PlayerTeam2.Count < _GameData.NumFields + _GameData.NumJokerRetry[1])
|
||||
{
|
||||
random = CBase.Game.GetRandom((iDs2.Count - 1) * 20);
|
||||
num = (int)Math.Round((double)random / 20);
|
||||
if (num >= iDs2.Count)
|
||||
num = iDs2.Count - 1;
|
||||
_GameData.PlayerTeam2.Add(iDs2[num]);
|
||||
iDs2.RemoveAt(num);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (team == 1)
|
||||
{
|
||||
//Prepare Player-IDs
|
||||
List<int> iDs = new List<int>();
|
||||
int num = 0;
|
||||
int random = 0;
|
||||
//Add IDs to team-list
|
||||
while (_GameData.PlayerTeam1.Count < _GameData.NumFields + _GameData.NumJokerRetry[0] && iDs.Count == 0)
|
||||
{
|
||||
if (iDs.Count == 0)
|
||||
{
|
||||
for (int i = 0; i < _GameData.NumPlayerTeam1; i++)
|
||||
iDs.Add(i);
|
||||
}
|
||||
if (_GameData.PlayerTeam1.Count < _GameData.NumFields + _GameData.NumJokerRetry[0])
|
||||
{
|
||||
random = CBase.Game.GetRandom((iDs.Count - 1) * 10);
|
||||
num = (int)Math.Round((double)random / 10);
|
||||
if (num >= iDs.Count)
|
||||
num = iDs.Count - 1;
|
||||
_GameData.PlayerTeam1.Add(iDs[num]);
|
||||
iDs.RemoveAt(num);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (team == 2)
|
||||
{
|
||||
//Prepare Player-IDs
|
||||
List<int> iDs = new List<int>();
|
||||
int num = 0;
|
||||
int random = 0;
|
||||
//Add IDs to team-list
|
||||
while (_GameData.PlayerTeam2.Count < _GameData.NumFields + _GameData.NumJokerRetry[1] && iDs.Count == 0)
|
||||
{
|
||||
if (iDs.Count == 0)
|
||||
{
|
||||
for (int i = 0; i < _GameData.NumPlayerTeam2; i++)
|
||||
iDs.Add(i);
|
||||
}
|
||||
if (_GameData.PlayerTeam2.Count < _GameData.NumFields + _GameData.NumJokerRetry[1])
|
||||
{
|
||||
random = CBase.Game.GetRandom((iDs.Count - 1) * 20);
|
||||
num = (int)Math.Round((double)random / 20);
|
||||
if (num >= iDs.Count)
|
||||
num = iDs.Count - 1;
|
||||
_GameData.PlayerTeam2.Add(iDs[num]);
|
||||
iDs.RemoveAt(num);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -766,8 +772,6 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
}
|
||||
SongSelected(r.SongID);
|
||||
}
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
private void _SetNumJokers()
|
||||
|
||||
@@ -70,11 +70,9 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
|
||||
public override void DataToScreen(object receivedData)
|
||||
{
|
||||
SDataToScreenConfig config = new SDataToScreenConfig();
|
||||
|
||||
try
|
||||
{
|
||||
config = (SDataToScreenConfig)receivedData;
|
||||
SDataToScreenConfig config = (SDataToScreenConfig)receivedData;
|
||||
_Data.ScreenConfig.NumFields = config.NumFields;
|
||||
_Data.ScreenConfig.NumPlayerTeam1 = config.NumPlayerTeam1;
|
||||
_Data.ScreenConfig.NumPlayerTeam2 = config.NumPlayerTeam2;
|
||||
@@ -106,10 +104,10 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
case Keys.Enter:
|
||||
_UpdateSlides();
|
||||
|
||||
if (Buttons[_ButtonBack].Selected)
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
_Back();
|
||||
|
||||
if (Buttons[_ButtonNext].Selected)
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
_Next();
|
||||
break;
|
||||
|
||||
@@ -129,13 +127,13 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
{
|
||||
base.HandleMouse(mouseEvent);
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
_UpdateSlides();
|
||||
if (Buttons[_ButtonBack].Selected)
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
_Back();
|
||||
|
||||
if (Buttons[_ButtonNext].Selected)
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
_Next();
|
||||
}
|
||||
|
||||
@@ -158,7 +156,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
|
||||
public override bool UpdateGame()
|
||||
{
|
||||
Buttons[_ButtonNext].Visible = _ConfigOk;
|
||||
_Buttons[_ButtonNext].Visible = _ConfigOk;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -171,72 +169,72 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
private void _FillSlides()
|
||||
{
|
||||
// build num player slide (min player ... max player);
|
||||
SelectSlides[_SelectSlideNumPlayerTeam1].Clear();
|
||||
_SelectSlides[_SelectSlideNumPlayerTeam1].Clear();
|
||||
for (int i = _PartyMode.GetMinPlayer() / 2; i <= _PartyMode.GetMaxPlayer() / 2; i++)
|
||||
SelectSlides[_SelectSlideNumPlayerTeam1].AddValue(i.ToString());
|
||||
SelectSlides[_SelectSlideNumPlayerTeam1].Selection = _Data.ScreenConfig.NumPlayerTeam1 - (_PartyMode.GetMinPlayer() / 2);
|
||||
_SelectSlides[_SelectSlideNumPlayerTeam1].AddValue(i.ToString());
|
||||
_SelectSlides[_SelectSlideNumPlayerTeam1].Selection = _Data.ScreenConfig.NumPlayerTeam1 - (_PartyMode.GetMinPlayer() / 2);
|
||||
|
||||
SelectSlides[_SelectSlideNumPlayerTeam2].Clear();
|
||||
_SelectSlides[_SelectSlideNumPlayerTeam2].Clear();
|
||||
for (int i = _PartyMode.GetMinPlayer() / 2; i <= _PartyMode.GetMaxPlayer() / 2; i++)
|
||||
SelectSlides[_SelectSlideNumPlayerTeam2].AddValue(i.ToString());
|
||||
SelectSlides[_SelectSlideNumPlayerTeam2].Selection = _Data.ScreenConfig.NumPlayerTeam2 - (_PartyMode.GetMinPlayer() / 2);
|
||||
_SelectSlides[_SelectSlideNumPlayerTeam2].AddValue(i.ToString());
|
||||
_SelectSlides[_SelectSlideNumPlayerTeam2].Selection = _Data.ScreenConfig.NumPlayerTeam2 - (_PartyMode.GetMinPlayer() / 2);
|
||||
|
||||
SelectSlides[_SelectSlideNumFields].Clear();
|
||||
SelectSlides[_SelectSlideNumFields].AddValue("9");
|
||||
SelectSlides[_SelectSlideNumFields].AddValue("16");
|
||||
SelectSlides[_SelectSlideNumFields].AddValue("25");
|
||||
_SelectSlides[_SelectSlideNumFields].Clear();
|
||||
_SelectSlides[_SelectSlideNumFields].AddValue("9");
|
||||
_SelectSlides[_SelectSlideNumFields].AddValue("16");
|
||||
_SelectSlides[_SelectSlideNumFields].AddValue("25");
|
||||
if (_Data.ScreenConfig.NumFields == 9)
|
||||
SelectSlides[_SelectSlideNumFields].Selection = 0;
|
||||
_SelectSlides[_SelectSlideNumFields].Selection = 0;
|
||||
else if (_Data.ScreenConfig.NumFields == 16)
|
||||
SelectSlides[_SelectSlideNumFields].Selection = 1;
|
||||
_SelectSlides[_SelectSlideNumFields].Selection = 1;
|
||||
else if (_Data.ScreenConfig.NumFields == 25)
|
||||
SelectSlides[_SelectSlideNumFields].Selection = 2;
|
||||
_SelectSlides[_SelectSlideNumFields].Selection = 2;
|
||||
|
||||
SelectSlides[_SelectSlideSongSource].Clear();
|
||||
SelectSlides[_SelectSlideSongSource].SetValues<ESongSource>((int)_Data.ScreenConfig.SongSource);
|
||||
_SelectSlides[_SelectSlideSongSource].Clear();
|
||||
_SelectSlides[_SelectSlideSongSource].SetValues<ESongSource>((int)_Data.ScreenConfig.SongSource);
|
||||
|
||||
string[] playlists = CBase.Playlist.GetPlaylistNames();
|
||||
SelectSlides[_SelectSlidePlaylist].Clear();
|
||||
_SelectSlides[_SelectSlidePlaylist].Clear();
|
||||
for (int i = 0; i < playlists.Length; i++)
|
||||
{
|
||||
string value = playlists[i] + " (" + CBase.Playlist.GetPlaylistSongCount(i) + " " + CBase.Language.Translate("TR_SONGS", _PartyModeID) + ")";
|
||||
SelectSlides[_SelectSlidePlaylist].AddValue(value);
|
||||
_SelectSlides[_SelectSlidePlaylist].AddValue(value);
|
||||
}
|
||||
SelectSlides[_SelectSlidePlaylist].Selection = _Data.ScreenConfig.PlaylistID;
|
||||
SelectSlides[_SelectSlidePlaylist].Visible = _Data.ScreenConfig.SongSource == ESongSource.TR_PLAYLIST;
|
||||
_SelectSlides[_SelectSlidePlaylist].Selection = _Data.ScreenConfig.PlaylistID;
|
||||
_SelectSlides[_SelectSlidePlaylist].Visible = _Data.ScreenConfig.SongSource == ESongSource.TR_PLAYLIST;
|
||||
|
||||
string[] categories = new string[CBase.Songs.GetNumCategories()];
|
||||
for (int i = 0; i < CBase.Songs.GetNumCategories(); i++)
|
||||
categories[i] = CBase.Songs.GetCategory(i).Name;
|
||||
SelectSlides[_SelectSlideCategory].Clear();
|
||||
_SelectSlides[_SelectSlideCategory].Clear();
|
||||
for (int i = 0; i < categories.Length; i++)
|
||||
{
|
||||
string value = categories[i] + " (" + CBase.Songs.NumSongsInCategory(i) + " " + CBase.Language.Translate("TR_SONGS", _PartyModeID) + ")";
|
||||
SelectSlides[_SelectSlideCategory].AddValue(value);
|
||||
_SelectSlides[_SelectSlideCategory].AddValue(value);
|
||||
}
|
||||
SelectSlides[_SelectSlideCategory].Selection = _Data.ScreenConfig.CategoryID;
|
||||
SelectSlides[_SelectSlideCategory].Visible = _Data.ScreenConfig.SongSource == ESongSource.TR_CATEGORY;
|
||||
_SelectSlides[_SelectSlideCategory].Selection = _Data.ScreenConfig.CategoryID;
|
||||
_SelectSlides[_SelectSlideCategory].Visible = _Data.ScreenConfig.SongSource == ESongSource.TR_CATEGORY;
|
||||
|
||||
SelectSlides[_SelectSlideGameMode].Visible = true;
|
||||
SelectSlides[_SelectSlideGameMode].SetValues<EPartyGameMode>((int)_Data.ScreenConfig.GameMode);
|
||||
_SelectSlides[_SelectSlideGameMode].Visible = true;
|
||||
_SelectSlides[_SelectSlideGameMode].SetValues<EPartyGameMode>((int)_Data.ScreenConfig.GameMode);
|
||||
}
|
||||
|
||||
private void _UpdateSlides()
|
||||
{
|
||||
_Data.ScreenConfig.NumPlayerTeam1 = SelectSlides[_SelectSlideNumPlayerTeam1].Selection + (_PartyMode.GetMinPlayer() / 2);
|
||||
_Data.ScreenConfig.NumPlayerTeam2 = SelectSlides[_SelectSlideNumPlayerTeam2].Selection + (_PartyMode.GetMinPlayer() / 2);
|
||||
_Data.ScreenConfig.NumPlayerTeam1 = _SelectSlides[_SelectSlideNumPlayerTeam1].Selection + (_PartyMode.GetMinPlayer() / 2);
|
||||
_Data.ScreenConfig.NumPlayerTeam2 = _SelectSlides[_SelectSlideNumPlayerTeam2].Selection + (_PartyMode.GetMinPlayer() / 2);
|
||||
|
||||
if (SelectSlides[_SelectSlideNumFields].Selection == 0)
|
||||
if (_SelectSlides[_SelectSlideNumFields].Selection == 0)
|
||||
_Data.ScreenConfig.NumFields = 9;
|
||||
else if (SelectSlides[_SelectSlideNumFields].Selection == 1)
|
||||
else if (_SelectSlides[_SelectSlideNumFields].Selection == 1)
|
||||
_Data.ScreenConfig.NumFields = 16;
|
||||
else if (SelectSlides[_SelectSlideNumFields].Selection == 2)
|
||||
else if (_SelectSlides[_SelectSlideNumFields].Selection == 2)
|
||||
_Data.ScreenConfig.NumFields = 25;
|
||||
|
||||
_Data.ScreenConfig.SongSource = (ESongSource)SelectSlides[_SelectSlideSongSource].Selection;
|
||||
_Data.ScreenConfig.PlaylistID = SelectSlides[_SelectSlidePlaylist].Selection;
|
||||
_Data.ScreenConfig.CategoryID = SelectSlides[_SelectSlideCategory].Selection;
|
||||
_Data.ScreenConfig.GameMode = (EPartyGameMode)SelectSlides[_SelectSlideGameMode].Selection;
|
||||
_Data.ScreenConfig.SongSource = (ESongSource)_SelectSlides[_SelectSlideSongSource].Selection;
|
||||
_Data.ScreenConfig.PlaylistID = _SelectSlides[_SelectSlidePlaylist].Selection;
|
||||
_Data.ScreenConfig.CategoryID = _SelectSlides[_SelectSlideCategory].Selection;
|
||||
_Data.ScreenConfig.GameMode = (EPartyGameMode)_SelectSlides[_SelectSlideGameMode].Selection;
|
||||
|
||||
EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL;
|
||||
|
||||
@@ -333,8 +331,8 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
else
|
||||
_ConfigOk = false;
|
||||
}
|
||||
SelectSlides[_SelectSlideCategory].Visible = _Data.ScreenConfig.SongSource == ESongSource.TR_CATEGORY;
|
||||
SelectSlides[_SelectSlidePlaylist].Visible = _Data.ScreenConfig.SongSource == ESongSource.TR_PLAYLIST;
|
||||
_SelectSlides[_SelectSlideCategory].Visible = _Data.ScreenConfig.SongSource == ESongSource.TR_CATEGORY;
|
||||
_SelectSlides[_SelectSlidePlaylist].Visible = _Data.ScreenConfig.SongSource == ESongSource.TR_PLAYLIST;
|
||||
}
|
||||
|
||||
private void _Back()
|
||||
|
||||
@@ -122,16 +122,14 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
base.LoadTheme(xmlPath);
|
||||
|
||||
_CreateFields();
|
||||
Buttons[_ButtonField].Visible = false;
|
||||
_Buttons[_ButtonField].Visible = false;
|
||||
}
|
||||
|
||||
public override void DataToScreen(object receivedData)
|
||||
{
|
||||
SDataToScreenMain config = new SDataToScreenMain();
|
||||
|
||||
try
|
||||
{
|
||||
config = (SDataToScreenMain)receivedData;
|
||||
SDataToScreenMain config = (SDataToScreenMain)receivedData;
|
||||
_GameData = config;
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -167,11 +165,11 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
case Keys.Enter:
|
||||
if (!_ExitPopupVisible)
|
||||
{
|
||||
if (Buttons[_ButtonNextRound].Selected)
|
||||
if (_Buttons[_ButtonNextRound].Selected)
|
||||
_NextRound();
|
||||
if (Buttons[_ButtonBack].Selected && _GameData.CurrentRoundNr == 1 && _Status != EStatus.FieldSelected)
|
||||
if (_Buttons[_ButtonBack].Selected && _GameData.CurrentRoundNr == 1 && _Status != EStatus.FieldSelected)
|
||||
_Back();
|
||||
if (Buttons[_ButtonExit].Selected && (_GameData.CurrentRoundNr > 1 || _Status == EStatus.FieldSelected) && _Status != EStatus.None)
|
||||
if (_Buttons[_ButtonExit].Selected && (_GameData.CurrentRoundNr > 1 || _Status == EStatus.FieldSelected) && _Status != EStatus.None)
|
||||
_ShowPopup(true);
|
||||
else if (_Status == EStatus.None)
|
||||
_EndParty();
|
||||
@@ -198,21 +196,21 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
}
|
||||
if (_Status == EStatus.FieldSelected)
|
||||
{
|
||||
if (Buttons[_ButtonJokerRandomT1].Selected)
|
||||
if (_Buttons[_ButtonJokerRandomT1].Selected)
|
||||
_UseJoker(0, 0);
|
||||
if (Buttons[_ButtonJokerRandomT2].Selected)
|
||||
if (_Buttons[_ButtonJokerRandomT2].Selected)
|
||||
_UseJoker(1, 0);
|
||||
if (Buttons[_ButtonJokerRetryT1].Selected)
|
||||
if (_Buttons[_ButtonJokerRetryT1].Selected)
|
||||
_UseJoker(0, 1);
|
||||
if (Buttons[_ButtonJokerRetryT2].Selected)
|
||||
if (_Buttons[_ButtonJokerRetryT2].Selected)
|
||||
_UseJoker(1, 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Buttons[_ButtonPopupYes].Selected)
|
||||
if (_Buttons[_ButtonPopupYes].Selected)
|
||||
_EndParty();
|
||||
if (Buttons[_ButtonPopupNo].Selected)
|
||||
if (_Buttons[_ButtonPopupNo].Selected)
|
||||
_ShowPopup(false);
|
||||
}
|
||||
break;
|
||||
@@ -225,15 +223,15 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
{
|
||||
base.HandleMouse(mouseEvent);
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
if (!_ExitPopupVisible)
|
||||
{
|
||||
if (Buttons[_ButtonNextRound].Selected)
|
||||
if (_Buttons[_ButtonNextRound].Selected)
|
||||
_NextRound();
|
||||
if (Buttons[_ButtonBack].Selected)
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
_Back();
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
{
|
||||
if (_Status == EStatus.None)
|
||||
_EndParty();
|
||||
@@ -263,21 +261,21 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
}
|
||||
if (_Status == EStatus.FieldSelected)
|
||||
{
|
||||
if (Buttons[_ButtonJokerRandomT1].Selected)
|
||||
if (_Buttons[_ButtonJokerRandomT1].Selected)
|
||||
_UseJoker(0, 0);
|
||||
if (Buttons[_ButtonJokerRandomT2].Selected)
|
||||
if (_Buttons[_ButtonJokerRandomT2].Selected)
|
||||
_UseJoker(1, 0);
|
||||
if (Buttons[_ButtonJokerRetryT1].Selected)
|
||||
if (_Buttons[_ButtonJokerRetryT1].Selected)
|
||||
_UseJoker(0, 1);
|
||||
if (Buttons[_ButtonJokerRetryT2].Selected)
|
||||
if (_Buttons[_ButtonJokerRetryT2].Selected)
|
||||
_UseJoker(1, 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Buttons[_ButtonPopupYes].Selected)
|
||||
if (_Buttons[_ButtonPopupYes].Selected)
|
||||
_EndParty();
|
||||
if (Buttons[_ButtonPopupNo].Selected)
|
||||
if (_Buttons[_ButtonPopupNo].Selected)
|
||||
_ShowPopup(false);
|
||||
}
|
||||
}
|
||||
@@ -312,15 +310,15 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
{
|
||||
_BuildWinnerPossibilities();
|
||||
_SelectedField = -1;
|
||||
Buttons[_ButtonBack].Visible = true;
|
||||
Buttons[_ButtonExit].Visible = false;
|
||||
SetInteractionToButton(Buttons[_ButtonBack]);
|
||||
_Buttons[_ButtonBack].Visible = true;
|
||||
_Buttons[_ButtonExit].Visible = false;
|
||||
_SetInteractionToButton(_Buttons[_ButtonBack]);
|
||||
}
|
||||
else
|
||||
{
|
||||
Buttons[_ButtonBack].Visible = false;
|
||||
Buttons[_ButtonExit].Visible = true;
|
||||
SetInteractionToButton(Buttons[_ButtonExit]);
|
||||
_Buttons[_ButtonBack].Visible = false;
|
||||
_Buttons[_ButtonExit].Visible = true;
|
||||
_SetInteractionToButton(_Buttons[_ButtonExit]);
|
||||
}
|
||||
|
||||
_Status = EStatus.FieldChoosing;
|
||||
@@ -332,37 +330,37 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
if (_GameData.CurrentRoundNr <= _GameData.NumFields && winner == 0)
|
||||
{
|
||||
_UpdateTeamChoosingMessage();
|
||||
Texts[_TextNextPlayerT1].Visible = false;
|
||||
Texts[_TextNextPlayerT2].Visible = false;
|
||||
Texts[_TextNextPlayerNameT1].Visible = false;
|
||||
Texts[_TextNextPlayerNameT2].Visible = false;
|
||||
Statics[_StaticAvatarT1].Visible = false;
|
||||
Statics[_StaticAvatarT2].Visible = false;
|
||||
Buttons[_ButtonJokerRandomT1].Visible = false;
|
||||
Buttons[_ButtonJokerRandomT2].Visible = false;
|
||||
Buttons[_ButtonJokerRetryT1].Visible = false;
|
||||
Buttons[_ButtonJokerRetryT2].Visible = false;
|
||||
Buttons[_ButtonNextRound].Visible = false;
|
||||
Texts[_TextFinishMessage].Visible = false;
|
||||
_Texts[_TextNextPlayerT1].Visible = false;
|
||||
_Texts[_TextNextPlayerT2].Visible = false;
|
||||
_Texts[_TextNextPlayerNameT1].Visible = false;
|
||||
_Texts[_TextNextPlayerNameT2].Visible = false;
|
||||
_Statics[_StaticAvatarT1].Visible = false;
|
||||
_Statics[_StaticAvatarT2].Visible = false;
|
||||
_Buttons[_ButtonJokerRandomT1].Visible = false;
|
||||
_Buttons[_ButtonJokerRandomT2].Visible = false;
|
||||
_Buttons[_ButtonJokerRetryT1].Visible = false;
|
||||
_Buttons[_ButtonJokerRetryT2].Visible = false;
|
||||
_Buttons[_ButtonNextRound].Visible = false;
|
||||
_Texts[_TextFinishMessage].Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
_Status = EStatus.None;
|
||||
Buttons[_ButtonNextRound].Visible = false;
|
||||
Texts[_TextFinishMessage].Visible = true;
|
||||
Texts[_TextTeamChoosing].Visible = false;
|
||||
_Buttons[_ButtonNextRound].Visible = false;
|
||||
_Texts[_TextFinishMessage].Visible = true;
|
||||
_Texts[_TextTeamChoosing].Visible = false;
|
||||
if (winner > 0)
|
||||
{
|
||||
Texts[_TextFinishMessage].Color = CBase.Theme.GetPlayerColor(winner);
|
||||
Texts[_TextFinishMessage].Text = CBase.Language.Translate("TR_SCREENMAIN_WINNER", _PartyModeID) + " " + CBase.Language.Translate("TR_TEAM", _PartyModeID) + " " +
|
||||
_Texts[_TextFinishMessage].Color = CBase.Theme.GetPlayerColor(winner);
|
||||
_Texts[_TextFinishMessage].Text = CBase.Language.Translate("TR_SCREENMAIN_WINNER", _PartyModeID) + " " + CBase.Language.Translate("TR_TEAM", _PartyModeID) + " " +
|
||||
winner;
|
||||
}
|
||||
else
|
||||
{
|
||||
Texts[_TextFinishMessage].Color = new SColorF(1, 1, 1, 1);
|
||||
Texts[_TextFinishMessage].Text = CBase.Language.Translate("TR_SCREENMAIN_NOWINNER", _PartyModeID);
|
||||
_Texts[_TextFinishMessage].Color = new SColorF(1, 1, 1, 1);
|
||||
_Texts[_TextFinishMessage].Text = CBase.Language.Translate("TR_SCREENMAIN_NOWINNER", _PartyModeID);
|
||||
}
|
||||
SetInteractionToButton(Buttons[_ButtonExit]);
|
||||
_SetInteractionToButton(_Buttons[_ButtonExit]);
|
||||
}
|
||||
|
||||
_ShowPopup(false);
|
||||
@@ -391,10 +389,10 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
for (int i = 0; i < 25; i++)
|
||||
{
|
||||
CField f = new CField();
|
||||
f.Button = GetNewButton(Buttons[_ButtonField]);
|
||||
f.Button = GetNewButton(_Buttons[_ButtonField]);
|
||||
f.Button.Visible = false;
|
||||
f.Content = new CRound();
|
||||
AddButton(f.Button);
|
||||
_AddButton(f.Button);
|
||||
_Fields.Add(f);
|
||||
}
|
||||
}
|
||||
@@ -448,9 +446,9 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
for (int i = 0; i < _GameData.Rounds.Count; i++)
|
||||
{
|
||||
_Fields[i].Button.Enabled = true;
|
||||
_Fields[i].Button.Texture = Buttons[_ButtonField].Texture;
|
||||
_Fields[i].Button.Color = Buttons[_ButtonField].Color;
|
||||
_Fields[i].Button.SelColor = Buttons[_ButtonField].SelColor;
|
||||
_Fields[i].Button.Texture = _Buttons[_ButtonField].Texture;
|
||||
_Fields[i].Button.Color = _Buttons[_ButtonField].Color;
|
||||
_Fields[i].Button.SelColor = _Buttons[_ButtonField].SelColor;
|
||||
_Fields[i].Content = _GameData.Rounds[i];
|
||||
if (_Fields[i].Content.Finished)
|
||||
{
|
||||
@@ -515,25 +513,25 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
_GameData.Rounds[_SelectedField].SingerTeam2 = singerTeam2;
|
||||
_UpdateFieldContents();
|
||||
|
||||
Texts[_TextNextPlayerT1].Visible = true;
|
||||
Texts[_TextNextPlayerT2].Visible = true;
|
||||
Texts[_TextNextPlayerNameT1].Visible = true;
|
||||
Texts[_TextNextPlayerNameT2].Visible = true;
|
||||
_Texts[_TextNextPlayerT1].Visible = true;
|
||||
_Texts[_TextNextPlayerT2].Visible = true;
|
||||
_Texts[_TextNextPlayerNameT1].Visible = true;
|
||||
_Texts[_TextNextPlayerNameT2].Visible = true;
|
||||
SProfile[] profiles = CBase.Profiles.GetProfiles();
|
||||
Texts[_TextNextPlayerNameT1].Text = profiles[_GameData.ProfileIDsTeam1[_GameData.Rounds[_SelectedField].SingerTeam1]].PlayerName;
|
||||
Texts[_TextNextPlayerNameT2].Text = profiles[_GameData.ProfileIDsTeam2[_GameData.Rounds[_SelectedField].SingerTeam2]].PlayerName;
|
||||
Statics[_StaticAvatarT1].Visible = true;
|
||||
Statics[_StaticAvatarT2].Visible = true;
|
||||
Statics[_StaticAvatarT1].Texture = profiles[_GameData.ProfileIDsTeam1[_GameData.Rounds[_SelectedField].SingerTeam1]].Avatar.Texture;
|
||||
Statics[_StaticAvatarT2].Texture = profiles[_GameData.ProfileIDsTeam2[_GameData.Rounds[_SelectedField].SingerTeam2]].Avatar.Texture;
|
||||
_Texts[_TextNextPlayerNameT1].Text = profiles[_GameData.ProfileIDsTeam1[_GameData.Rounds[_SelectedField].SingerTeam1]].PlayerName;
|
||||
_Texts[_TextNextPlayerNameT2].Text = profiles[_GameData.ProfileIDsTeam2[_GameData.Rounds[_SelectedField].SingerTeam2]].PlayerName;
|
||||
_Statics[_StaticAvatarT1].Visible = true;
|
||||
_Statics[_StaticAvatarT2].Visible = true;
|
||||
_Statics[_StaticAvatarT1].Texture = profiles[_GameData.ProfileIDsTeam1[_GameData.Rounds[_SelectedField].SingerTeam1]].Avatar.Texture;
|
||||
_Statics[_StaticAvatarT2].Texture = profiles[_GameData.ProfileIDsTeam2[_GameData.Rounds[_SelectedField].SingerTeam2]].Avatar.Texture;
|
||||
|
||||
_UpdateJokerButtons();
|
||||
|
||||
Buttons[_ButtonNextRound].Visible = true;
|
||||
Buttons[_ButtonExit].Visible = true;
|
||||
Buttons[_ButtonBack].Visible = false;
|
||||
_Buttons[_ButtonNextRound].Visible = true;
|
||||
_Buttons[_ButtonExit].Visible = true;
|
||||
_Buttons[_ButtonBack].Visible = false;
|
||||
|
||||
SetInteractionToButton(Buttons[_ButtonNextRound]);
|
||||
_SetInteractionToButton(_Buttons[_ButtonNextRound]);
|
||||
}
|
||||
|
||||
private void _FieldSelectedAgain()
|
||||
@@ -554,25 +552,25 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
_GameData.Rounds[_SelectedField].SingerTeam2 = _GameData.Rounds[_OldSelectedField].SingerTeam2;
|
||||
_UpdateFieldContents();
|
||||
|
||||
Texts[_TextNextPlayerT1].Visible = true;
|
||||
Texts[_TextNextPlayerT2].Visible = true;
|
||||
Texts[_TextNextPlayerNameT1].Visible = true;
|
||||
Texts[_TextNextPlayerNameT2].Visible = true;
|
||||
_Texts[_TextNextPlayerT1].Visible = true;
|
||||
_Texts[_TextNextPlayerT2].Visible = true;
|
||||
_Texts[_TextNextPlayerNameT1].Visible = true;
|
||||
_Texts[_TextNextPlayerNameT2].Visible = true;
|
||||
SProfile[] profiles = CBase.Profiles.GetProfiles();
|
||||
Texts[_TextNextPlayerNameT1].Text = profiles[_GameData.ProfileIDsTeam1[_GameData.Rounds[_SelectedField].SingerTeam1]].PlayerName;
|
||||
Texts[_TextNextPlayerNameT2].Text = profiles[_GameData.ProfileIDsTeam2[_GameData.Rounds[_SelectedField].SingerTeam2]].PlayerName;
|
||||
Statics[_StaticAvatarT1].Visible = true;
|
||||
Statics[_StaticAvatarT2].Visible = true;
|
||||
Statics[_StaticAvatarT1].Texture = profiles[_GameData.ProfileIDsTeam1[_GameData.Rounds[_SelectedField].SingerTeam1]].Avatar.Texture;
|
||||
Statics[_StaticAvatarT2].Texture = profiles[_GameData.ProfileIDsTeam2[_GameData.Rounds[_SelectedField].SingerTeam2]].Avatar.Texture;
|
||||
_Texts[_TextNextPlayerNameT1].Text = profiles[_GameData.ProfileIDsTeam1[_GameData.Rounds[_SelectedField].SingerTeam1]].PlayerName;
|
||||
_Texts[_TextNextPlayerNameT2].Text = profiles[_GameData.ProfileIDsTeam2[_GameData.Rounds[_SelectedField].SingerTeam2]].PlayerName;
|
||||
_Statics[_StaticAvatarT1].Visible = true;
|
||||
_Statics[_StaticAvatarT2].Visible = true;
|
||||
_Statics[_StaticAvatarT1].Texture = profiles[_GameData.ProfileIDsTeam1[_GameData.Rounds[_SelectedField].SingerTeam1]].Avatar.Texture;
|
||||
_Statics[_StaticAvatarT2].Texture = profiles[_GameData.ProfileIDsTeam2[_GameData.Rounds[_SelectedField].SingerTeam2]].Avatar.Texture;
|
||||
|
||||
_UpdateJokerButtons();
|
||||
|
||||
Buttons[_ButtonNextRound].Visible = true;
|
||||
Buttons[_ButtonExit].Visible = true;
|
||||
Buttons[_ButtonBack].Visible = false;
|
||||
_Buttons[_ButtonNextRound].Visible = true;
|
||||
_Buttons[_ButtonExit].Visible = true;
|
||||
_Buttons[_ButtonBack].Visible = false;
|
||||
|
||||
SetInteractionToButton(Buttons[_ButtonNextRound]);
|
||||
_SetInteractionToButton(_Buttons[_ButtonNextRound]);
|
||||
}
|
||||
|
||||
private void _UseJoker(int teamNr, int jokerNum)
|
||||
@@ -610,29 +608,29 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
|
||||
private void _UpdateTeamChoosingMessage()
|
||||
{
|
||||
Texts[_TextTeamChoosing].Color = CBase.Theme.GetPlayerColor(_GameData.Team + 1);
|
||||
Texts[_TextTeamChoosing].Text = CBase.Language.Translate("TR_TEAM", _PartyModeID) + " " + (_GameData.Team + 1) + "! " +
|
||||
_Texts[_TextTeamChoosing].Color = CBase.Theme.GetPlayerColor(_GameData.Team + 1);
|
||||
_Texts[_TextTeamChoosing].Text = CBase.Language.Translate("TR_TEAM", _PartyModeID) + " " + (_GameData.Team + 1) + "! " +
|
||||
CBase.Language.Translate("TR_SCREENMAIN_TEAM_CHOOSE", _PartyModeID);
|
||||
if (_Status == EStatus.JokerRetry || _Status == EStatus.FieldChoosing)
|
||||
Texts[_TextTeamChoosing].Visible = true;
|
||||
_Texts[_TextTeamChoosing].Visible = true;
|
||||
else
|
||||
Texts[_TextTeamChoosing].Visible = false;
|
||||
_Texts[_TextTeamChoosing].Visible = false;
|
||||
}
|
||||
|
||||
private void _UpdateJokerButtons()
|
||||
{
|
||||
Buttons[_ButtonJokerRandomT1].Visible = true;
|
||||
Buttons[_ButtonJokerRandomT2].Visible = true;
|
||||
Buttons[_ButtonJokerRandomT1].Text.Text = _GameData.NumJokerRandom[0].ToString();
|
||||
Buttons[_ButtonJokerRandomT2].Text.Text = _GameData.NumJokerRandom[1].ToString();
|
||||
Buttons[_ButtonJokerRandomT1].Enabled = _GameData.NumJokerRandom[0] > 0;
|
||||
Buttons[_ButtonJokerRandomT2].Enabled = _GameData.NumJokerRandom[1] > 0;
|
||||
Buttons[_ButtonJokerRetryT1].Visible = true;
|
||||
Buttons[_ButtonJokerRetryT2].Visible = true;
|
||||
Buttons[_ButtonJokerRetryT1].Text.Text = _GameData.NumJokerRetry[0].ToString();
|
||||
Buttons[_ButtonJokerRetryT2].Text.Text = _GameData.NumJokerRetry[1].ToString();
|
||||
Buttons[_ButtonJokerRetryT1].Enabled = _GameData.NumJokerRetry[0] > 0;
|
||||
Buttons[_ButtonJokerRetryT2].Enabled = _GameData.NumJokerRetry[1] > 0;
|
||||
_Buttons[_ButtonJokerRandomT1].Visible = true;
|
||||
_Buttons[_ButtonJokerRandomT2].Visible = true;
|
||||
_Buttons[_ButtonJokerRandomT1].Text.Text = _GameData.NumJokerRandom[0].ToString();
|
||||
_Buttons[_ButtonJokerRandomT2].Text.Text = _GameData.NumJokerRandom[1].ToString();
|
||||
_Buttons[_ButtonJokerRandomT1].Enabled = _GameData.NumJokerRandom[0] > 0;
|
||||
_Buttons[_ButtonJokerRandomT2].Enabled = _GameData.NumJokerRandom[1] > 0;
|
||||
_Buttons[_ButtonJokerRetryT1].Visible = true;
|
||||
_Buttons[_ButtonJokerRetryT2].Visible = true;
|
||||
_Buttons[_ButtonJokerRetryT1].Text.Text = _GameData.NumJokerRetry[0].ToString();
|
||||
_Buttons[_ButtonJokerRetryT2].Text.Text = _GameData.NumJokerRetry[1].ToString();
|
||||
_Buttons[_ButtonJokerRetryT1].Enabled = _GameData.NumJokerRetry[0] > 0;
|
||||
_Buttons[_ButtonJokerRetryT2].Enabled = _GameData.NumJokerRetry[1] > 0;
|
||||
}
|
||||
|
||||
private void _NextRound()
|
||||
@@ -658,13 +656,13 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
{
|
||||
_ExitPopupVisible = visible;
|
||||
|
||||
Statics[_StaticPopupBG].Visible = _ExitPopupVisible;
|
||||
Texts[_TextPopupReallyExit].Visible = _ExitPopupVisible;
|
||||
Buttons[_ButtonPopupYes].Visible = _ExitPopupVisible;
|
||||
Buttons[_ButtonPopupNo].Visible = _ExitPopupVisible;
|
||||
_Statics[_StaticPopupBG].Visible = _ExitPopupVisible;
|
||||
_Texts[_TextPopupReallyExit].Visible = _ExitPopupVisible;
|
||||
_Buttons[_ButtonPopupYes].Visible = _ExitPopupVisible;
|
||||
_Buttons[_ButtonPopupNo].Visible = _ExitPopupVisible;
|
||||
|
||||
if (_ExitPopupVisible)
|
||||
SetInteractionToButton(Buttons[_ButtonPopupNo]);
|
||||
_SetInteractionToButton(_Buttons[_ButtonPopupNo]);
|
||||
}
|
||||
|
||||
private void _Back()
|
||||
|
||||
@@ -43,7 +43,6 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
private List<CButton> _PlayerDestinationButtons;
|
||||
//PlayerDestinationButtons-Option
|
||||
private const int _PlayerDestinationButtonsNumH = 10;
|
||||
private const int _PlayerDestinationButtonsNumW = 2;
|
||||
private const int _PlayerDestinationButtonsFirstX = 58;
|
||||
private const int _PlayerDestinationButtonsFirstY = 380;
|
||||
private const int _PlayerDestinationButtonsSpaceH = 15;
|
||||
@@ -102,11 +101,9 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
|
||||
public override void DataToScreen(object receivedData)
|
||||
{
|
||||
SDataToScreenNames config = new SDataToScreenNames();
|
||||
|
||||
try
|
||||
{
|
||||
config = (SDataToScreenNames)receivedData;
|
||||
SDataToScreenNames config = (SDataToScreenNames)receivedData;
|
||||
_Data.ScreenNames.ProfileIDsTeam1 = config.ProfileIDsTeam1;
|
||||
_Data.ScreenNames.ProfileIDsTeam2 = config.ProfileIDsTeam2;
|
||||
if (_Data.ScreenNames.ProfileIDsTeam1 == null)
|
||||
@@ -143,16 +140,16 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
if (Buttons[_ButtonBack].Selected)
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
_Back();
|
||||
|
||||
if (Buttons[_ButtonNext].Selected)
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
_Next();
|
||||
|
||||
if (Buttons[_ButtonPlayerChooseScrollUp].Selected)
|
||||
if (_Buttons[_ButtonPlayerChooseScrollUp].Selected)
|
||||
_Scroll(-1);
|
||||
|
||||
if (Buttons[_ButtonPlayerChooseScrollDown].Selected)
|
||||
if (_Buttons[_ButtonPlayerChooseScrollDown].Selected)
|
||||
_Scroll(1);
|
||||
|
||||
if (!_OnAdd())
|
||||
@@ -274,22 +271,22 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
return true;
|
||||
}
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
if (Buttons[_ButtonBack].Selected)
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
_Back();
|
||||
|
||||
if (Buttons[_ButtonNext].Selected)
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
_Next();
|
||||
|
||||
if (Buttons[_ButtonPlayerChooseScrollUp].Selected)
|
||||
if (_Buttons[_ButtonPlayerChooseScrollUp].Selected)
|
||||
_Scroll(-1);
|
||||
|
||||
if (Buttons[_ButtonPlayerChooseScrollDown].Selected)
|
||||
if (_Buttons[_ButtonPlayerChooseScrollDown].Selected)
|
||||
_Scroll(1);
|
||||
}
|
||||
|
||||
if (mouseEvent.LD && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LD && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
if (!_OnAdd())
|
||||
_OnRemove();
|
||||
@@ -347,13 +344,13 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
|
||||
private void _AddButtonPlayerDestination()
|
||||
{
|
||||
Buttons[_ButtonPlayerDestination].Visible = false;
|
||||
_Buttons[_ButtonPlayerDestination].Visible = false;
|
||||
_PlayerDestinationButtons = new List<CButton>();
|
||||
int row = 0;
|
||||
int column = 0;
|
||||
for (int i = 1; i <= _PartyMode.GetMaxPlayer(); i++)
|
||||
{
|
||||
CButton b = GetNewButton(Buttons[_ButtonPlayerDestination]);
|
||||
CButton b = GetNewButton(_Buttons[_ButtonPlayerDestination]);
|
||||
b.Rect.X = _PlayerDestinationButtonsFirstX + column * (b.Rect.W + _PlayerDestinationButtonsSpaceH);
|
||||
b.Rect.Y = _PlayerDestinationButtonsFirstY + row * (b.Rect.H + _PlayerDestinationButtonsSpaceW);
|
||||
_PlayerDestinationButtons.Add(b);
|
||||
@@ -365,19 +362,19 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
}
|
||||
b.Visible = true;
|
||||
b.Enabled = false;
|
||||
AddButton(b);
|
||||
_AddButton(b);
|
||||
}
|
||||
}
|
||||
|
||||
private void _AddButtonPlayerChoose()
|
||||
{
|
||||
Buttons[_ButtonPlayerChoose].Visible = false;
|
||||
_Buttons[_ButtonPlayerChoose].Visible = false;
|
||||
_PlayerChooseButtons = new List<CPlayerChooseButton>();
|
||||
int row = 0;
|
||||
int column = 0;
|
||||
for (int i = 1; i <= _PlayerChooseButtonsNumH * _PlayerChooseButtonsNumW; i++)
|
||||
{
|
||||
CButton b = GetNewButton(Buttons[_ButtonPlayerChoose]);
|
||||
CButton b = GetNewButton(_Buttons[_ButtonPlayerChoose]);
|
||||
b.Rect.X = _PlayerChooseButtonsFirstX + column * (b.Rect.W + _PlayerChooseButtonsSpaceH);
|
||||
b.Rect.Y = _PlayerChooseButtonsFirstY + row * (b.Rect.H + _PlayerChooseButtonsSpaceW);
|
||||
CPlayerChooseButton pcb = new CPlayerChooseButton();
|
||||
@@ -392,7 +389,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
}
|
||||
b.Visible = true;
|
||||
b.Enabled = false;
|
||||
AddButton(b);
|
||||
_AddButton(b);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -404,8 +401,8 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
_UpdateButtonPlayerChoose(_PlayerChooseButtonsOffset - 1);
|
||||
else
|
||||
_UpdateButtonPlayerChoose(_PlayerChooseButtonsOffset);
|
||||
Buttons[_ButtonPlayerChooseScrollUp].Enabled = _PlayerChooseButtonsOffset > 0;
|
||||
Buttons[_ButtonPlayerChooseScrollDown].Enabled = _PlayerChooseButtonsVisibleProfiles.Count >
|
||||
_Buttons[_ButtonPlayerChooseScrollUp].Enabled = _PlayerChooseButtonsOffset > 0;
|
||||
_Buttons[_ButtonPlayerChooseScrollDown].Enabled = _PlayerChooseButtonsVisibleProfiles.Count >
|
||||
_PlayerChooseButtons.Count + _PlayerChooseButtonsOffset * _PlayerChooseButtonsNumH;
|
||||
}
|
||||
|
||||
@@ -435,10 +432,10 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
{
|
||||
_PlayerChooseButtons[i].ProfileID = -1;
|
||||
_PlayerChooseButtons[i].Button.Text.Text = String.Empty;
|
||||
_PlayerChooseButtons[i].Button.Texture = Buttons[_ButtonPlayerChoose].Texture;
|
||||
_PlayerChooseButtons[i].Button.SelTexture = Buttons[_ButtonPlayerChoose].SelTexture;
|
||||
_PlayerChooseButtons[i].Button.Color = Buttons[_ButtonPlayerChoose].Color;
|
||||
_PlayerChooseButtons[i].Button.SelColor = Buttons[_ButtonPlayerChoose].SelColor;
|
||||
_PlayerChooseButtons[i].Button.Texture = _Buttons[_ButtonPlayerChoose].Texture;
|
||||
_PlayerChooseButtons[i].Button.SelTexture = _Buttons[_ButtonPlayerChoose].SelTexture;
|
||||
_PlayerChooseButtons[i].Button.Color = _Buttons[_ButtonPlayerChoose].Color;
|
||||
_PlayerChooseButtons[i].Button.SelColor = _Buttons[_ButtonPlayerChoose].SelColor;
|
||||
_PlayerChooseButtons[i].Button.Enabled = false;
|
||||
}
|
||||
}
|
||||
@@ -525,10 +522,10 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
}
|
||||
else
|
||||
{
|
||||
_PlayerDestinationButtons[i].Color = Buttons[_ButtonPlayerDestination].Color;
|
||||
_PlayerDestinationButtons[i].SelColor = Buttons[_ButtonPlayerDestination].SelColor;
|
||||
_PlayerDestinationButtons[i].Texture = Buttons[_ButtonPlayerDestination].Texture;
|
||||
_PlayerDestinationButtons[i].SelTexture = Buttons[_ButtonPlayerDestination].SelTexture;
|
||||
_PlayerDestinationButtons[i].Color = _Buttons[_ButtonPlayerDestination].Color;
|
||||
_PlayerDestinationButtons[i].SelColor = _Buttons[_ButtonPlayerDestination].SelColor;
|
||||
_PlayerDestinationButtons[i].Texture = _Buttons[_ButtonPlayerDestination].Texture;
|
||||
_PlayerDestinationButtons[i].SelTexture = _Buttons[_ButtonPlayerDestination].SelTexture;
|
||||
_PlayerDestinationButtons[i].Text.Text = String.Empty;
|
||||
_PlayerDestinationButtons[i].Enabled = false;
|
||||
}
|
||||
@@ -549,10 +546,10 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
}
|
||||
else
|
||||
{
|
||||
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Color = Buttons[_ButtonPlayerDestination].Color;
|
||||
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].SelColor = Buttons[_ButtonPlayerDestination].SelColor;
|
||||
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Texture = Buttons[_ButtonPlayerDestination].Texture;
|
||||
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].SelTexture = Buttons[_ButtonPlayerDestination].SelTexture;
|
||||
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Color = _Buttons[_ButtonPlayerDestination].Color;
|
||||
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].SelColor = _Buttons[_ButtonPlayerDestination].SelColor;
|
||||
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Texture = _Buttons[_ButtonPlayerDestination].Texture;
|
||||
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].SelTexture = _Buttons[_ButtonPlayerDestination].SelTexture;
|
||||
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Text.Text = String.Empty;
|
||||
_PlayerDestinationButtons[i + _PlayerDestinationButtonsNumH].Enabled = false;
|
||||
}
|
||||
@@ -563,11 +560,11 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
{
|
||||
if (_Data.ScreenNames.ProfileIDsTeam1.Count == _NumPlayerTeam1 && _Data.ScreenNames.ProfileIDsTeam2.Count == _NumPlayerTeam2)
|
||||
{
|
||||
Buttons[_ButtonNext].Visible = true;
|
||||
SetInteractionToButton(Buttons[_ButtonNext]);
|
||||
_Buttons[_ButtonNext].Visible = true;
|
||||
_SetInteractionToButton(_Buttons[_ButtonNext]);
|
||||
}
|
||||
else
|
||||
Buttons[_ButtonNext].Visible = false;
|
||||
_Buttons[_ButtonNext].Visible = false;
|
||||
}
|
||||
|
||||
private bool _OnAdd()
|
||||
@@ -590,7 +587,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
_PlayerDestinationButtons[added].Enabled = true;
|
||||
//Update Tiles-List
|
||||
_UpdateButtonPlayerChoose();
|
||||
CheckInteraction();
|
||||
_CheckInteraction();
|
||||
return true;
|
||||
}
|
||||
else if (_Data.ScreenNames.ProfileIDsTeam2.Count < _NumPlayerTeam2)
|
||||
@@ -607,7 +604,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
_PlayerDestinationButtons[added].Enabled = true;
|
||||
//Update Tiles-List
|
||||
_UpdateButtonPlayerChoose();
|
||||
CheckInteraction();
|
||||
_CheckInteraction();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -627,7 +624,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
_UpdateButtonNext();
|
||||
_UpdateButtonPlayerDestination();
|
||||
_UpdateButtonPlayerChoose();
|
||||
CheckInteraction();
|
||||
_CheckInteraction();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -642,7 +639,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
_UpdateButtonNext();
|
||||
_UpdateButtonPlayerDestination();
|
||||
_UpdateButtonPlayerChoose();
|
||||
CheckInteraction();
|
||||
_CheckInteraction();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -460,7 +460,6 @@ namespace Vocaluxe.Base
|
||||
CVideo.VdClose(_Video);
|
||||
CDraw.RemoveTexture(ref _CurrentVideoTexture);
|
||||
_Video = -1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -471,8 +470,8 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
if (_Video != -1)
|
||||
{
|
||||
float vtime = 0f;
|
||||
CVideo.VdGetFrame(_Video, ref _CurrentVideoTexture, CSound.GetPosition(_CurrentMusicStream), ref vtime);
|
||||
float vtime;
|
||||
CVideo.VdGetFrame(_Video, ref _CurrentVideoTexture, CSound.GetPosition(_CurrentMusicStream), out vtime);
|
||||
if (_FadeTimer.ElapsedMilliseconds <= 3000L)
|
||||
_CurrentVideoTexture.Color.A = _FadeTimer.ElapsedMilliseconds / 3000f;
|
||||
else
|
||||
|
||||
+21
-21
@@ -52,7 +52,7 @@ namespace Vocaluxe.Base
|
||||
public static int ScreenH = 576;
|
||||
|
||||
public static EAntiAliasingModes AAMode = EAntiAliasingModes.X0;
|
||||
public static EColorDeep Colors = EColorDeep.Bit32;
|
||||
public static EColorDepth ColorDepth = EColorDepth.Bit32;
|
||||
|
||||
public static EOffOn VSync = EOffOn.TR_CONFIG_ON;
|
||||
public static EOffOn FullScreen = EOffOn.TR_CONFIG_ON;
|
||||
@@ -152,7 +152,7 @@ namespace Vocaluxe.Base
|
||||
xmlReader.TryGetIntValue("//root/Graphics/ScreenW", ref ScreenW);
|
||||
xmlReader.TryGetIntValue("//root/Graphics/ScreenH", ref ScreenH);
|
||||
xmlReader.TryGetEnumValue("//root/Graphics/AAMode", ref AAMode);
|
||||
xmlReader.TryGetEnumValue("//root/Graphics/Colors", ref Colors);
|
||||
xmlReader.TryGetEnumValue("//root/Graphics/Colors", ref ColorDepth);
|
||||
xmlReader.TryGetFloatValue("//root/Graphics/MaxFPS", ref MaxFPS);
|
||||
xmlReader.TryGetEnumValue("//root/Graphics/VSync", ref VSync);
|
||||
xmlReader.TryGetEnumValue("//root/Graphics/FullScreen", ref FullScreen);
|
||||
@@ -160,9 +160,9 @@ namespace Vocaluxe.Base
|
||||
#endregion Graphics
|
||||
|
||||
#region Theme
|
||||
xmlReader.GetValue("//root/Theme/Name", ref Theme, Theme);
|
||||
xmlReader.GetValue("//root/Theme/Skin", ref Skin, Skin);
|
||||
xmlReader.GetValue("//root/Theme/Cover", ref CoverTheme, CoverTheme);
|
||||
xmlReader.GetValue("//root/Theme/Name", out Theme, Theme);
|
||||
xmlReader.GetValue("//root/Theme/Skin", out Skin, Skin);
|
||||
xmlReader.GetValue("//root/Theme/Cover", out CoverTheme, CoverTheme);
|
||||
xmlReader.TryGetEnumValue("//root/Theme/DrawNoteLines", ref DrawNoteLines);
|
||||
xmlReader.TryGetEnumValue("//root/Theme/DrawToneHelper", ref DrawToneHelper);
|
||||
xmlReader.TryGetEnumValue("//root/Theme/TimerLook", ref TimerLook);
|
||||
@@ -191,7 +191,7 @@ namespace Vocaluxe.Base
|
||||
// Songfolder
|
||||
string value = string.Empty;
|
||||
int i = 1;
|
||||
while (xmlReader.GetValue("//root/Game/SongFolder" + i.ToString(), ref value, value))
|
||||
while (xmlReader.GetValue("//root/Game/SongFolder" + i, out value, value))
|
||||
{
|
||||
if (i == 1)
|
||||
SongFolder.Clear();
|
||||
@@ -208,7 +208,7 @@ namespace Vocaluxe.Base
|
||||
xmlReader.TryGetEnumValue("//root/Game/TimerMode", ref TimerMode);
|
||||
xmlReader.TryGetIntValue("//root/Game/NumPlayer", ref NumPlayer);
|
||||
xmlReader.TryGetEnumValue("//root/Game/Tabs", ref Tabs);
|
||||
xmlReader.GetValue("//root/Game/Language", ref Language, Language);
|
||||
xmlReader.GetValue("//root/Game/Language", out Language, Language);
|
||||
xmlReader.TryGetEnumValue("//root/Game/LyricsOnTop", ref LyricsOnTop);
|
||||
xmlReader.TryGetFloatValue("//root/Game/MinLineBreakTime", ref MinLineBreakTime);
|
||||
|
||||
@@ -229,7 +229,7 @@ namespace Vocaluxe.Base
|
||||
|
||||
//Read players from config
|
||||
for (i = 1; i <= CSettings.MaxNumPlayer; i++)
|
||||
xmlReader.GetValue("//root/Game/Players/Player" + i.ToString(), ref Players[i - 1], string.Empty);
|
||||
xmlReader.GetValue("//root/Game/Players/Player" + i, out Players[i - 1], string.Empty);
|
||||
#endregion Game
|
||||
|
||||
#region Video
|
||||
@@ -241,7 +241,7 @@ namespace Vocaluxe.Base
|
||||
|
||||
xmlReader.TryGetEnumValue("//root/Video/WebcamLib", ref WebcamLib);
|
||||
WebcamConfig = new SWebcamConfig();
|
||||
xmlReader.GetValue("//root/Video/WebcamConfig/MonikerString", ref WebcamConfig.MonikerString, String.Empty);
|
||||
xmlReader.GetValue("//root/Video/WebcamConfig/MonikerString", out WebcamConfig.MonikerString, String.Empty);
|
||||
xmlReader.TryGetIntValue("//root/Video/WebcamConfig/Framerate", ref WebcamConfig.Framerate);
|
||||
xmlReader.TryGetIntValue("//root/Video/WebcamConfig/Width", ref WebcamConfig.Width);
|
||||
xmlReader.TryGetIntValue("//root/Video/WebcamConfig/Height", ref WebcamConfig.Height);
|
||||
@@ -252,10 +252,10 @@ namespace Vocaluxe.Base
|
||||
for (int p = 1; p <= CSettings.MaxNumPlayer; p++)
|
||||
{
|
||||
MicConfig[p - 1] = new SMicConfig(0);
|
||||
xmlReader.GetValue("//root/Record/MicConfig" + p.ToString() + "/DeviceName", ref MicConfig[p - 1].DeviceName, String.Empty);
|
||||
xmlReader.GetValue("//root/Record/MicConfig" + p.ToString() + "/DeviceDriver", ref MicConfig[p - 1].DeviceDriver, String.Empty);
|
||||
xmlReader.GetValue("//root/Record/MicConfig" + p.ToString() + "/InputName", ref MicConfig[p - 1].InputName, String.Empty);
|
||||
xmlReader.TryGetIntValue("//root/Record/MicConfig" + p.ToString() + "/Channel", ref MicConfig[p - 1].Channel);
|
||||
xmlReader.GetValue("//root/Record/MicConfig" + p + "/DeviceName", out MicConfig[p - 1].DeviceName, String.Empty);
|
||||
xmlReader.GetValue("//root/Record/MicConfig" + p + "/DeviceDriver", out MicConfig[p - 1].DeviceDriver, String.Empty);
|
||||
xmlReader.GetValue("//root/Record/MicConfig" + p + "/InputName", out MicConfig[p - 1].InputName, String.Empty);
|
||||
xmlReader.TryGetIntValue("//root/Record/MicConfig" + p + "/Channel", ref MicConfig[p - 1].Channel);
|
||||
}
|
||||
|
||||
xmlReader.TryGetIntValueRange("//root/Record/MicDelay", ref MicDelay, 0, 500);
|
||||
@@ -316,8 +316,8 @@ namespace Vocaluxe.Base
|
||||
writer.WriteComment("AAMode: " + CHelper.ListStrings(Enum.GetNames(typeof(EAntiAliasingModes))));
|
||||
writer.WriteElementString("AAMode", Enum.GetName(typeof(EAntiAliasingModes), AAMode));
|
||||
|
||||
writer.WriteComment("Colors: " + CHelper.ListStrings(Enum.GetNames(typeof(EColorDeep))));
|
||||
writer.WriteElementString("Colors", Enum.GetName(typeof(EColorDeep), Colors));
|
||||
writer.WriteComment("Colors: " + CHelper.ListStrings(Enum.GetNames(typeof(EColorDepth))));
|
||||
writer.WriteElementString("Colors", Enum.GetName(typeof(EColorDepth), ColorDepth));
|
||||
|
||||
writer.WriteComment("MaxFPS should be between 1..200");
|
||||
writer.WriteElementString("MaxFPS", MaxFPS.ToString("#"));
|
||||
@@ -421,14 +421,14 @@ namespace Vocaluxe.Base
|
||||
//Write "old" song-folders to config.
|
||||
writer.WriteComment("SongFolder: SongFolder1, SongFolder2, SongFolder3, ...");
|
||||
for (int i = 0; i < _SongFolderOld.Count; i++)
|
||||
writer.WriteElementString("SongFolder" + (i + 1).ToString(), _SongFolderOld[i]);
|
||||
writer.WriteElementString("SongFolder" + (i + 1), _SongFolderOld[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
//Write "normal" song-folders to config.
|
||||
writer.WriteComment("SongFolder: SongFolder1, SongFolder2, SongFolder3, ...");
|
||||
for (int i = 0; i < SongFolder.Count; i++)
|
||||
writer.WriteElementString("SongFolder" + (i + 1).ToString(), SongFolder[i]);
|
||||
writer.WriteElementString("SongFolder" + (i + 1), SongFolder[i]);
|
||||
}
|
||||
|
||||
writer.WriteComment("SongMenu: " + CHelper.ListStrings(Enum.GetNames(typeof(ESongMenu))));
|
||||
@@ -446,7 +446,7 @@ namespace Vocaluxe.Base
|
||||
writer.WriteComment("TimerMode: " + CHelper.ListStrings(Enum.GetNames(typeof(ETimerMode))));
|
||||
writer.WriteElementString("TimerMode", Enum.GetName(typeof(ETimerMode), TimerMode));
|
||||
|
||||
writer.WriteComment("NumPlayer: 1.." + CSettings.MaxNumPlayer.ToString());
|
||||
writer.WriteComment("NumPlayer: 1.." + CSettings.MaxNumPlayer);
|
||||
writer.WriteElementString("NumPlayer", NumPlayer.ToString());
|
||||
|
||||
writer.WriteComment("Order songs in tabs: " + CHelper.ListStrings(Enum.GetNames(typeof(EOffOn))));
|
||||
@@ -458,10 +458,10 @@ namespace Vocaluxe.Base
|
||||
writer.WriteComment("MinLineBreakTime: Value >= 0 in s. Minimum time the text is shown before it is to be sung");
|
||||
writer.WriteElementString("MinLineBreakTime", MinLineBreakTime.ToString());
|
||||
|
||||
writer.WriteComment("Default profile for players 1..." + CSettings.MaxNumPlayer.ToString() + ":");
|
||||
writer.WriteComment("Default profile for players 1..." + CSettings.MaxNumPlayer + ":");
|
||||
writer.WriteStartElement("Players");
|
||||
for (int i = 1; i <= CSettings.MaxNumPlayer; i++)
|
||||
writer.WriteElementString("Player" + i.ToString(), Path.GetFileName(Players[i - 1]));
|
||||
writer.WriteElementString("Player" + i, Path.GetFileName(Players[i - 1]));
|
||||
writer.WriteEndElement();
|
||||
|
||||
writer.WriteEndElement();
|
||||
@@ -507,7 +507,7 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
if (MicConfig[p - 1].DeviceName.Length > 0 && MicConfig[p - 1].InputName.Length > 0 && MicConfig[p - 1].Channel > 0)
|
||||
{
|
||||
writer.WriteStartElement("MicConfig" + p.ToString());
|
||||
writer.WriteStartElement("MicConfig" + p);
|
||||
|
||||
writer.WriteElementString("DeviceName", MicConfig[p - 1].DeviceName);
|
||||
writer.WriteElementString("DeviceDriver", MicConfig[p - 1].DeviceDriver);
|
||||
|
||||
+49
-62
@@ -20,6 +20,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using VocaluxeLib.Menu;
|
||||
@@ -116,18 +117,12 @@ namespace Vocaluxe.Base
|
||||
/// <summary>
|
||||
/// Returns true if a cover with the given name exists.
|
||||
/// </summary>
|
||||
public static bool CoverExists(string name)
|
||||
private static bool _CoverExists(string name)
|
||||
{
|
||||
STexture cov = _NoCover;
|
||||
lock (_MutexCover)
|
||||
{
|
||||
foreach (SCover cover in _Cover)
|
||||
{
|
||||
if (cover.Name == name)
|
||||
return true;
|
||||
}
|
||||
return _Cover.Any(cover => cover.Name == name);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -168,7 +163,7 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
_CoverThemes.Clear();
|
||||
|
||||
string path = CSettings.FolderCover;
|
||||
const string path = CSettings.FolderCover;
|
||||
List<string> files = CHelper.ListFiles(path, "*.xml", false);
|
||||
|
||||
foreach (string file in files)
|
||||
@@ -179,8 +174,8 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
SCoverTheme coverTheme = new SCoverTheme();
|
||||
|
||||
xmlReader.GetValue("//root/Info/Name", ref coverTheme.Name, String.Empty);
|
||||
xmlReader.GetValue("//root/Info/Folder", ref coverTheme.Folder, String.Empty);
|
||||
xmlReader.GetValue("//root/Info/Name", out coverTheme.Name, String.Empty);
|
||||
xmlReader.GetValue("//root/Info/Folder", out coverTheme.Folder, String.Empty);
|
||||
|
||||
if (coverTheme.Folder.Length > 0 && coverTheme.Name.Length > 0)
|
||||
{
|
||||
@@ -197,69 +192,61 @@ namespace Vocaluxe.Base
|
||||
/// </summary>
|
||||
private static void _LoadCover(string coverThemeName)
|
||||
{
|
||||
SCoverTheme coverTheme = new SCoverTheme();
|
||||
SCoverTheme coverTheme = _CoverTheme(coverThemeName);
|
||||
|
||||
coverTheme = _CoverTheme(coverThemeName);
|
||||
if (coverTheme.Name == "")
|
||||
return;
|
||||
CXMLReader xmlReader = CXMLReader.OpenFile(Path.Combine(CSettings.FolderCover, coverTheme.File));
|
||||
|
||||
if (coverTheme.Name.Length > 0)
|
||||
if (xmlReader != null)
|
||||
{
|
||||
CXMLReader xmlReader = CXMLReader.OpenFile(Path.Combine(CSettings.FolderCover, coverTheme.File));
|
||||
|
||||
if (xmlReader != null)
|
||||
lock (_MutexCover)
|
||||
{
|
||||
lock (_MutexCover)
|
||||
{
|
||||
_Cover.Clear();
|
||||
List<string> cover = xmlReader.GetValues("Cover");
|
||||
for (int i = 0; i < cover.Count; i++)
|
||||
{
|
||||
SCover sk = new SCover();
|
||||
string name = String.Empty;
|
||||
string value = String.Empty;
|
||||
xmlReader.GetValue("//root/Cover/" + cover[i] + "/Name", ref name, String.Empty);
|
||||
xmlReader.GetValue("//root/Cover/" + cover[i] + "/Path", ref value, String.Empty);
|
||||
sk.Name = name;
|
||||
sk.Value = Path.Combine(coverTheme.Folder, value);
|
||||
if (File.Exists(Path.Combine(CSettings.FolderCover, Path.Combine(coverTheme.Folder, value))))
|
||||
sk.Texture = CDraw.AddTexture(Path.Combine(CSettings.FolderCover, Path.Combine(coverTheme.Folder, value)));
|
||||
else
|
||||
sk.Texture = _NoCover;
|
||||
|
||||
_Cover.Add(sk);
|
||||
|
||||
if (sk.Name == "NoCover")
|
||||
_NoCover = sk.Texture;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<string> files = new List<string>();
|
||||
|
||||
files.AddRange(CHelper.ListFiles(Path.Combine(CSettings.FolderCover, coverTheme.Folder), "*.png", true, true));
|
||||
files.AddRange(CHelper.ListFiles(Path.Combine(CSettings.FolderCover, coverTheme.Folder), "*.jpg", true, true));
|
||||
files.AddRange(CHelper.ListFiles(Path.Combine(CSettings.FolderCover, coverTheme.Folder), "*.jpeg", true, true));
|
||||
files.AddRange(CHelper.ListFiles(Path.Combine(CSettings.FolderCover, coverTheme.Folder), "*.bmp", true, true));
|
||||
|
||||
|
||||
foreach (string file in files)
|
||||
{
|
||||
string name = Path.GetFileNameWithoutExtension(file);
|
||||
|
||||
if (!CoverExists(name))
|
||||
_Cover.Clear();
|
||||
List<string> cover = xmlReader.GetValues("Cover");
|
||||
foreach (string coverName in cover)
|
||||
{
|
||||
SCover sk = new SCover();
|
||||
|
||||
string value = String.Empty;
|
||||
|
||||
string name;
|
||||
string value;
|
||||
xmlReader.GetValue("//root/Cover/" + coverName + "/Name", out name, String.Empty);
|
||||
xmlReader.GetValue("//root/Cover/" + coverName + "/Path", out value, String.Empty);
|
||||
sk.Name = name;
|
||||
sk.Value = Path.Combine(coverTheme.Folder, Path.GetFileName(file));
|
||||
|
||||
sk.Texture = CDraw.AddTexture(Path.Combine(CSettings.FolderCover, sk.Value));
|
||||
sk.Value = Path.Combine(coverTheme.Folder, value);
|
||||
sk.Texture = File.Exists(Path.Combine(CSettings.FolderCover, sk.Value))
|
||||
? CDraw.AddTexture(Path.Combine(CSettings.FolderCover, Path.Combine(coverTheme.Folder, value))) : _NoCover;
|
||||
|
||||
_Cover.Add(sk);
|
||||
|
||||
if (sk.Name == "NoCover")
|
||||
_NoCover = sk.Texture;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<string> files = new List<string>();
|
||||
|
||||
string path = Path.Combine(CSettings.FolderCover, coverTheme.Folder);
|
||||
files.AddRange(CHelper.ListFiles(path, "*.png", true, true));
|
||||
files.AddRange(CHelper.ListFiles(path, "*.jpg", true, true));
|
||||
files.AddRange(CHelper.ListFiles(path, "*.jpeg", true, true));
|
||||
files.AddRange(CHelper.ListFiles(path, "*.bmp", true, true));
|
||||
|
||||
|
||||
foreach (string file in files)
|
||||
{
|
||||
string name = Path.GetFileNameWithoutExtension(file);
|
||||
|
||||
if (_CoverExists(name))
|
||||
continue;
|
||||
// ReSharper disable AssignNullToNotNullAttribute
|
||||
SCover sk = new SCover {Name = name, Value = Path.Combine(coverTheme.Folder, Path.GetFileName(file))};
|
||||
// ReSharper restore AssignNullToNotNullAttribute
|
||||
|
||||
sk.Texture = CDraw.AddTexture(Path.Combine(CSettings.FolderCover, sk.Value));
|
||||
|
||||
_Cover.Add(sk);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -176,7 +176,6 @@ namespace Vocaluxe.Base
|
||||
if (reader != null)
|
||||
{
|
||||
reader.Dispose();
|
||||
reader = null;
|
||||
}
|
||||
|
||||
command.CommandText = "INSERT INTO Scores (SongID, PlayerName, Score, LineNr, Date, Medley, Duet, ShortSong, Difficulty) " +
|
||||
@@ -208,7 +207,7 @@ namespace Vocaluxe.Base
|
||||
return lastInsertID;
|
||||
}
|
||||
|
||||
public static void LoadScore(ref List<SScores> scores, SPlayer player)
|
||||
public static void LoadScore(out List<SScores> scores, SPlayer player)
|
||||
{
|
||||
using (SQLiteConnection connection = new SQLiteConnection())
|
||||
{
|
||||
@@ -344,9 +343,6 @@ namespace Vocaluxe.Base
|
||||
}
|
||||
}
|
||||
|
||||
if (reader != null)
|
||||
reader.Dispose();
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -374,7 +370,7 @@ namespace Vocaluxe.Base
|
||||
command.CommandText = "SELECT Artist, Title, NumPlayed FROM Songs WHERE [id] = @id";
|
||||
command.Parameters.Add("@id", DbType.String, 0).Value = songID;
|
||||
|
||||
SQLiteDataReader reader = null;
|
||||
SQLiteDataReader reader;
|
||||
try
|
||||
{
|
||||
reader = command.ExecuteReader();
|
||||
@@ -516,11 +512,10 @@ namespace Vocaluxe.Base
|
||||
return false;
|
||||
}
|
||||
|
||||
SQLiteDataReader reader = null;
|
||||
using (SQLiteCommand command = new SQLiteCommand(connection))
|
||||
{
|
||||
command.CommandText = "PRAGMA user_version";
|
||||
reader = command.ExecuteReader();
|
||||
SQLiteDataReader reader = command.ExecuteReader();
|
||||
reader.Read();
|
||||
|
||||
int version = reader.GetInt32(0);
|
||||
@@ -636,16 +631,8 @@ namespace Vocaluxe.Base
|
||||
List<SData> scores = new List<SData>();
|
||||
List<SData> songs = new List<SData>();
|
||||
|
||||
SQLiteDataReader reader = null;
|
||||
command.CommandText = "SELECT id, PlayerName, Date FROM Scores";
|
||||
try
|
||||
{
|
||||
reader = command.ExecuteReader();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
SQLiteDataReader reader = command.ExecuteReader();
|
||||
|
||||
if (reader != null && reader.HasRows)
|
||||
{
|
||||
|
||||
@@ -274,7 +274,7 @@ namespace Vocaluxe.Base
|
||||
if (rect.Height <= 0f)
|
||||
return;
|
||||
|
||||
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, aspect);
|
||||
CHelper.SetRect(bounds, out rect, rect.Width / rect.Height, aspect);
|
||||
DrawTexture(texture, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, staticBounds.Rect.Z),
|
||||
texture.Color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), false);
|
||||
}
|
||||
|
||||
+17
-35
@@ -341,37 +341,19 @@ namespace Vocaluxe.Base
|
||||
public static float Height
|
||||
{
|
||||
get { return _Height; }
|
||||
set
|
||||
{
|
||||
if (value < 0f)
|
||||
_Height = 0f;
|
||||
else
|
||||
_Height = value;
|
||||
set {
|
||||
_Height = value < 0f ? 0f : value;
|
||||
}
|
||||
}
|
||||
|
||||
public static float Outline
|
||||
{
|
||||
get { return _Fonts[_CurrentFont].Outline; }
|
||||
set
|
||||
{
|
||||
SFont font = _Fonts[_CurrentFont];
|
||||
font.Outline = value;
|
||||
if (font.Outline < 0f)
|
||||
font.Outline = 0f;
|
||||
if (font.Outline > 1f)
|
||||
font.Outline = 1f;
|
||||
}
|
||||
}
|
||||
|
||||
public static SColorF OutlineColor
|
||||
{
|
||||
get { return _Fonts[_CurrentFont].OutlineColor; }
|
||||
set
|
||||
{
|
||||
SFont font = _Fonts[_CurrentFont];
|
||||
font.OutlineColor = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void Init()
|
||||
@@ -525,7 +507,7 @@ namespace Vocaluxe.Base
|
||||
|
||||
public static void SetFont(string fontName)
|
||||
{
|
||||
int index = -1;
|
||||
int index;
|
||||
|
||||
if (PartyModeID != -1)
|
||||
{
|
||||
@@ -595,7 +577,7 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
string value = string.Empty;
|
||||
int i = 1;
|
||||
while (xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/Folder", ref value, value))
|
||||
while (xmlReader.GetValue("//root/Fonts/Font" + i + "/Folder", out value, value))
|
||||
{
|
||||
SFont sf = new SFont();
|
||||
sf.Folder = value;
|
||||
@@ -605,42 +587,42 @@ namespace Vocaluxe.Base
|
||||
|
||||
bool ok = true;
|
||||
|
||||
string name = String.Empty;
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/Name", ref name, value);
|
||||
string name;
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i + "/Name", out name, value);
|
||||
sf.Name = name;
|
||||
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/FileNormal", ref value, value);
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i + "/FileNormal", out value, value);
|
||||
sf.FileNormal = value;
|
||||
value = Path.Combine(fontFolder, Path.Combine(sf.Folder, value));
|
||||
CFont f = new CFont(value);
|
||||
sf.Normal = f;
|
||||
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/FileItalic", ref value, value);
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i + "/FileItalic", out value, value);
|
||||
sf.FileItalic = value;
|
||||
value = Path.Combine(fontFolder, Path.Combine(sf.Folder, value));
|
||||
f = new CFont(value);
|
||||
sf.Italic = f;
|
||||
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/FileBold", ref value, value);
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i + "/FileBold", out value, value);
|
||||
sf.FileBold = value;
|
||||
value = Path.Combine(fontFolder, Path.Combine(sf.Folder, value));
|
||||
f = new CFont(value);
|
||||
sf.Bold = f;
|
||||
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/FileBoldItalic", ref value, value);
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i + "/FileBoldItalic", out value, value);
|
||||
sf.FileBoldItalic = value;
|
||||
value = Path.Combine(fontFolder, Path.Combine(sf.Folder, value));
|
||||
f = new CFont(value);
|
||||
sf.BoldItalic = f;
|
||||
|
||||
sf.Outline = 0f;
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/Outline", ref sf.Outline);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i + "/Outline", ref sf.Outline);
|
||||
|
||||
sf.OutlineColor = new SColorF(0f, 0f, 0f, 1f);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorR", ref sf.OutlineColor.R);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorG", ref sf.OutlineColor.G);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorB", ref sf.OutlineColor.B);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorA", ref sf.OutlineColor.A);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i + "/OutlineColorR", ref sf.OutlineColor.R);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i + "/OutlineColorG", ref sf.OutlineColor.G);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i + "/OutlineColorB", ref sf.OutlineColor.B);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i + "/OutlineColorA", ref sf.OutlineColor.A);
|
||||
|
||||
if (ok)
|
||||
_Fonts.Add(sf);
|
||||
@@ -653,7 +635,7 @@ namespace Vocaluxe.Base
|
||||
fontTypes = "theme fonts for theme \"" + themeName + "\"";
|
||||
else
|
||||
fontTypes = "basic fonts";
|
||||
CLog.LogError("Error loading " + fontTypes + ": Error in Font" + i.ToString());
|
||||
CLog.LogError("Error loading " + fontTypes + ": Error in Font" + i);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
@@ -715,7 +697,7 @@ namespace Vocaluxe.Base
|
||||
setStart = true;
|
||||
}
|
||||
|
||||
writer.WriteStartElement("Font" + fontNr.ToString());
|
||||
writer.WriteStartElement("Font" + fontNr);
|
||||
|
||||
writer.WriteElementString("Name", _Fonts[index].Name);
|
||||
writer.WriteElementString("Folder", _Fonts[index].Folder);
|
||||
|
||||
+127
-154
@@ -29,14 +29,8 @@ namespace Vocaluxe.Base
|
||||
static class CGame
|
||||
{
|
||||
private static IGameMode _GameMode;
|
||||
private static SPlayer[] _Player;
|
||||
private static int _NumPlayer = CConfig.NumPlayer;
|
||||
|
||||
private static float _Beat;
|
||||
private static int _CurrentBeat;
|
||||
|
||||
private static float _MidBeatD;
|
||||
private static int _CurrentBeatD;
|
||||
private static int _OldBeatD;
|
||||
private static readonly Random _Rand = new Random();
|
||||
|
||||
@@ -58,36 +52,21 @@ namespace Vocaluxe.Base
|
||||
return 0f;
|
||||
}
|
||||
|
||||
public static int CurrentBeat
|
||||
{
|
||||
get { return _CurrentBeat; }
|
||||
}
|
||||
public static int CurrentBeat { get; private set; }
|
||||
|
||||
public static float Beat
|
||||
{
|
||||
get { return _Beat; }
|
||||
}
|
||||
public static float Beat { get; private set; }
|
||||
|
||||
public static float MidBeatD
|
||||
{
|
||||
get { return _MidBeatD; }
|
||||
}
|
||||
public static float MidBeatD { get; private set; }
|
||||
|
||||
public static int ActBeatD
|
||||
{
|
||||
get { return _CurrentBeatD; }
|
||||
}
|
||||
public static int ActBeatD { get; private set; }
|
||||
|
||||
public static SPlayer[] Player
|
||||
{
|
||||
get { return _Player; }
|
||||
}
|
||||
public static SPlayer[] Player { get; private set; }
|
||||
|
||||
public static void Init()
|
||||
{
|
||||
_GameMode = new CGameModeNormal();
|
||||
_GameMode.Init();
|
||||
_Player = new SPlayer[CSettings.MaxNumPlayer];
|
||||
Player = new SPlayer[CSettings.MaxNumPlayer];
|
||||
ResetPlayer();
|
||||
|
||||
CConfig.UsePlayers();
|
||||
@@ -136,12 +115,12 @@ namespace Vocaluxe.Base
|
||||
|
||||
public static void Start()
|
||||
{
|
||||
_GameMode.Start(_Player);
|
||||
_GameMode.Start(Player);
|
||||
}
|
||||
|
||||
public static void NextRound()
|
||||
{
|
||||
_GameMode.NextRound(_Player);
|
||||
_GameMode.NextRound(Player);
|
||||
}
|
||||
|
||||
public static bool IsFinished()
|
||||
@@ -196,63 +175,61 @@ namespace Vocaluxe.Base
|
||||
|
||||
public static void ResetPlayer()
|
||||
{
|
||||
for (int i = 0; i < _Player.Length; i++)
|
||||
for (int i = 0; i < Player.Length; i++)
|
||||
{
|
||||
_Player[i].Points = 0f;
|
||||
_Player[i].PointsLineBonus = 0f;
|
||||
_Player[i].PointsGoldenNotes = 0f;
|
||||
_Player[i].LineNr = 0;
|
||||
_Player[i].NoteDiff = 0;
|
||||
_Player[i].SingLine = new List<CLine>();
|
||||
_Player[i].CurrentLine = -1;
|
||||
_Player[i].CurrentNote = -1;
|
||||
_Player[i].SongID = -1;
|
||||
_Player[i].Medley = false;
|
||||
_Player[i].Duet = false;
|
||||
_Player[i].ShortSong = false;
|
||||
_Player[i].DateTicks = DateTime.Now.Ticks;
|
||||
_Player[i].SongFinished = false;
|
||||
Player[i].Points = 0f;
|
||||
Player[i].PointsLineBonus = 0f;
|
||||
Player[i].PointsGoldenNotes = 0f;
|
||||
Player[i].LineNr = 0;
|
||||
Player[i].NoteDiff = 0;
|
||||
Player[i].SingLine = new List<CLine>();
|
||||
Player[i].CurrentLine = -1;
|
||||
Player[i].CurrentNote = -1;
|
||||
Player[i].SongID = -1;
|
||||
Player[i].Medley = false;
|
||||
Player[i].Duet = false;
|
||||
Player[i].ShortSong = false;
|
||||
Player[i].DateTicks = DateTime.Now.Ticks;
|
||||
Player[i].SongFinished = false;
|
||||
}
|
||||
_OldBeatD = -100;
|
||||
_Beat = -100;
|
||||
_CurrentBeat = -100;
|
||||
_CurrentBeatD = -100;
|
||||
Beat = -100;
|
||||
CurrentBeat = -100;
|
||||
ActBeatD = -100;
|
||||
}
|
||||
|
||||
public static void UpdatePoints(float time)
|
||||
{
|
||||
bool debugHit = false;
|
||||
|
||||
CSong song = _GameMode.GetSong();
|
||||
|
||||
if (song == null)
|
||||
return;
|
||||
|
||||
float b = GetBeatFromTime(time, song.BPM, song.Gap);
|
||||
if (b <= _Beat)
|
||||
if (b <= Beat)
|
||||
return;
|
||||
|
||||
_Beat = b;
|
||||
_CurrentBeat = (int)Math.Floor(_Beat);
|
||||
Beat = b;
|
||||
CurrentBeat = (int)Math.Floor(Beat);
|
||||
|
||||
_MidBeatD = -0.5f + GetBeatFromTime(time, song.BPM, song.Gap + CConfig.MicDelay / 1000f);
|
||||
_CurrentBeatD = (int)Math.Floor(_MidBeatD);
|
||||
MidBeatD = -0.5f + GetBeatFromTime(time, song.BPM, song.Gap + CConfig.MicDelay / 1000f);
|
||||
ActBeatD = (int)Math.Floor(MidBeatD);
|
||||
|
||||
for (int p = 0; p < _NumPlayer; p++)
|
||||
CSound.AnalyzeBuffer(p);
|
||||
|
||||
if (_OldBeatD >= _CurrentBeatD)
|
||||
if (_OldBeatD >= ActBeatD)
|
||||
return;
|
||||
|
||||
for (int p = 0; p < _NumPlayer; p++)
|
||||
{
|
||||
for (int beat = _OldBeatD + 1; beat <= _CurrentBeatD; beat++)
|
||||
for (int beat = _OldBeatD + 1; beat <= ActBeatD; beat++)
|
||||
{
|
||||
if ((_GameMode.GetCurrentGameMode() == EGameMode.TR_GAMEMODE_MEDLEY && song.Medley.EndBeat == beat) ||
|
||||
(_GameMode.GetCurrentGameMode() == EGameMode.TR_GAMEMODE_SHORTSONG && song.ShortEnd == beat))
|
||||
_Player[p].SongFinished = true;
|
||||
Player[p].SongFinished = true;
|
||||
|
||||
CLine[] lines = song.Notes.GetLines(_Player[p].LineNr).Line;
|
||||
CLine[] lines = song.Notes.GetLines(Player[p].LineNr).Line;
|
||||
int line = -1;
|
||||
|
||||
for (int j = 0; j < lines.Length; j++)
|
||||
@@ -264,125 +241,121 @@ namespace Vocaluxe.Base
|
||||
}
|
||||
}
|
||||
|
||||
if (line >= 0)
|
||||
if (line < 0)
|
||||
continue;
|
||||
if (line != Player[p].CurrentLine)
|
||||
Player[p].CurrentNote = -1;
|
||||
|
||||
Player[p].CurrentLine = line;
|
||||
|
||||
while (Player[p].SingLine.Count <= line)
|
||||
Player[p].SingLine.Add(new CLine());
|
||||
|
||||
CNote[] notes = lines[line].Notes;
|
||||
int note = -1;
|
||||
for (int j = 0; j < notes.Length; j++)
|
||||
{
|
||||
if (line != _Player[p].CurrentLine)
|
||||
_Player[p].CurrentNote = -1;
|
||||
|
||||
_Player[p].CurrentLine = line;
|
||||
|
||||
while (_Player[p].SingLine.Count <= line)
|
||||
_Player[p].SingLine.Add(new CLine());
|
||||
|
||||
CNote[] notes = lines[line].Notes;
|
||||
int note = -1;
|
||||
for (int j = 0; j < notes.Length; j++)
|
||||
if (beat >= notes[j].StartBeat && beat <= notes[j].EndBeat)
|
||||
{
|
||||
if (beat >= notes[j].StartBeat && beat <= notes[j].EndBeat)
|
||||
note = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (note >= 0)
|
||||
{
|
||||
Player[p].CurrentNote = note;
|
||||
|
||||
if (line == lines.Length - 1)
|
||||
{
|
||||
if (note == lines[line].NoteCount - 1)
|
||||
{
|
||||
note = j;
|
||||
break;
|
||||
if (notes[note].EndBeat == beat)
|
||||
Player[p].SongFinished = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (note >= 0)
|
||||
if (notes[note].PointsForBeat > 0 && CSound.RecordToneValid(p))
|
||||
{
|
||||
_Player[p].CurrentNote = note;
|
||||
int tone = notes[note].Tone;
|
||||
int tonePlayer = CSound.RecordGetTone(p);
|
||||
|
||||
if (line == lines.Length - 1)
|
||||
while (tonePlayer - tone > 6)
|
||||
tonePlayer -= 12;
|
||||
|
||||
while (tonePlayer - tone < -6)
|
||||
tonePlayer += 12;
|
||||
|
||||
Player[p].NoteDiff = Math.Abs(tone - tonePlayer);
|
||||
bool hit = Player[p].NoteDiff <= (2 - (int)Player[p].Difficulty);
|
||||
if (hit)
|
||||
{
|
||||
if (note == lines[line].NoteCount - 1)
|
||||
// valid
|
||||
//CSound.RecordSetTone(p, Tone);
|
||||
double points = (CSettings.MaxScore - CSettings.LinebonusScore) * (double)notes[note].PointsForBeat /
|
||||
song.Notes.GetLines(Player[p].LineNr).Points;
|
||||
if (notes[note].NoteType == ENoteType.Golden)
|
||||
Player[p].PointsGoldenNotes += points;
|
||||
|
||||
Player[p].Points += points;
|
||||
|
||||
// update player notes (sung notes)
|
||||
if (Player[p].SingLine[line].NoteCount > 0)
|
||||
{
|
||||
if (notes[note].EndBeat == beat)
|
||||
_Player[p].SongFinished = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (notes[note].PointsForBeat > 0 && (CSound.RecordToneValid(p) || debugHit))
|
||||
{
|
||||
int tone = notes[note].Tone;
|
||||
int tonePlayer = CSound.RecordGetTone(p);
|
||||
|
||||
while (tonePlayer - tone > 6)
|
||||
tonePlayer -= 12;
|
||||
|
||||
while (tonePlayer - tone < -6)
|
||||
tonePlayer += 12;
|
||||
|
||||
if (debugHit)
|
||||
tonePlayer = tone;
|
||||
|
||||
_Player[p].NoteDiff = Math.Abs(tone - tonePlayer);
|
||||
bool hit = _Player[p].NoteDiff <= (2 - (int)_Player[p].Difficulty);
|
||||
if (hit)
|
||||
{
|
||||
// valid
|
||||
//CSound.RecordSetTone(p, Tone);
|
||||
double points = (CSettings.MaxScore - CSettings.LinebonusScore) * (double)notes[note].PointsForBeat /
|
||||
song.Notes.GetLines(_Player[p].LineNr).Points;
|
||||
if (notes[note].NoteType == ENoteType.Golden)
|
||||
_Player[p].PointsGoldenNotes += points;
|
||||
|
||||
_Player[p].Points += points;
|
||||
|
||||
// update player notes (sung notes)
|
||||
if (_Player[p].SingLine[line].NoteCount > 0)
|
||||
{
|
||||
CNote nt = _Player[p].SingLine[line].LastNote;
|
||||
if (notes[note].StartBeat == beat || nt.EndBeat + 1 != beat || nt.Tone != tone || !nt.Hit)
|
||||
_Player[p].SingLine[line].AddNote(new CNote(beat, 1, tone, String.Empty, true, notes[note].NoteType));
|
||||
else
|
||||
_Player[p].SingLine[line].IncLastNoteLength();
|
||||
}
|
||||
CNote nt = Player[p].SingLine[line].LastNote;
|
||||
if (notes[note].StartBeat == beat || nt.EndBeat + 1 != beat || nt.Tone != tone || !nt.Hit)
|
||||
Player[p].SingLine[line].AddNote(new CNote(beat, 1, tone, String.Empty, true, notes[note].NoteType));
|
||||
else
|
||||
_Player[p].SingLine[line].AddNote(new CNote(beat, 1, tone, String.Empty, true, notes[note].NoteType));
|
||||
|
||||
_Player[p].SingLine[line].LastNote.IsPerfect(notes[note]);
|
||||
_Player[p].SingLine[line].IsPerfect(lines[line]);
|
||||
Player[p].SingLine[line].IncLastNoteLength();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_Player[p].SingLine[line].NoteCount > 0)
|
||||
{
|
||||
CNote nt = _Player[p].SingLine[line].LastNote;
|
||||
if (nt.Tone == tonePlayer && nt.EndBeat + 1 == beat && !nt.Hit)
|
||||
_Player[p].SingLine[line].IncLastNoteLength();
|
||||
else
|
||||
_Player[p].SingLine[line].AddNote(new CNote(beat, 1, tonePlayer, String.Empty, false, ENoteType.Freestyle));
|
||||
}
|
||||
else
|
||||
_Player[p].SingLine[line].AddNote(new CNote(beat, 1, tonePlayer, String.Empty, false, ENoteType.Freestyle));
|
||||
}
|
||||
Player[p].SingLine[line].AddNote(new CNote(beat, 1, tone, String.Empty, true, notes[note].NoteType));
|
||||
|
||||
Player[p].SingLine[line].LastNote.IsPerfect(notes[note]);
|
||||
Player[p].SingLine[line].IsPerfect(lines[line]);
|
||||
}
|
||||
|
||||
// Line Bonus
|
||||
int numLinesWithPoints = song.Notes.GetNumLinesWithPoints(_Player[p].LineNr);
|
||||
if (note == lines[line].NoteCount - 1 && numLinesWithPoints > 0)
|
||||
else
|
||||
{
|
||||
if (notes[note].EndBeat == beat && lines[line].Points > 0f)
|
||||
if (Player[p].SingLine[line].NoteCount > 0)
|
||||
{
|
||||
double factor = _Player[p].SingLine[line].Points / (double)lines[line].Points;
|
||||
if (factor < 0.4)
|
||||
factor = 0.0;
|
||||
else if (factor > 0.9)
|
||||
factor = 1.0;
|
||||
CNote nt = Player[p].SingLine[line].LastNote;
|
||||
if (nt.Tone == tonePlayer && nt.EndBeat + 1 == beat && !nt.Hit)
|
||||
Player[p].SingLine[line].IncLastNoteLength();
|
||||
else
|
||||
{
|
||||
factor -= 0.4;
|
||||
factor *= 2;
|
||||
factor *= factor;
|
||||
}
|
||||
|
||||
double points = CSettings.LinebonusScore * factor * 1f / numLinesWithPoints;
|
||||
_Player[p].Points += points;
|
||||
_Player[p].PointsLineBonus += points;
|
||||
Player[p].SingLine[line].AddNote(new CNote(beat, 1, tonePlayer, String.Empty, false, ENoteType.Freestyle));
|
||||
}
|
||||
else
|
||||
Player[p].SingLine[line].AddNote(new CNote(beat, 1, tonePlayer, String.Empty, false, ENoteType.Freestyle));
|
||||
}
|
||||
}
|
||||
|
||||
// Line Bonus
|
||||
int numLinesWithPoints = song.Notes.GetNumLinesWithPoints(Player[p].LineNr);
|
||||
if (note == lines[line].NoteCount - 1 && numLinesWithPoints > 0)
|
||||
{
|
||||
if (notes[note].EndBeat == beat && lines[line].Points > 0f)
|
||||
{
|
||||
double factor = Player[p].SingLine[line].Points / (double)lines[line].Points;
|
||||
if (factor < 0.4)
|
||||
factor = 0.0;
|
||||
else if (factor > 0.9)
|
||||
factor = 1.0;
|
||||
else
|
||||
{
|
||||
factor -= 0.4;
|
||||
factor *= 2;
|
||||
factor *= factor;
|
||||
}
|
||||
|
||||
double points = CSettings.LinebonusScore * factor * 1f / numLinesWithPoints;
|
||||
Player[p].Points += points;
|
||||
Player[p].PointsLineBonus += points;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
_OldBeatD = _CurrentBeatD;
|
||||
_OldBeatD = ActBeatD;
|
||||
}
|
||||
}
|
||||
}
|
||||
+38
-114
@@ -518,7 +518,7 @@ namespace Vocaluxe.Base
|
||||
|
||||
|
||||
bool resume = true;
|
||||
bool eventsAvailable = false;
|
||||
bool eventsAvailable;
|
||||
bool inputEventsAvailable = CInput.PollKeyEvent(ref inputKeyEvent);
|
||||
|
||||
while ((eventsAvailable = keys.PollEvent(ref keyEvent)) || inputEventsAvailable)
|
||||
@@ -746,125 +746,49 @@ namespace Vocaluxe.Base
|
||||
|
||||
private static void _DrawDebugInfos()
|
||||
{
|
||||
string txt = String.Empty;
|
||||
if (CConfig.DebugLevel == EDebugLevel.TR_CONFIG_OFF)
|
||||
return;
|
||||
|
||||
List<String> debugOutput = new List<string>();
|
||||
debugOutput.Add(CTime.GetFPS().ToString("FPS: 000"));
|
||||
|
||||
if (CConfig.DebugLevel >= EDebugLevel.TR_CONFIG_LEVEL1)
|
||||
{
|
||||
debugOutput.Add(CSound.GetStreamCount().ToString(CLanguage.Translate("TR_DEBUG_AUDIO_STREAMS") + ": 00"));
|
||||
debugOutput.Add(CVideo.GetNumStreams().ToString(CLanguage.Translate("TR_DEBUG_VIDEO_STREAMS") + ": 00"));
|
||||
debugOutput.Add(CDraw.TextureCount().ToString(CLanguage.Translate("TR_DEBUG_TEXTURES") + ": 00000"));
|
||||
long memory = GC.GetTotalMemory(false);
|
||||
debugOutput.Add((memory / 1000000L).ToString(CLanguage.Translate("TR_DEBUG_MEMORY") + ": 00000 MB"));
|
||||
|
||||
if (CConfig.DebugLevel >= EDebugLevel.TR_CONFIG_LEVEL2)
|
||||
{
|
||||
debugOutput.Add(CSound.RecordGetToneAbs(0).ToString(CLanguage.Translate("TR_DEBUG_TONE_ABS") + " P1: 00"));
|
||||
debugOutput.Add(CSound.RecordGetMaxVolume(0).ToString(CLanguage.Translate("TR_DEBUG_MAX_VOLUME") + " P1: 0.000"));
|
||||
debugOutput.Add(CSound.RecordGetToneAbs(1).ToString(CLanguage.Translate("TR_DEBUG_TONE_ABS") + " P2: 00"));
|
||||
debugOutput.Add(CSound.RecordGetMaxVolume(1).ToString(CLanguage.Translate("TR_DEBUG_MAX_VOLUME") + " P2: 0.000"));
|
||||
|
||||
if (CConfig.DebugLevel >= EDebugLevel.TR_CONFIG_LEVEL3)
|
||||
{
|
||||
debugOutput.Add(CSongs.NumSongsWithCoverLoaded.ToString(CLanguage.Translate("TR_DEBUG_SONGS") + ": 00000"));
|
||||
|
||||
if (CConfig.DebugLevel >= EDebugLevel.TR_CONFIG_LEVEL_MAX)
|
||||
{
|
||||
debugOutput.Add(_Cursor.X.ToString(CLanguage.Translate("TR_DEBUG_MOUSE") + " : (0000/") + _Cursor.Y.ToString("0000)"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
CFonts.Style = EStyle.Normal;
|
||||
CFonts.SetFont("Normal");
|
||||
CFonts.Height = 30;
|
||||
SColorF gray = new SColorF(1f, 1f, 1f, 0.5f);
|
||||
|
||||
float dy = 0;
|
||||
if (CConfig.DebugLevel >= EDebugLevel.TR_CONFIG_ONLY_FPS)
|
||||
float y = 0;
|
||||
foreach (var txt in debugOutput)
|
||||
{
|
||||
txt = CTime.GetFPS().ToString("FPS: 000");
|
||||
CFonts.Height = 30f;
|
||||
RectangleF rect = new RectangleF(CSettings.RenderW - CFonts.GetTextWidth(txt), dy, CFonts.GetTextWidth(txt), CFonts.GetTextHeight(txt));
|
||||
|
||||
RectangleF rect = new RectangleF(CSettings.RenderW - CFonts.GetTextWidth(txt), y, CFonts.GetTextWidth(txt), CFonts.GetTextHeight(txt));
|
||||
CDraw.DrawColor(gray, new SRectF(rect.X, rect.Top, rect.Width, rect.Height, CSettings.ZNear));
|
||||
CFonts.DrawText(txt, rect.X, rect.Y, CSettings.ZNear);
|
||||
dy += rect.Height;
|
||||
}
|
||||
|
||||
if (CConfig.DebugLevel >= EDebugLevel.TR_CONFIG_LEVEL1)
|
||||
{
|
||||
txt = CSound.GetStreamCount().ToString(CLanguage.Translate("TR_DEBUG_AUDIO_STREAMS") + ": 00");
|
||||
|
||||
RectangleF rect = new RectangleF(CSettings.RenderW - CFonts.GetTextWidth(txt), dy, CFonts.GetTextWidth(txt), CFonts.GetTextHeight(txt));
|
||||
|
||||
CDraw.DrawColor(gray, new SRectF(rect.X, rect.Top, rect.Width, rect.Height, CSettings.ZNear));
|
||||
CFonts.DrawText(txt, rect.X, rect.Y, CSettings.ZNear);
|
||||
dy += rect.Height;
|
||||
}
|
||||
|
||||
if (CConfig.DebugLevel >= EDebugLevel.TR_CONFIG_LEVEL1)
|
||||
{
|
||||
txt = CVideo.GetNumStreams().ToString(CLanguage.Translate("TR_DEBUG_VIDEO_STREAMS") + ": 00");
|
||||
|
||||
RectangleF rect = new RectangleF(CSettings.RenderW - CFonts.GetTextWidth(txt), dy, CFonts.GetTextWidth(txt), CFonts.GetTextHeight(txt));
|
||||
|
||||
CDraw.DrawColor(gray, new SRectF(rect.X, rect.Top, rect.Width, rect.Height, CSettings.ZNear));
|
||||
CFonts.DrawText(txt, rect.X, rect.Y, CSettings.ZNear);
|
||||
dy += rect.Height;
|
||||
}
|
||||
|
||||
if (CConfig.DebugLevel >= EDebugLevel.TR_CONFIG_LEVEL1)
|
||||
{
|
||||
txt = CDraw.TextureCount().ToString(CLanguage.Translate("TR_DEBUG_TEXTURES") + ": 00000");
|
||||
|
||||
RectangleF rect = new RectangleF(CSettings.RenderW - CFonts.GetTextWidth(txt), dy, CFonts.GetTextWidth(txt), CFonts.GetTextHeight(txt));
|
||||
|
||||
CDraw.DrawColor(gray, new SRectF(rect.X, rect.Top, rect.Width, rect.Height, CSettings.ZNear));
|
||||
CFonts.DrawText(txt, rect.X, rect.Y, CSettings.ZNear);
|
||||
dy += rect.Height;
|
||||
}
|
||||
|
||||
if (CConfig.DebugLevel >= EDebugLevel.TR_CONFIG_LEVEL1)
|
||||
{
|
||||
long memory = GC.GetTotalMemory(false);
|
||||
txt = (memory / 1000000L).ToString(CLanguage.Translate("TR_DEBUG_MEMORY") + ": 00000 MB");
|
||||
|
||||
RectangleF rect = new RectangleF(CSettings.RenderW - CFonts.GetTextWidth(txt), dy, CFonts.GetTextWidth(txt), CFonts.GetTextHeight(txt));
|
||||
|
||||
CDraw.DrawColor(gray, new SRectF(rect.X, rect.Top, rect.Width, rect.Height, CSettings.ZNear));
|
||||
CFonts.DrawText(txt, rect.X, rect.Y, CSettings.ZNear);
|
||||
dy += rect.Height;
|
||||
}
|
||||
|
||||
if (CConfig.DebugLevel >= EDebugLevel.TR_CONFIG_LEVEL2)
|
||||
{
|
||||
txt = CSound.RecordGetToneAbs(0).ToString(CLanguage.Translate("TR_DEBUG_TONE_ABS") + " P1: 00");
|
||||
|
||||
RectangleF rect = new RectangleF(CSettings.RenderW - CFonts.GetTextWidth(txt), dy, CFonts.GetTextWidth(txt), CFonts.GetTextHeight(txt));
|
||||
|
||||
CDraw.DrawColor(gray, new SRectF(rect.X, rect.Top, rect.Width, rect.Height, CSettings.ZNear));
|
||||
CFonts.DrawText(txt, rect.X, rect.Y, CSettings.ZNear);
|
||||
dy += rect.Height;
|
||||
|
||||
|
||||
txt = CSound.RecordGetMaxVolume(0).ToString(CLanguage.Translate("TR_DEBUG_MAX_VOLUME") + " P1: 0.000");
|
||||
|
||||
rect = new RectangleF(CSettings.RenderW - CFonts.GetTextWidth(txt), dy, CFonts.GetTextWidth(txt), CFonts.GetTextHeight(txt));
|
||||
|
||||
CDraw.DrawColor(gray, new SRectF(rect.X, rect.Top, rect.Width, rect.Height, CSettings.ZNear));
|
||||
CFonts.DrawText(txt, rect.X, rect.Y, CSettings.ZNear);
|
||||
dy += rect.Height;
|
||||
|
||||
txt = CSound.RecordGetToneAbs(1).ToString(CLanguage.Translate("TR_DEBUG_TONE_ABS") + " P2: 00");
|
||||
|
||||
rect = new RectangleF(CSettings.RenderW - CFonts.GetTextWidth(txt), dy, CFonts.GetTextWidth(txt), CFonts.GetTextHeight(txt));
|
||||
|
||||
CDraw.DrawColor(gray, new SRectF(rect.X, rect.Top, rect.Width, rect.Height, CSettings.ZNear));
|
||||
CFonts.DrawText(txt, rect.X, rect.Y, CSettings.ZNear);
|
||||
dy += rect.Height;
|
||||
|
||||
|
||||
txt = CSound.RecordGetMaxVolume(1).ToString(CLanguage.Translate("TR_DEBUG_MAX_VOLUME") + " P2: 0.000");
|
||||
|
||||
rect = new RectangleF(CSettings.RenderW - CFonts.GetTextWidth(txt), dy, CFonts.GetTextWidth(txt), CFonts.GetTextHeight(txt));
|
||||
|
||||
CDraw.DrawColor(gray, new SRectF(rect.X, rect.Top, rect.Width, rect.Height, CSettings.ZNear));
|
||||
CFonts.DrawText(txt, rect.X, rect.Y, CSettings.ZNear);
|
||||
dy += rect.Height;
|
||||
}
|
||||
|
||||
if (CConfig.DebugLevel >= EDebugLevel.TR_CONFIG_LEVEL3)
|
||||
{
|
||||
txt = CSongs.NumSongsWithCoverLoaded.ToString(CLanguage.Translate("TR_DEBUG_SONGS") + ": 00000");
|
||||
|
||||
RectangleF rect = new RectangleF(CSettings.RenderW - CFonts.GetTextWidth(txt), dy, CFonts.GetTextWidth(txt), CFonts.GetTextHeight(txt));
|
||||
|
||||
CDraw.DrawColor(gray, new SRectF(rect.X, rect.Top, rect.Width, rect.Height, CSettings.ZNear));
|
||||
CFonts.DrawText(txt, rect.X, rect.Y, CSettings.ZNear);
|
||||
dy += rect.Height;
|
||||
}
|
||||
|
||||
if (CConfig.DebugLevel >= EDebugLevel.TR_CONFIG_LEVEL_MAX)
|
||||
{
|
||||
txt = _Cursor.X.ToString(CLanguage.Translate("TR_DEBUG_MOUSE") + " : (0000/") + _Cursor.Y.ToString("0000)");
|
||||
|
||||
RectangleF rect = new RectangleF(CSettings.RenderW - CFonts.GetTextWidth(txt), dy, CFonts.GetTextWidth(txt), CFonts.GetTextHeight(txt));
|
||||
|
||||
CDraw.DrawColor(gray, new SRectF(rect.X, rect.Top, rect.Width, rect.Height, CSettings.ZNear));
|
||||
CFonts.DrawText(txt, rect.X, rect.Y, CSettings.ZNear);
|
||||
dy += rect.Height;
|
||||
y += rect.Height;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+15
-16
@@ -181,24 +181,23 @@ namespace Vocaluxe.Base
|
||||
return true;
|
||||
}
|
||||
|
||||
private static bool _LoadLanguageEntries(CXMLReader xmlReader, ref Dictionary<string, string> texts)
|
||||
private static bool _LoadLanguageEntries(CXMLReader xmlReader, out Dictionary<string, string> texts)
|
||||
{
|
||||
texts = new Dictionary<string, string>();
|
||||
List<string> names = xmlReader.GetAttributes("resources", "name");
|
||||
string value = string.Empty;
|
||||
foreach (string name in names)
|
||||
{
|
||||
if (xmlReader.GetValue("//resources/string[@name='" + name + "']", ref value, ""))
|
||||
string value;
|
||||
if (!xmlReader.GetValue("//resources/string[@name='" + name + "']", out value, ""))
|
||||
continue;
|
||||
try
|
||||
{
|
||||
try
|
||||
{
|
||||
texts.Add(name, value);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error reading language file " + xmlReader.FileName + ": " + e.Message);
|
||||
return false;
|
||||
}
|
||||
texts.Add(name, value);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error reading language file " + xmlReader.FileName + ": " + e.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@@ -211,7 +210,7 @@ namespace Vocaluxe.Base
|
||||
return false;
|
||||
|
||||
string value = string.Empty;
|
||||
if (xmlReader.GetValue("//resources/string[@name='language']", ref value, value))
|
||||
if (xmlReader.GetValue("//resources/string[@name='language']", out value, value))
|
||||
{
|
||||
int nr = GetLanguageNr(value);
|
||||
|
||||
@@ -220,7 +219,7 @@ namespace Vocaluxe.Base
|
||||
|
||||
SPartyLanguage lang = new SPartyLanguage();
|
||||
lang.PartyModeID = partyModeID;
|
||||
if (!_LoadLanguageEntries(xmlReader, ref lang.Texts))
|
||||
if (!_LoadLanguageEntries(xmlReader, out lang.Texts))
|
||||
return false;
|
||||
|
||||
_Languages[nr].PartyModeTexts.Add(lang);
|
||||
@@ -243,7 +242,7 @@ namespace Vocaluxe.Base
|
||||
return;
|
||||
|
||||
string value = string.Empty;
|
||||
if (xmlReader.GetValue("//resources/string[@name='language']", ref value, value))
|
||||
if (xmlReader.GetValue("//resources/string[@name='language']", out value, value))
|
||||
{
|
||||
lang.Name = value;
|
||||
|
||||
@@ -252,7 +251,7 @@ namespace Vocaluxe.Base
|
||||
|
||||
lang.PartyModeTexts = new List<SPartyLanguage>();
|
||||
|
||||
_LoadLanguageEntries(xmlReader, ref lang.Texts);
|
||||
_LoadLanguageEntries(xmlReader, out lang.Texts);
|
||||
|
||||
_Languages.Add(lang);
|
||||
}
|
||||
|
||||
@@ -686,9 +686,9 @@ namespace Vocaluxe.Base
|
||||
return CVideo.VdSkip(videoStream, startPosition, videoGap);
|
||||
}
|
||||
|
||||
public bool GetFrame(int videoStream, ref STexture videoTexture, float time, ref float videoTime)
|
||||
public bool GetFrame(int videoStream, ref STexture videoTexture, float time, out float videoTime)
|
||||
{
|
||||
return CVideo.VdGetFrame(videoStream, ref videoTexture, time, ref videoTime);
|
||||
return CVideo.VdGetFrame(videoStream, ref videoTexture, time, out videoTime);
|
||||
}
|
||||
|
||||
public bool IsFinished(int videoStream)
|
||||
|
||||
+10
-10
@@ -107,7 +107,7 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
if (usedKeys[i] != _NormalGameModeID)
|
||||
{
|
||||
SPartyMode mode = new SPartyMode();
|
||||
SPartyMode mode;
|
||||
_PartyModes.TryGetValue(usedKeys[i], out mode);
|
||||
|
||||
if (mode.PartyMode != null)
|
||||
@@ -144,7 +144,7 @@ namespace Vocaluxe.Base
|
||||
public static void SetPartyMode(int partyModeID)
|
||||
{
|
||||
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);
|
||||
|
||||
_CurrentPartyMode.PartyMode.Init();
|
||||
}
|
||||
@@ -246,15 +246,15 @@ namespace Vocaluxe.Base
|
||||
bool loaded = true;
|
||||
|
||||
loaded &= xmlReader.TryGetIntValue("//root/PartyModeSystemVersion", ref pm.PartyModeSystemVersion);
|
||||
loaded &= xmlReader.GetValue("//root/Info/Name", ref pm.Name, "ERROR Name");
|
||||
loaded &= xmlReader.GetValue("//root/Info/Description", ref pm.Description, "ERROR Description");
|
||||
loaded &= xmlReader.GetValue("//root/Info/Author", ref pm.Author, "ERROR Author");
|
||||
loaded &= xmlReader.GetValue("//root/Info/Folder", ref pm.Folder, "ERROR Folder");
|
||||
loaded &= xmlReader.GetValue("//root/Info/PartyModeFile", ref pm.PartyModeFile, "ERROR PartyModeFile");
|
||||
loaded &= xmlReader.GetValue("//root/Info/Name", out pm.Name, "ERROR Name");
|
||||
loaded &= xmlReader.GetValue("//root/Info/Description", out pm.Description, "ERROR Description");
|
||||
loaded &= xmlReader.GetValue("//root/Info/Author", out pm.Author, "ERROR Author");
|
||||
loaded &= xmlReader.GetValue("//root/Info/Folder", out pm.Folder, "ERROR Folder");
|
||||
loaded &= xmlReader.GetValue("//root/Info/PartyModeFile", out pm.PartyModeFile, "ERROR PartyModeFile");
|
||||
loaded &= xmlReader.GetInnerValues("PartyScreens", ref pm.ScreenFiles);
|
||||
loaded &= xmlReader.TryGetIntValue("//root/Info/PartyModeVersionMajor", ref pm.PartyModeVersionMajor);
|
||||
loaded &= xmlReader.TryGetIntValue("//root/Info/PartyModeVersionMinor", ref pm.PartyModeVersionMinor);
|
||||
loaded &= xmlReader.GetValue("//root/Info/TargetAudience", ref pm.TargetAudience, "ERROR TargetAudience");
|
||||
loaded &= xmlReader.GetValue("//root/Info/TargetAudience", out pm.TargetAudience, "ERROR TargetAudience");
|
||||
|
||||
if (!loaded)
|
||||
{
|
||||
@@ -359,7 +359,7 @@ namespace Vocaluxe.Base
|
||||
|
||||
using (CodeDomProvider cdp = CodeDomProvider.CreateProvider("CSharp"))
|
||||
{
|
||||
CompilerResults compileResult = null;
|
||||
CompilerResults compileResult;
|
||||
|
||||
try
|
||||
{
|
||||
@@ -393,7 +393,7 @@ namespace Vocaluxe.Base
|
||||
return null;
|
||||
}
|
||||
|
||||
CMenuParty screen = null;
|
||||
CMenuParty screen;
|
||||
try
|
||||
{
|
||||
screen = (CMenuParty)instance;
|
||||
|
||||
+23
-25
@@ -243,39 +243,37 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
using (sr = new StreamReader(file, Encoding.Default, true))
|
||||
{
|
||||
int pos = -1;
|
||||
string line;
|
||||
while ((line = sr.ReadLine()) != null)
|
||||
{
|
||||
pos = line.IndexOf(":");
|
||||
if (pos > 0)
|
||||
int pos = line.IndexOf(":", StringComparison.Ordinal);
|
||||
if (pos <= 0)
|
||||
continue;
|
||||
//Name or comment
|
||||
if (line[0] == '#')
|
||||
{
|
||||
//Name or comment
|
||||
if (line[0] == '#')
|
||||
string identifier = line.Substring(1, pos - 1).Trim();
|
||||
string value = line.Substring(pos + 1, line.Length - pos - 1).Trim();
|
||||
if (identifier.ToUpper() == "NAME")
|
||||
pl.PlaylistName = value;
|
||||
}
|
||||
//Song
|
||||
else
|
||||
{
|
||||
string artist = line.Substring(0, pos - 1).Trim();
|
||||
string title = line.Substring(pos + 1, line.Length - pos - 1).Trim();
|
||||
bool found = false;
|
||||
for (int s = 0; s < allSongs.Length; s++)
|
||||
{
|
||||
string identifier = line.Substring(1, pos - 1).Trim();
|
||||
string value = line.Substring(pos + 1, line.Length - pos - 1).Trim();
|
||||
if (identifier.ToUpper() == "NAME")
|
||||
pl.PlaylistName = value;
|
||||
}
|
||||
//Song
|
||||
else
|
||||
{
|
||||
string artist = line.Substring(0, pos - 1).Trim();
|
||||
string title = line.Substring(pos + 1, line.Length - pos - 1).Trim();
|
||||
bool found = false;
|
||||
for (int s = 0; s < allSongs.Length; s++)
|
||||
if (allSongs[s].Artist == artist && allSongs[s].Title == title)
|
||||
{
|
||||
if (allSongs[s].Artist == artist && allSongs[s].Title == title)
|
||||
{
|
||||
pl.AddSong(allSongs[s].ID);
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
pl.AddSong(allSongs[s].ID);
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
if (!found)
|
||||
CLog.LogError("Can't find song '" + title + "' from '" + artist + "' in playlist file: " + file);
|
||||
}
|
||||
if (!found)
|
||||
CLog.LogError("Can't find song '" + title + "' from '" + artist + "' in playlist file: " + file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -362,7 +362,6 @@ namespace Vocaluxe.Base
|
||||
finally
|
||||
{
|
||||
writer.Close();
|
||||
writer = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -376,7 +375,7 @@ namespace Vocaluxe.Base
|
||||
return;
|
||||
|
||||
string value = String.Empty;
|
||||
if (xmlReader.GetValue("//root/Info/PlayerName", ref value, value))
|
||||
if (xmlReader.GetValue("//root/Info/PlayerName", out value, value))
|
||||
{
|
||||
profile.PlayerName = value;
|
||||
|
||||
@@ -384,7 +383,7 @@ namespace Vocaluxe.Base
|
||||
xmlReader.TryGetEnumValue("//root/Info/Difficulty", ref profile.Difficulty);
|
||||
|
||||
profile.Avatar = new SAvatar(-1);
|
||||
if (xmlReader.GetValue("//root/Info/Avatar", ref value, value))
|
||||
if (xmlReader.GetValue("//root/Info/Avatar", out value, value))
|
||||
profile.Avatar = _GetAvatar(value);
|
||||
|
||||
profile.GuestProfile = EOffOn.TR_CONFIG_OFF;
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace Vocaluxe.Base
|
||||
public const int ZNear = -100;
|
||||
public const int ZFar = 100;
|
||||
|
||||
public static bool IsFullScreen = false;
|
||||
public static bool IsFullScreen;
|
||||
public static int VertexBufferElements = 10000;
|
||||
|
||||
public const string Icon = "Vocaluxe.ico";
|
||||
@@ -142,12 +142,14 @@ namespace Vocaluxe.Base
|
||||
|
||||
public static string GetVersionText()
|
||||
{
|
||||
string version = "v" + VersionMajor.ToString() + "." +
|
||||
VersionMinor.ToString() + "." +
|
||||
VersionSub.ToString() + " (" + Arch + ")";
|
||||
string version = "v" + VersionMajor + "." +
|
||||
VersionMinor + "." +
|
||||
VersionSub + " (" + Arch + ")";
|
||||
|
||||
// ReSharper disable ConditionIsAlwaysTrueOrFalse
|
||||
if (VersionRevision != ERevision.Release)
|
||||
version += " " + GetVersionStatus() + String.Format(" ({0:0000)}", Build);
|
||||
// ReSharper restore ConditionIsAlwaysTrueOrFalse
|
||||
version += " " + _GetVersionStatus() + String.Format(" ({0:0000)}", Build);
|
||||
|
||||
return version;
|
||||
}
|
||||
@@ -162,11 +164,13 @@ namespace Vocaluxe.Base
|
||||
return version + " " + GetVersionText();
|
||||
}
|
||||
|
||||
public static string GetVersionStatus()
|
||||
private static string _GetVersionStatus()
|
||||
{
|
||||
string result = String.Empty;
|
||||
string result;
|
||||
|
||||
// ReSharper disable ConditionIsAlwaysTrueOrFalse
|
||||
if (VersionRevision != ERevision.Release)
|
||||
// ReSharper restore ConditionIsAlwaysTrueOrFalse
|
||||
result = Enum.GetName(typeof(ERevision), VersionRevision);
|
||||
|
||||
return result;
|
||||
|
||||
@@ -124,15 +124,13 @@ namespace Vocaluxe.Base
|
||||
|
||||
private List<SSongPointer> _CreateSortList(string fieldName)
|
||||
{
|
||||
FieldInfo field = null;
|
||||
bool isString = false;
|
||||
List<SSongPointer> sortList = new List<SSongPointer>();
|
||||
if (fieldName.Length == 0)
|
||||
CSongs.Filter.FilteredSongs.ForEach((song) => sortList.Add(new SSongPointer(song.ID, "")));
|
||||
CSongs.Filter.FilteredSongs.ForEach(song => sortList.Add(new SSongPointer(song.ID, "")));
|
||||
else
|
||||
{
|
||||
field = typeof(CSong).GetField(fieldName, BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.Public);
|
||||
isString = field.FieldType == typeof(string);
|
||||
FieldInfo field = typeof(CSong).GetField(fieldName, BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.Public);
|
||||
bool isString = field.FieldType == typeof(string);
|
||||
if (!isString && field.FieldType != typeof(List<String>))
|
||||
throw new Exception("Unkown sort field type");
|
||||
foreach (CSong song in CSongs.Filter.FilteredSongs)
|
||||
@@ -147,7 +145,7 @@ namespace Vocaluxe.Base
|
||||
sortList.Add(new SSongPointer(song.ID, ""));
|
||||
else
|
||||
{
|
||||
foreach (String sortString in (List<String>)value)
|
||||
foreach (String sortString in values)
|
||||
sortList.Add(new SSongPointer(song.ID, sortString));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -445,14 +445,10 @@ namespace Vocaluxe.Base
|
||||
if (!SongsLoaded || CoverLoaded)
|
||||
return;
|
||||
|
||||
if (_CoverLoaderThread == null)
|
||||
{
|
||||
_CoverLoaderThread = new Thread(_LoadCover);
|
||||
_CoverLoaderThread.Name = "CoverLoader";
|
||||
_CoverLoaderThread.Priority = ThreadPriority.BelowNormal;
|
||||
_CoverLoaderThread.IsBackground = true;
|
||||
_CoverLoaderThread.Start();
|
||||
}
|
||||
if (_CoverLoaderThread != null)
|
||||
return;
|
||||
_CoverLoaderThread = new Thread(_LoadCover) {Name = "CoverLoader", Priority = ThreadPriority.BelowNormal, IsBackground = true};
|
||||
_CoverLoaderThread.Start();
|
||||
|
||||
/*
|
||||
if (_CoverLoadTimer.ElapsedMilliseconds >= WaitTime)
|
||||
|
||||
+21
-21
@@ -134,7 +134,7 @@ namespace Vocaluxe.Base
|
||||
}
|
||||
}
|
||||
|
||||
public static SCursor Cursor = new SCursor();
|
||||
public static SCursor Cursor;
|
||||
#endregion Vars
|
||||
|
||||
#region Theme and Skin loading and writing
|
||||
@@ -166,7 +166,7 @@ namespace Vocaluxe.Base
|
||||
if (xmlReader == null)
|
||||
return false;
|
||||
|
||||
string value = String.Empty;
|
||||
string value;
|
||||
|
||||
|
||||
// load skins/textures
|
||||
@@ -176,7 +176,7 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
try
|
||||
{
|
||||
xmlReader.GetValue("//root/Skins/" + name, ref value, String.Empty);
|
||||
xmlReader.GetValue("//root/Skins/" + name, out value, String.Empty);
|
||||
SSkinElement sk = _Skins[skinIndex].SkinList[name];
|
||||
sk.Value = value;
|
||||
sk.VideoIndex = -1;
|
||||
@@ -196,7 +196,7 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
try
|
||||
{
|
||||
xmlReader.GetValue("//root/Videos/" + _Skins[skinIndex].VideoList[i].Name, ref value, String.Empty);
|
||||
xmlReader.GetValue("//root/Videos/" + _Skins[skinIndex].VideoList[i].Name, out value, String.Empty);
|
||||
SSkinElement sk = new SSkinElement();
|
||||
sk.Name = _Skins[skinIndex].VideoList[i].Name;
|
||||
sk.Value = value;
|
||||
@@ -267,7 +267,7 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
if (themeIndex < 0 || themeIndex >= _Themes.Count)
|
||||
{
|
||||
CLog.LogError("Can't find Theme Index " + themeIndex.ToString());
|
||||
CLog.LogError("Can't find Theme Index " + themeIndex);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -425,11 +425,11 @@ namespace Vocaluxe.Base
|
||||
|
||||
if (version == _ThemeSystemVersion)
|
||||
{
|
||||
xmlReader.GetValue("//root/Info/Name", ref theme.Name, String.Empty);
|
||||
xmlReader.GetValue("//root/Info/Name", out theme.Name, String.Empty);
|
||||
if (theme.Name.Length > 0)
|
||||
{
|
||||
xmlReader.GetValue("//root/Info/Author", ref theme.Author, String.Empty);
|
||||
xmlReader.GetValue("//root/Info/SkinFolder", ref theme.SkinFolder, String.Empty);
|
||||
xmlReader.GetValue("//root/Info/Author", out theme.Author, String.Empty);
|
||||
xmlReader.GetValue("//root/Info/SkinFolder", out theme.SkinFolder, String.Empty);
|
||||
xmlReader.TryGetIntValue("//root/Info/ThemeVersionMajor", ref theme.ThemeVersionMajor);
|
||||
xmlReader.TryGetIntValue("//root/Info/ThemeVersionMinor", ref theme.ThemeVersionMinor);
|
||||
theme.Path = Path.GetDirectoryName(filePath);
|
||||
@@ -447,7 +447,7 @@ namespace Vocaluxe.Base
|
||||
else
|
||||
msg += "the file is for newer program versions! ";
|
||||
|
||||
msg += "Current ThemeSystemVersion is " + _ThemeSystemVersion.ToString() + " but found " + version;
|
||||
msg += "Current ThemeSystemVersion is " + _ThemeSystemVersion + " but found " + version;
|
||||
CLog.LogError(msg);
|
||||
}
|
||||
return true;
|
||||
@@ -470,7 +470,7 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
if (themeIndex < 0 || themeIndex >= _Themes.Count)
|
||||
{
|
||||
CLog.LogError("Error List Skins. Can't find Theme index: " + themeIndex.ToString());
|
||||
CLog.LogError("Error List Skins. Can't find Theme index: " + themeIndex);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -492,10 +492,10 @@ namespace Vocaluxe.Base
|
||||
|
||||
if (version == _SkinSystemVersion)
|
||||
{
|
||||
xmlReader.GetValue("//root/Info/Name", ref skin.Name, String.Empty);
|
||||
xmlReader.GetValue("//root/Info/Name", out skin.Name, String.Empty);
|
||||
if (skin.Name.Length > 0)
|
||||
{
|
||||
xmlReader.GetValue("//root/Info/Author", ref skin.Author, String.Empty);
|
||||
xmlReader.GetValue("//root/Info/Author", out skin.Author, String.Empty);
|
||||
xmlReader.TryGetIntValue("//root/Info/SkinVersionMajor", ref skin.SkinVersionMajor);
|
||||
xmlReader.TryGetIntValue("//root/Info/SkinVersionMinor", ref skin.SkinVersionMinor);
|
||||
|
||||
@@ -534,7 +534,7 @@ namespace Vocaluxe.Base
|
||||
else
|
||||
msg += "the file is for newer program versions! ";
|
||||
|
||||
msg += "Current SkinSystemVersion is " + _SkinSystemVersion.ToString();
|
||||
msg += "Current SkinSystemVersion is " + _SkinSystemVersion;
|
||||
CLog.LogError(msg);
|
||||
}
|
||||
}
|
||||
@@ -635,7 +635,7 @@ namespace Vocaluxe.Base
|
||||
sk.VideoIndex = CVideo.VdLoad(GetVideoFilePath(sk.Name, partyModeID));
|
||||
CVideo.VdSetLoop(sk.VideoIndex, true);
|
||||
}
|
||||
CVideo.VdGetFrame(sk.VideoIndex, ref sk.Texture, time, ref time);
|
||||
CVideo.VdGetFrame(sk.VideoIndex, ref sk.Texture, time, out time);
|
||||
_Skins[skinIndex].VideoList[i] = sk;
|
||||
return sk.Texture;
|
||||
}
|
||||
@@ -729,14 +729,14 @@ namespace Vocaluxe.Base
|
||||
float value = 0f;
|
||||
|
||||
int i = 1;
|
||||
while (xmlReader.TryGetFloatValue("//root/Colors/Player" + i.ToString() + "/R", ref value))
|
||||
while (xmlReader.TryGetFloatValue("//root/Colors/Player" + i + "/R", ref value))
|
||||
{
|
||||
SColorF color = new SColorF();
|
||||
|
||||
color.R = value;
|
||||
xmlReader.TryGetFloatValue("//root/Colors/Player" + i.ToString() + "/G", ref color.G);
|
||||
xmlReader.TryGetFloatValue("//root/Colors/Player" + i.ToString() + "/B", ref color.B);
|
||||
xmlReader.TryGetFloatValue("//root/Colors/Player" + i.ToString() + "/A", ref color.A);
|
||||
xmlReader.TryGetFloatValue("//root/Colors/Player" + i + "/G", ref color.G);
|
||||
xmlReader.TryGetFloatValue("//root/Colors/Player" + i + "/B", ref color.B);
|
||||
xmlReader.TryGetFloatValue("//root/Colors/Player" + i + "/A", ref color.A);
|
||||
|
||||
playerColors.Add(color);
|
||||
i++;
|
||||
@@ -766,12 +766,12 @@ namespace Vocaluxe.Base
|
||||
private static void _LoadCursor(CXMLReader xmlReader, int skinIndex)
|
||||
{
|
||||
string value = String.Empty;
|
||||
xmlReader.GetValue("//root/Cursor/Skin", ref Cursor.SkinName, value);
|
||||
xmlReader.GetValue("//root/Cursor/Skin", out Cursor.SkinName, value);
|
||||
|
||||
xmlReader.TryGetFloatValue("//root/Cursor/W", ref Cursor.W);
|
||||
xmlReader.TryGetFloatValue("//root/Cursor/H", ref Cursor.H);
|
||||
|
||||
if (xmlReader.GetValue("//root/Cursor/Color", ref value, value))
|
||||
if (xmlReader.GetValue("//root/Cursor/Color", out value, value))
|
||||
{
|
||||
SColorF color = GetColor(value, _Skins[skinIndex].PartyModeID);
|
||||
Cursor.R = color.R;
|
||||
@@ -799,7 +799,7 @@ namespace Vocaluxe.Base
|
||||
writer.WriteStartElement("Colors");
|
||||
for (int i = 0; i < _Skins[skinIndex].ThemeColors.Player.Length; i++)
|
||||
{
|
||||
writer.WriteStartElement("Player" + (i + 1).ToString());
|
||||
writer.WriteStartElement("Player" + (i + 1));
|
||||
|
||||
writer.WriteElementString("R", _Skins[skinIndex].ThemeColors.Player[i].R.ToString("#0.000"));
|
||||
writer.WriteElementString("G", _Skins[skinIndex].ThemeColors.Player[i].G.ToString("#0.000"));
|
||||
|
||||
@@ -155,9 +155,7 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
_CheckModifiers();
|
||||
|
||||
bool repeat = false;
|
||||
if (_Keys == e.KeyCode)
|
||||
repeat = true;
|
||||
bool repeat = _Keys == e.KeyCode;
|
||||
|
||||
if (!_Timer.IsRunning || (_Timer.ElapsedMilliseconds > 75) || !repeat)
|
||||
{
|
||||
@@ -212,9 +210,6 @@ namespace Vocaluxe.Base
|
||||
private readonly List<SMouseEvent> _EventsPool;
|
||||
private readonly List<SMouseEvent> _CurrentPool;
|
||||
|
||||
private int _X;
|
||||
private int _Y;
|
||||
|
||||
private readonly Object _CopyLock = new Object();
|
||||
|
||||
private bool _ModAlt;
|
||||
@@ -223,17 +218,7 @@ namespace Vocaluxe.Base
|
||||
|
||||
private readonly Stopwatch _Timer;
|
||||
|
||||
public int X
|
||||
{
|
||||
get { return _X; }
|
||||
}
|
||||
|
||||
public int Y
|
||||
{
|
||||
get { return _Y; }
|
||||
}
|
||||
|
||||
public bool Visible = false;
|
||||
public bool Visible;
|
||||
|
||||
public CMouse()
|
||||
{
|
||||
@@ -258,8 +243,6 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
_EventsPool.Add(pool);
|
||||
}
|
||||
_X = x;
|
||||
_Y = y;
|
||||
}
|
||||
|
||||
private void _Del(int index)
|
||||
@@ -324,14 +307,11 @@ namespace Vocaluxe.Base
|
||||
|
||||
public bool PollEvent(ref SMouseEvent mouseEvent)
|
||||
{
|
||||
if (_CurrentPool.Count > 0)
|
||||
{
|
||||
mouseEvent = _CurrentPool[0];
|
||||
_Del(0);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
if (_CurrentPool.Count <= 0)
|
||||
return false;
|
||||
mouseEvent = _CurrentPool[0];
|
||||
_Del(0);
|
||||
return true;
|
||||
}
|
||||
|
||||
public void CopyEvents()
|
||||
|
||||
@@ -80,9 +80,9 @@ namespace Vocaluxe.Base
|
||||
return _VideoDecoder.GetLength(streamID);
|
||||
}
|
||||
|
||||
public static bool VdGetFrame(int streamID, ref STexture frame, float time, ref float videoTime)
|
||||
public static bool VdGetFrame(int streamID, ref STexture frame, float time, out float videoTime)
|
||||
{
|
||||
return _VideoDecoder.GetFrame(streamID, ref frame, time, ref videoTime);
|
||||
return _VideoDecoder.GetFrame(streamID, ref frame, time, out videoTime);
|
||||
}
|
||||
|
||||
public static bool VdSkip(int streamID, float start, float gap)
|
||||
@@ -178,7 +178,7 @@ namespace Vocaluxe.Base
|
||||
|
||||
STexture tex = new STexture(-1);
|
||||
tex.Height = 0f;
|
||||
CVideo.VdGetFrame(_VideoStream, ref tex, videoTime, ref videoTime);
|
||||
CVideo.VdGetFrame(_VideoStream, ref tex, videoTime, out videoTime);
|
||||
|
||||
if (tex.Height > 0)
|
||||
{
|
||||
@@ -188,7 +188,7 @@ namespace Vocaluxe.Base
|
||||
}
|
||||
RectangleF bounds = new RectangleF(0f, 0f, CSettings.RenderW, CSettings.RenderH);
|
||||
RectangleF rect = new RectangleF(0f, 0f, _VideoTexture.Width, _VideoTexture.Height);
|
||||
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, EAspect.Crop);
|
||||
CHelper.SetRect(bounds, out rect, rect.Width / rect.Height, EAspect.Crop);
|
||||
|
||||
CDraw.DrawTexture(_VideoTexture, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, CSettings.ZFar / 4));
|
||||
}
|
||||
@@ -198,8 +198,8 @@ namespace Vocaluxe.Base
|
||||
float videoTime = 0f;
|
||||
while (_VideoTexture.Index == -1 && videoTime < 1f)
|
||||
{
|
||||
float dummy = 0f;
|
||||
CVideo.VdGetFrame(_VideoStream, ref _VideoTexture, 0, ref dummy);
|
||||
float dummy;
|
||||
CVideo.VdGetFrame(_VideoStream, ref _VideoTexture, 0, out dummy);
|
||||
videoTime += 0.05f;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,8 +26,8 @@ namespace Vocaluxe.GameModes
|
||||
{
|
||||
struct SSongQueque
|
||||
{
|
||||
public int SongID;
|
||||
public EGameMode GameMode;
|
||||
public readonly int SongID;
|
||||
public readonly EGameMode GameMode;
|
||||
|
||||
public SSongQueque(int songID, EGameMode gameMode)
|
||||
{
|
||||
@@ -38,10 +38,9 @@ namespace Vocaluxe.GameModes
|
||||
|
||||
abstract class CGameMode : IGameMode
|
||||
{
|
||||
protected bool _Initialized = false;
|
||||
protected List<SSongQueque> _SongQueque;
|
||||
protected int _CurrentSong;
|
||||
protected CPoints _Points;
|
||||
private List<SSongQueque> _SongQueque;
|
||||
private int _CurrentSong;
|
||||
private CPoints _Points;
|
||||
|
||||
#region Implementation
|
||||
public virtual void Init()
|
||||
@@ -235,7 +234,5 @@ namespace Vocaluxe.GameModes
|
||||
return _Points;
|
||||
}
|
||||
#endregion Implementation
|
||||
|
||||
protected virtual void _SongManipulation(int songIndex) {}
|
||||
}
|
||||
}
|
||||
@@ -21,12 +21,5 @@ namespace Vocaluxe.GameModes
|
||||
{
|
||||
// Nomal singing
|
||||
class CGameModeNormal : CGameMode
|
||||
{
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
|
||||
_Initialized = true;
|
||||
}
|
||||
}
|
||||
{}
|
||||
}
|
||||
+49
-135
@@ -21,7 +21,6 @@ using System.Drawing.Drawing2D;
|
||||
using System.Threading;
|
||||
using OpenTK;
|
||||
using OpenTK.Graphics;
|
||||
using OpenTK.Graphics.OpenGL;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
@@ -89,14 +88,12 @@ namespace Vocaluxe.Lib.Draw
|
||||
|
||||
//Check AA Mode
|
||||
CConfig.AAMode = (EAntiAliasingModes)_CheckAntiAliasingMode((int)CConfig.AAMode);
|
||||
|
||||
ColorFormat cf = new ColorFormat(32);
|
||||
GraphicsMode gm;
|
||||
CConfig.ColorDepth = (EColorDepth)_CheckColorDepth((int)CConfig.ColorDepth);
|
||||
|
||||
bool ok = false;
|
||||
try
|
||||
{
|
||||
gm = new GraphicsMode(cf, 24, 0, (int)CConfig.AAMode);
|
||||
GraphicsMode gm = new GraphicsMode((int)CConfig.ColorDepth, 24, 0, (int)CConfig.AAMode);
|
||||
_Control = new GLControl(gm, 2, 1, GraphicsContextFlags.Default);
|
||||
if (_Control.GraphicsMode != null)
|
||||
ok = true;
|
||||
@@ -140,127 +137,60 @@ namespace Vocaluxe.Lib.Draw
|
||||
#region Helpers
|
||||
private int _CheckAntiAliasingMode(int setValue)
|
||||
{
|
||||
int result = 0;
|
||||
GraphicsMode mode = null;
|
||||
bool done = false;
|
||||
int samples = 0;
|
||||
|
||||
while (!done && (result <= 32))
|
||||
if (setValue > 32)
|
||||
setValue = 32;
|
||||
|
||||
while (samples<=setValue)
|
||||
{
|
||||
GraphicsMode mode;
|
||||
try
|
||||
{
|
||||
mode = new GraphicsMode(16, 0, 0, result);
|
||||
mode = new GraphicsMode(16, 0, 0, samples);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
done = true;
|
||||
result /= 2;
|
||||
if (result == 1)
|
||||
result = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
if (mode != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (mode.Samples == result)
|
||||
{
|
||||
if (result == 0)
|
||||
result = 2;
|
||||
else
|
||||
result *= 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
done = true;
|
||||
result /= 2;
|
||||
if (result == 1)
|
||||
result = 0;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
done = true;
|
||||
result /= 2;
|
||||
if (result == 1)
|
||||
result = 0;
|
||||
}
|
||||
}
|
||||
if (mode.Samples != samples)
|
||||
break;
|
||||
if (samples == 0)
|
||||
samples = 2;
|
||||
else
|
||||
{
|
||||
done = true;
|
||||
result /= 2;
|
||||
if (result == 1)
|
||||
result = 0;
|
||||
}
|
||||
samples *= 2;
|
||||
}
|
||||
|
||||
if (result > 64)
|
||||
result = 32;
|
||||
|
||||
if (setValue < result)
|
||||
return setValue;
|
||||
else
|
||||
return result;
|
||||
if (samples == 2)
|
||||
return 0;
|
||||
return samples / 2;
|
||||
}
|
||||
|
||||
private int _CheckColorDeep(int setValue)
|
||||
private int _CheckColorDepth(int setValue)
|
||||
{
|
||||
int result = 8;
|
||||
GraphicsMode mode = null;
|
||||
bool done = false;
|
||||
int result = 16;
|
||||
|
||||
while (!done && (result <= 32))
|
||||
if (setValue > 32)
|
||||
setValue = 32;
|
||||
|
||||
while (result <= setValue)
|
||||
{
|
||||
GraphicsMode mode;
|
||||
try
|
||||
{
|
||||
mode = new GraphicsMode(result, 0, 0, 0);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
done = true;
|
||||
result -= 8;
|
||||
if (result == 0)
|
||||
result = 8;
|
||||
}
|
||||
|
||||
if (mode != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (mode.ColorFormat == result)
|
||||
result += 8;
|
||||
else
|
||||
{
|
||||
done = true;
|
||||
result -= 8;
|
||||
if (result == 0)
|
||||
result = 8;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
done = true;
|
||||
result -= 8;
|
||||
if (result == 0)
|
||||
result = 8;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
done = true;
|
||||
result -= 8;
|
||||
if (result == 0)
|
||||
result = 8;
|
||||
break;
|
||||
}
|
||||
if (mode.ColorFormat != result)
|
||||
break;
|
||||
result += 8;
|
||||
}
|
||||
|
||||
if (result > 32)
|
||||
result = 32;
|
||||
|
||||
if (setValue < result)
|
||||
return setValue;
|
||||
else
|
||||
return result;
|
||||
return result - 8;
|
||||
}
|
||||
|
||||
private void _ToggleFullScreen()
|
||||
@@ -590,7 +520,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
|
||||
public void CopyScreen(ref STexture texture)
|
||||
{
|
||||
if (!_TextureExists(ref texture) || (texture.Width != GetScreenWidth()) || (texture.Height != GetScreenHeight()))
|
||||
if (!_TextureExists(ref texture) || Math.Abs(texture.Width - GetScreenWidth()) > 1 || Math.Abs(texture.Height - GetScreenHeight()) > 1)
|
||||
{
|
||||
RemoveTexture(ref texture);
|
||||
texture = CopyScreen();
|
||||
@@ -608,7 +538,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
|
||||
public void MakeScreenShot()
|
||||
{
|
||||
string file = "Screenshot_";
|
||||
const string file = "Screenshot_";
|
||||
string path = Path.Combine(Environment.CurrentDirectory, CSettings.FolderScreenshots);
|
||||
|
||||
int i = 0;
|
||||
@@ -678,7 +608,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
|
||||
OpenTK.Graphics.OpenGL.GL.Enable(OpenTK.Graphics.OpenGL.EnableCap.Blend);
|
||||
|
||||
if (rect.Rotation != 0f)
|
||||
if (Math.Abs(rect.Rotation) > 0.001)
|
||||
{
|
||||
OpenTK.Graphics.OpenGL.GL.Translate(0.5f, 0.5f, 0);
|
||||
OpenTK.Graphics.OpenGL.GL.Rotate(-rect.Rotation, 0f, 0f, 1f);
|
||||
@@ -724,7 +654,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
}
|
||||
try
|
||||
{
|
||||
return AddTexture(bmp, texturePath);
|
||||
return AddTexture(bmp);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -736,11 +666,6 @@ namespace Vocaluxe.Lib.Draw
|
||||
}
|
||||
|
||||
public STexture AddTexture(Bitmap bmp)
|
||||
{
|
||||
return AddTexture(bmp, String.Empty);
|
||||
}
|
||||
|
||||
public STexture AddTexture(Bitmap bmp, string texturePath)
|
||||
{
|
||||
STexture texture = new STexture(-1);
|
||||
|
||||
@@ -985,11 +910,8 @@ namespace Vocaluxe.Lib.Draw
|
||||
public STexture QuequeTexture(int w, int h, ref byte[] data)
|
||||
{
|
||||
STexture texture = new STexture(-1);
|
||||
STextureQueque queque = new STextureQueque();
|
||||
STextureQueque queque = new STextureQueque {Data = data, Height = h, Width = w};
|
||||
|
||||
queque.Data = data;
|
||||
queque.Height = h;
|
||||
queque.Width = w;
|
||||
texture.Height = h;
|
||||
texture.Width = w;
|
||||
|
||||
@@ -1071,29 +993,21 @@ namespace Vocaluxe.Lib.Draw
|
||||
{
|
||||
if (_UsePBO)
|
||||
{
|
||||
try
|
||||
{
|
||||
OpenTK.Graphics.OpenGL.GL.BindBuffer(OpenTK.Graphics.OpenGL.BufferTarget.PixelUnpackBuffer, texture.PBO);
|
||||
OpenTK.Graphics.OpenGL.GL.BindBuffer(OpenTK.Graphics.OpenGL.BufferTarget.PixelUnpackBuffer, texture.PBO);
|
||||
|
||||
IntPtr buffer = OpenTK.Graphics.OpenGL.GL.MapBuffer(OpenTK.Graphics.OpenGL.BufferTarget.PixelUnpackBuffer, OpenTK.Graphics.OpenGL.BufferAccess.WriteOnly);
|
||||
Marshal.Copy(data, 0, buffer, data.Length);
|
||||
IntPtr buffer = OpenTK.Graphics.OpenGL.GL.MapBuffer(OpenTK.Graphics.OpenGL.BufferTarget.PixelUnpackBuffer, OpenTK.Graphics.OpenGL.BufferAccess.WriteOnly);
|
||||
Marshal.Copy(data, 0, buffer, data.Length);
|
||||
|
||||
OpenTK.Graphics.OpenGL.GL.UnmapBuffer(OpenTK.Graphics.OpenGL.BufferTarget.PixelUnpackBuffer);
|
||||
OpenTK.Graphics.OpenGL.GL.UnmapBuffer(OpenTK.Graphics.OpenGL.BufferTarget.PixelUnpackBuffer);
|
||||
|
||||
OpenTK.Graphics.OpenGL.GL.BindTexture(OpenTK.Graphics.OpenGL.TextureTarget.Texture2D, texture.ID);
|
||||
OpenTK.Graphics.OpenGL.GL.TexSubImage2D(OpenTK.Graphics.OpenGL.TextureTarget.Texture2D, 0, 0, 0, (int)texture.Width, (int)texture.Height,
|
||||
OpenTK.Graphics.OpenGL.PixelFormat.Bgra, OpenTK.Graphics.OpenGL.PixelType.UnsignedByte, IntPtr.Zero);
|
||||
OpenTK.Graphics.OpenGL.GL.BindTexture(OpenTK.Graphics.OpenGL.TextureTarget.Texture2D, texture.ID);
|
||||
OpenTK.Graphics.OpenGL.GL.TexSubImage2D(OpenTK.Graphics.OpenGL.TextureTarget.Texture2D, 0, 0, 0, (int)texture.Width, (int)texture.Height,
|
||||
OpenTK.Graphics.OpenGL.PixelFormat.Bgra, OpenTK.Graphics.OpenGL.PixelType.UnsignedByte, IntPtr.Zero);
|
||||
|
||||
OpenTK.Graphics.OpenGL.GL.BindTexture(OpenTK.Graphics.OpenGL.TextureTarget.Texture2D, 0);
|
||||
OpenTK.Graphics.OpenGL.GL.BindBuffer(OpenTK.Graphics.OpenGL.BufferTarget.PixelUnpackBuffer, 0);
|
||||
OpenTK.Graphics.OpenGL.GL.BindTexture(OpenTK.Graphics.OpenGL.TextureTarget.Texture2D, 0);
|
||||
OpenTK.Graphics.OpenGL.GL.BindBuffer(OpenTK.Graphics.OpenGL.BufferTarget.PixelUnpackBuffer, 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw;
|
||||
//_UsePBO = false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
OpenTK.Graphics.OpenGL.GL.BindTexture(OpenTK.Graphics.OpenGL.TextureTarget.Texture2D, texture.ID);
|
||||
@@ -1180,7 +1094,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
|
||||
public void DrawTexture(STexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored)
|
||||
{
|
||||
if (rect.W == 0f || rect.H == 0f || bounds.H == 0f || bounds.W == 0f || color.A == 0f)
|
||||
if (Math.Abs(rect.W) < float.Epsilon || Math.Abs(rect.H) < float.Epsilon || Math.Abs(bounds.H) < float.Epsilon || Math.Abs(bounds.W) < float.Epsilon || Math.Abs(color.A) < float.Epsilon)
|
||||
return;
|
||||
|
||||
if (bounds.X > rect.X + rect.W || bounds.X + bounds.W < rect.X)
|
||||
@@ -1234,7 +1148,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
OpenTK.Graphics.OpenGL.GL.MatrixMode(OpenTK.Graphics.OpenGL.MatrixMode.Texture);
|
||||
OpenTK.Graphics.OpenGL.GL.PushMatrix();
|
||||
|
||||
if (rect.Rotation != 0f)
|
||||
if (Math.Abs(rect.Rotation) > float.Epsilon)
|
||||
{
|
||||
OpenTK.Graphics.OpenGL.GL.Translate(0.5f, 0.5f, 0);
|
||||
OpenTK.Graphics.OpenGL.GL.Rotate(-rect.Rotation, 0f, 0f, 1f);
|
||||
@@ -1319,7 +1233,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
|
||||
public void DrawTextureReflection(STexture texture, SRectF rect, SColorF color, SRectF bounds, float space, float height)
|
||||
{
|
||||
if (rect.W == 0f || rect.H == 0f || bounds.H == 0f || bounds.W == 0f || color.A == 0f || height <= 0f)
|
||||
if (Math.Abs(rect.W) < float.Epsilon || Math.Abs(rect.H) < float.Epsilon || Math.Abs(bounds.H) < float.Epsilon || Math.Abs(bounds.W) < float.Epsilon || Math.Abs(color.A) < float.Epsilon || height <= float.Epsilon)
|
||||
return;
|
||||
|
||||
if (bounds.X > rect.X + rect.W || bounds.X + bounds.W < rect.X)
|
||||
@@ -1375,7 +1289,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
OpenTK.Graphics.OpenGL.GL.MatrixMode(OpenTK.Graphics.OpenGL.MatrixMode.Texture);
|
||||
OpenTK.Graphics.OpenGL.GL.PushMatrix();
|
||||
|
||||
if (rect.Rotation != 0f)
|
||||
if (Math.Abs(rect.Rotation) > float.Epsilon)
|
||||
{
|
||||
OpenTK.Graphics.OpenGL.GL.Translate(0.5f, 0.5f, 0);
|
||||
OpenTK.Graphics.OpenGL.GL.Rotate(-rect.Rotation, 0f, 0f, 1f);
|
||||
|
||||
@@ -66,7 +66,7 @@ namespace Vocaluxe.Lib.Input
|
||||
|
||||
public static bool Init()
|
||||
{
|
||||
int result = -1;
|
||||
int result;
|
||||
try
|
||||
{
|
||||
result = hid_init();
|
||||
@@ -77,10 +77,7 @@ namespace Vocaluxe.Lib.Input
|
||||
return false;
|
||||
}
|
||||
|
||||
if (result == 0)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
return result == 0;
|
||||
}
|
||||
|
||||
[DllImport(_HIDApiDll, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl, EntryPoint = "hid_exit", CharSet = CharSet.Unicode)]
|
||||
@@ -88,7 +85,7 @@ namespace Vocaluxe.Lib.Input
|
||||
|
||||
public static bool Exit()
|
||||
{
|
||||
int result = -1;
|
||||
int result;
|
||||
try
|
||||
{
|
||||
result = hid_exit();
|
||||
@@ -99,10 +96,7 @@ namespace Vocaluxe.Lib.Input
|
||||
return false;
|
||||
}
|
||||
|
||||
if (result == 0)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
return result == 0;
|
||||
}
|
||||
|
||||
[DllImport(_HIDApiDll, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl, EntryPoint = "hid_enumerate", CharSet = CharSet.Ansi)]
|
||||
@@ -169,7 +163,7 @@ namespace Vocaluxe.Lib.Input
|
||||
data = new byte[length];
|
||||
IntPtr dataPtr = Marshal.AllocHGlobal(length);
|
||||
|
||||
int result = -1;
|
||||
int result;
|
||||
try
|
||||
{
|
||||
result = hid_read_timeout(device, dataPtr, length, milliseconds);
|
||||
@@ -197,7 +191,7 @@ namespace Vocaluxe.Lib.Input
|
||||
data = new byte[length];
|
||||
IntPtr dataPtr = Marshal.AllocHGlobal(length);
|
||||
|
||||
int result = -1;
|
||||
int result;
|
||||
try
|
||||
{
|
||||
result = hid_read(device, dataPtr, length);
|
||||
|
||||
@@ -153,8 +153,8 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
}
|
||||
else
|
||||
{
|
||||
bool startRumble = false;
|
||||
bool stopRumble = false;
|
||||
bool startRumble;
|
||||
bool stopRumble;
|
||||
lock (_Sync)
|
||||
{
|
||||
startRumble = _RumbleTimer.ShouldStart;
|
||||
@@ -211,13 +211,6 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
Point p = ws.IRState.Position;
|
||||
p.X = 1023 - p.X;
|
||||
|
||||
//key events
|
||||
bool alt = false;
|
||||
bool shift = false;
|
||||
bool ctrl = false;
|
||||
bool pressed = false;
|
||||
char unicode = char.MinValue;
|
||||
|
||||
EGesture gesture = _Gesture.GetGesture(p);
|
||||
bool lb = false;
|
||||
bool rb = gesture == EGesture.Back;
|
||||
@@ -262,9 +255,9 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
_ButtonStates[10] = ws.ButtonState.Two;
|
||||
|
||||
|
||||
if (alt || shift || ctrl || pressed || unicode != char.MinValue || key != Keys.None)
|
||||
if (key != Keys.None)
|
||||
{
|
||||
SKeyEvent pool = new SKeyEvent(ESender.WiiMote, alt, shift, ctrl, pressed, unicode, key);
|
||||
SKeyEvent pool = new SKeyEvent(ESender.WiiMote, false, false, false, false, char.MinValue, key);
|
||||
|
||||
lock (_KeyCopyLock)
|
||||
{
|
||||
@@ -273,8 +266,8 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
}
|
||||
|
||||
//mouse events
|
||||
float reducing = 0.15f;
|
||||
float factor = 1f / (1f - reducing * 2f);
|
||||
const float reducing = 0.15f;
|
||||
const float factor = 1f / (1f - reducing * 2f);
|
||||
float rx = ((p.X / 1024f) - reducing) * factor;
|
||||
float ry = ((p.Y / 768f) - reducing) * factor;
|
||||
|
||||
@@ -282,11 +275,7 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
int y = (int)(ry * CSettings.RenderH);
|
||||
|
||||
|
||||
bool ld = false;
|
||||
bool lbh = !lb && ws.ButtonState.A;
|
||||
bool rbh = false;
|
||||
bool mb = false;
|
||||
bool mbh = false;
|
||||
|
||||
int wheel = 0;
|
||||
if (gesture == EGesture.ScrollUp)
|
||||
@@ -299,12 +288,12 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
|
||||
if (!lb && !rb && (p.X != _OldPosition.X || p.Y != _OldPosition.Y))
|
||||
{
|
||||
mpool = new SMouseEvent(ESender.WiiMote, alt, shift, ctrl, x, y, false, false, false, wheel, lbh, rbh, false, mbh);
|
||||
mpool = new SMouseEvent(ESender.WiiMote, false, false, false, x, y, false, false, false, wheel, lbh, false, false, false);
|
||||
trigger = true;
|
||||
}
|
||||
else if (lb || rb)
|
||||
{
|
||||
mpool = new SMouseEvent(ESender.WiiMote, alt, shift, ctrl, x, y, lb, ld, rb, wheel, false, false, mb, false);
|
||||
mpool = new SMouseEvent(ESender.WiiMote, false, false, false, x, y, lb, false, rb, wheel, false, false, false, false);
|
||||
trigger = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,15 +29,17 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
#region DataTypes
|
||||
public class CWiiMoteStatus
|
||||
{
|
||||
public SAccelCalibrationInfo AccelCalibrationInfo = new SAccelCalibrationInfo();
|
||||
public SAccelCalibrationInfo AccelCalibrationInfo;
|
||||
|
||||
public SAccelStatus AccelState = new SAccelStatus();
|
||||
public SAccelStatus AccelState;
|
||||
|
||||
public SButtons ButtonState = new SButtons();
|
||||
public SButtons ButtonState;
|
||||
|
||||
public SIRState IRState = new SIRState();
|
||||
public SIRState IRState;
|
||||
|
||||
// ReSharper disable NotAccessedField.Global
|
||||
public byte Battery;
|
||||
// ReSharper restore NotAccessedField.Global
|
||||
|
||||
public bool Rumble;
|
||||
|
||||
@@ -68,7 +70,9 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
{
|
||||
public bool Active;
|
||||
public Point Position; // X: 0-1023; Y: 0-767
|
||||
// ReSharper disable NotAccessedField.Global
|
||||
public int Width; // 0-15
|
||||
// ReSharper restore NotAccessedField.Global
|
||||
}
|
||||
|
||||
public struct SIRState
|
||||
@@ -82,7 +86,9 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
public struct SAccelStatus
|
||||
{
|
||||
public SPoint3 RawValues; //0-255
|
||||
// ReSharper disable NotAccessedField.Global
|
||||
public SPoint3F Values; //0-3
|
||||
// ReSharper restore NotAccessedField.Global
|
||||
}
|
||||
|
||||
public struct SAccelCalibrationInfo
|
||||
@@ -124,7 +130,7 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
#region Events
|
||||
public class CWiiMoteChangedEventArgs : EventArgs
|
||||
{
|
||||
public CWiiMoteStatus WiiMoteState;
|
||||
public readonly CWiiMoteStatus WiiMoteState;
|
||||
|
||||
public CWiiMoteChangedEventArgs(CWiiMoteStatus ws)
|
||||
{
|
||||
@@ -133,7 +139,7 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
}
|
||||
#endregion Events
|
||||
|
||||
public class CWiiMoteLib : IDisposable
|
||||
public sealed class CWiiMoteLib : IDisposable
|
||||
{
|
||||
// ReSharper disable InconsistentNaming
|
||||
private const ushort _VID = 0x057e;
|
||||
@@ -152,6 +158,7 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
// output commands
|
||||
private enum EOutputReport : byte
|
||||
{
|
||||
// ReSharper disable UnusedMember.Local
|
||||
// ReSharper disable InconsistentNaming
|
||||
LEDs = 0x11,
|
||||
// ReSharper restore InconsistentNaming
|
||||
@@ -163,6 +170,7 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
SpeakerData = 0x18,
|
||||
SpeakerMute = 0x19,
|
||||
IR2 = 0x1a,
|
||||
// ReSharper restore UnusedMember.Local
|
||||
};
|
||||
|
||||
// data handling
|
||||
@@ -176,11 +184,7 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
private bool _Active;
|
||||
private bool _Error;
|
||||
|
||||
private bool _Connected;
|
||||
public bool Connected
|
||||
{
|
||||
get { return _Connected; }
|
||||
}
|
||||
public bool Connected { get; private set; }
|
||||
|
||||
private readonly CWiiMoteStatus _WiiMoteState = new CWiiMoteStatus();
|
||||
private readonly AutoResetEvent _ReadDone = new AutoResetEvent(false);
|
||||
@@ -189,13 +193,18 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
#region Interface
|
||||
public CWiiMoteLib()
|
||||
{
|
||||
_Connected = false;
|
||||
Connected = false;
|
||||
_Active = true;
|
||||
_Error = false;
|
||||
_Reader = new Thread(_ReaderLoop);
|
||||
_Reader.Start();
|
||||
}
|
||||
|
||||
~CWiiMoteLib()
|
||||
{
|
||||
Dispose(false);
|
||||
}
|
||||
|
||||
private bool _TryConnect(ushort pid)
|
||||
{
|
||||
bool connected = CHIDApi.Open(_VID, pid, out _Handle);
|
||||
@@ -210,7 +219,7 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
|
||||
public bool Connect()
|
||||
{
|
||||
_Connected = false;
|
||||
Connected = false;
|
||||
|
||||
if (_Error)
|
||||
return false;
|
||||
@@ -220,7 +229,7 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
if (!CHIDApi.Init())
|
||||
{
|
||||
CLog.LogError("WiiMoteLib: Can't initialize HID API");
|
||||
string msg = "Please install the Visual C++ Redistributable Packages 2008!";
|
||||
const string msg = "Please install the Visual C++ Redistributable Packages 2008!";
|
||||
CLog.LogError(msg);
|
||||
|
||||
_Active = false;
|
||||
@@ -229,25 +238,25 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
}
|
||||
|
||||
//Try WiiMotion
|
||||
_Connected = _TryConnect(_PID);
|
||||
Connected = _TryConnect(_PID);
|
||||
|
||||
//Try WiiMotion Plus
|
||||
if (!_Connected)
|
||||
_Connected = _TryConnect(_PIDPlus);
|
||||
if (!Connected)
|
||||
Connected = _TryConnect(_PIDPlus);
|
||||
|
||||
return _Connected;
|
||||
return Connected;
|
||||
}
|
||||
|
||||
public void Disconnect()
|
||||
{
|
||||
_Connected = false;
|
||||
Connected = false;
|
||||
_Active = false;
|
||||
CHIDApi.Exit();
|
||||
}
|
||||
|
||||
public void SetReportType(EInputReport type, EIRSensitivity irSensitivity, bool continuous)
|
||||
{
|
||||
if (!_Connected)
|
||||
if (!Connected)
|
||||
return;
|
||||
|
||||
switch (type)
|
||||
@@ -275,18 +284,17 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
_WiiMoteState.LEDState.LED3 = led3;
|
||||
_WiiMoteState.LEDState.LED4 = led4;
|
||||
|
||||
if (!_Connected)
|
||||
if (!Connected)
|
||||
return;
|
||||
|
||||
_ClearReport();
|
||||
|
||||
_Buff[0] = (byte)EOutputReport.LEDs;
|
||||
_Buff[1] = (byte)(
|
||||
(led1 ? 0x10 : 0x00) |
|
||||
(led2 ? 0x20 : 0x00) |
|
||||
(led3 ? 0x40 : 0x00) |
|
||||
(led4 ? 0x80 : 0x00) |
|
||||
_RumbleBit);
|
||||
_Buff[1] = (byte)((led1 ? 0x10 : 0x00) |
|
||||
(led2 ? 0x20 : 0x00) |
|
||||
(led3 ? 0x40 : 0x00) |
|
||||
(led4 ? 0x80 : 0x00) |
|
||||
_RumbleBit);
|
||||
|
||||
CHIDApi.Write(_Handle, _Buff);
|
||||
}
|
||||
@@ -301,11 +309,6 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
_WiiMoteState.LEDState.LED3,
|
||||
_WiiMoteState.LEDState.LED4);
|
||||
}
|
||||
|
||||
public CWiiMoteStatus WiiMoteState
|
||||
{
|
||||
get { return _WiiMoteState; }
|
||||
}
|
||||
#endregion Interface
|
||||
|
||||
#region Private stuff
|
||||
@@ -315,7 +318,7 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
{
|
||||
Thread.Sleep(5);
|
||||
|
||||
if (_Handle != IntPtr.Zero && _Connected)
|
||||
if (_Handle != IntPtr.Zero && Connected)
|
||||
{
|
||||
byte[] buff = new byte[_ReportLength];
|
||||
|
||||
@@ -341,7 +344,7 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
{
|
||||
if (buff == null)
|
||||
{
|
||||
_Connected = false;
|
||||
Connected = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -408,6 +411,7 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
private byte[] _DecryptBuffer(byte[] buff)
|
||||
{
|
||||
for (int i = 0; i < buff.Length; i++)
|
||||
@@ -415,6 +419,7 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
|
||||
return buff;
|
||||
}
|
||||
*/
|
||||
|
||||
private void _ParseButtons(byte[] buff)
|
||||
{
|
||||
@@ -450,14 +455,15 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
switch (_WiiMoteState.IRState.Mode)
|
||||
{
|
||||
case EIRMode.Basic:
|
||||
if (_WiiMoteState.IRState.Sensors[0].Active = !(buff[6] == 0xff && buff[7] == 0xff))
|
||||
_WiiMoteState.IRState.Sensors[0].Active = !(buff[6] == 0xff && buff[7] == 0xff);
|
||||
if (_WiiMoteState.IRState.Sensors[0].Active)
|
||||
{
|
||||
_WiiMoteState.IRState.Sensors[0].Position.X = buff[6] | ((buff[8] >> 4) & 0x03) << 8;
|
||||
_WiiMoteState.IRState.Sensors[0].Position.Y = buff[7] | ((buff[8] >> 6) & 0x03) << 8;
|
||||
_WiiMoteState.IRState.Sensors[0].Width = 0;
|
||||
}
|
||||
|
||||
if (_WiiMoteState.IRState.Sensors[1].Active = !(buff[9] == 0xff && buff[10] == 0xff))
|
||||
_WiiMoteState.IRState.Sensors[1].Active = !(buff[9] == 0xff && buff[10] == 0xff);
|
||||
if (_WiiMoteState.IRState.Sensors[1].Active)
|
||||
{
|
||||
_WiiMoteState.IRState.Sensors[1].Position.X = buff[9] | ((buff[8] >> 0) & 0x03) << 8;
|
||||
_WiiMoteState.IRState.Sensors[1].Position.Y = buff[10] | ((buff[8] >> 2) & 0x03) << 8;
|
||||
@@ -467,12 +473,12 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
case EIRMode.Extended:
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
if (_WiiMoteState.IRState.Sensors[i].Active = !(buff[6 + i * 3] == 0xff && buff[7 + i * 3] == 0xff && buff[8 + i * 3] == 0xff))
|
||||
{
|
||||
_WiiMoteState.IRState.Sensors[i].Position.X = buff[6 + i * 3] | ((buff[8 + i * 3] >> 4) & 0x03) << 8;
|
||||
_WiiMoteState.IRState.Sensors[i].Position.Y = buff[7 + i * 3] | ((buff[8 + i * 3] >> 6) & 0x03) << 8;
|
||||
_WiiMoteState.IRState.Sensors[i].Width = buff[8 + i * 3] & 0x0f;
|
||||
}
|
||||
_WiiMoteState.IRState.Sensors[i].Active = !(buff[6 + i * 3] == 0xff && buff[7 + i * 3] == 0xff && buff[8 + i * 3] == 0xff);
|
||||
if (!_WiiMoteState.IRState.Sensors[i].Active)
|
||||
continue;
|
||||
_WiiMoteState.IRState.Sensors[i].Position.X = buff[6 + i * 3] | ((buff[8 + i * 3] >> 4) & 0x03) << 8;
|
||||
_WiiMoteState.IRState.Sensors[i].Position.Y = buff[7 + i * 3] | ((buff[8 + i * 3] >> 6) & 0x03) << 8;
|
||||
_WiiMoteState.IRState.Sensors[i].Width = buff[8 + i * 3] & 0x0f;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -504,13 +510,13 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
if ((buff[3] & 0x08) != 0)
|
||||
{
|
||||
CLog.LogError("Error reading data from WiiMote: Bytes do not exist");
|
||||
_Connected = false;
|
||||
Connected = false;
|
||||
}
|
||||
|
||||
if ((buff[3] & 0x07) != 0)
|
||||
{
|
||||
CLog.LogError("Error reading data from WiiMote: Attempt to read from write-only registers.");
|
||||
_Connected = false;
|
||||
Connected = false;
|
||||
}
|
||||
|
||||
int size = (buff[3] >> 4) + 1;
|
||||
@@ -524,12 +530,7 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
|
||||
private byte _RumbleBit
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_WiiMoteState.Rumble)
|
||||
return 0x1;
|
||||
return 0x0;
|
||||
}
|
||||
get { return (byte)(_WiiMoteState.Rumble ? 1 : 0); }
|
||||
}
|
||||
|
||||
private bool _ReadCalibration()
|
||||
@@ -649,7 +650,7 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
|
||||
if (!_ReadDone.WaitOne(1000, false))
|
||||
{
|
||||
_Connected = false;
|
||||
Connected = false;
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -687,7 +688,7 @@ namespace Vocaluxe.Lib.Input.WiiMote
|
||||
}
|
||||
|
||||
// ReSharper disable InconsistentNaming
|
||||
protected virtual void Dispose(bool disposing)
|
||||
private void Dispose(bool disposing)
|
||||
// ReSharper restore InconsistentNaming
|
||||
{
|
||||
if (disposing)
|
||||
|
||||
@@ -93,12 +93,6 @@ namespace Vocaluxe.Lib.Playlist
|
||||
return;
|
||||
}
|
||||
|
||||
if (writer == null)
|
||||
{
|
||||
CLog.LogError("Error creating/opening Playlist File " + PlaylistFile);
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
writer.WriteStartDocument();
|
||||
@@ -114,7 +108,7 @@ namespace Vocaluxe.Lib.Playlist
|
||||
CSong song = CSongs.GetSong(Songs[i].SongID);
|
||||
if (song != null)
|
||||
{
|
||||
writer.WriteStartElement("Song" + (i + 1).ToString());
|
||||
writer.WriteStartElement("Song" + (i + 1));
|
||||
writer.WriteElementString("Artist", song.Artist);
|
||||
writer.WriteElementString("Title", song.Title);
|
||||
writer.WriteElementString("GameMode", Enum.GetName(typeof(EGameMode), Songs[i].GameMode));
|
||||
@@ -143,40 +137,37 @@ namespace Vocaluxe.Lib.Playlist
|
||||
return;
|
||||
|
||||
string value = String.Empty;
|
||||
if (xmlReader.GetValue("//root/Info/PlaylistName", ref value, value))
|
||||
if (xmlReader.GetValue("//root/Info/PlaylistName", out value, value))
|
||||
{
|
||||
PlaylistName = value;
|
||||
|
||||
Songs = new List<CPlaylistSong>();
|
||||
|
||||
List<string> songs = xmlReader.GetValues("Songs");
|
||||
string artist = String.Empty;
|
||||
string title = String.Empty;
|
||||
EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL;
|
||||
|
||||
for (int i = 0; i < songs.Count; i++)
|
||||
{
|
||||
xmlReader.GetValue("//root/Songs/" + songs[i] + "/Artist", ref artist, String.Empty);
|
||||
xmlReader.GetValue("//root/Songs/" + songs[i] + "/Title", ref title, String.Empty);
|
||||
xmlReader.TryGetEnumValue("//root/Songs/" + songs[i] + "/GameMode", ref gm);
|
||||
foreach (string song in songs) {
|
||||
string artist;
|
||||
string title;
|
||||
xmlReader.GetValue("//root/Songs/" + song + "/Artist", out artist, String.Empty);
|
||||
xmlReader.GetValue("//root/Songs/" + song + "/Title", out title, String.Empty);
|
||||
xmlReader.TryGetEnumValue("//root/Songs/" + song + "/GameMode", ref gm);
|
||||
|
||||
CPlaylistSong song = new CPlaylistSong();
|
||||
song.SongID = -1;
|
||||
CPlaylistSong playlistSong = new CPlaylistSong();
|
||||
playlistSong.SongID = -1;
|
||||
CSong[] allSongs = CSongs.AllSongs;
|
||||
|
||||
for (int s = 0; s < allSongs.Length; s++)
|
||||
{
|
||||
if (allSongs[s].Artist == artist && allSongs[s].Title == title)
|
||||
{
|
||||
song.SongID = allSongs[s].ID;
|
||||
break;
|
||||
}
|
||||
foreach (CSong curSong in allSongs) {
|
||||
if (curSong.Artist != artist || curSong.Title != title)
|
||||
continue;
|
||||
playlistSong.SongID = curSong.ID;
|
||||
break;
|
||||
}
|
||||
|
||||
if (song.SongID != -1)
|
||||
if (playlistSong.SongID != -1)
|
||||
{
|
||||
song.GameMode = gm;
|
||||
Songs.Add(song);
|
||||
playlistSong.GameMode = gm;
|
||||
Songs.Add(playlistSong);
|
||||
}
|
||||
else
|
||||
CLog.LogError("Can't find song '" + title + "' from '" + artist + "' in playlist file: " + PlaylistFile);
|
||||
|
||||
@@ -792,7 +792,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
if (_Paused)
|
||||
return;
|
||||
|
||||
int queuedCount = 0;
|
||||
int queuedCount;
|
||||
bool doit = true;
|
||||
AL.GetSource(_Source, ALGetSourcei.BuffersQueued, out queuedCount);
|
||||
|
||||
@@ -801,7 +801,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
{
|
||||
AL.GetSource(_Source, ALGetSourcei.BuffersProcessed, out processedCount);
|
||||
doit = false;
|
||||
Console.WriteLine("Buffers Processed on Stream " + _Source.ToString() + " = " + processedCount.ToString());
|
||||
Console.WriteLine("Buffers Processed on Stream " + _Source + " = " + processedCount);
|
||||
if (processedCount < 1)
|
||||
return;
|
||||
}
|
||||
@@ -839,7 +839,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
}
|
||||
|
||||
|
||||
int buffer = 0;
|
||||
int buffer;
|
||||
if (!doit)
|
||||
buffer = AL.SourceUnqueueBuffer(_Source);
|
||||
else
|
||||
@@ -850,11 +850,9 @@ namespace Vocaluxe.Lib.Sound
|
||||
|
||||
if (buffer != 0)
|
||||
{
|
||||
if (_Format.ChannelCount == 2)
|
||||
AL.BufferData(buffer, ALFormat.Stereo16, buf, buf.Length, _Format.SamplesPerSecond);
|
||||
else
|
||||
AL.BufferData(buffer, ALFormat.Mono16, buf, buf.Length, _Format.SamplesPerSecond);
|
||||
Console.WriteLine("Write to Buffer: " + buffer.ToString());
|
||||
ALFormat alFormat = (_Format.ChannelCount == 2)?ALFormat.Stereo16:ALFormat.Mono16;
|
||||
AL.BufferData(buffer, alFormat, buf, buf.Length, _Format.SamplesPerSecond);
|
||||
Console.WriteLine("Write to Buffer: " + buffer);
|
||||
AL.SourceQueueBuffer(_Source, buffer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
// */
|
||||
#endregion
|
||||
|
||||
using PortAudioSharp;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
@@ -26,6 +25,7 @@ using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Lib.Sound.Decoder;
|
||||
using Vocaluxe.Lib.Sound.PortAudio;
|
||||
|
||||
namespace Vocaluxe.Lib.Sound
|
||||
{
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
#endregion
|
||||
|
||||
using System.Threading;
|
||||
using PortAudioSharp;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Lib.Sound.PortAudio;
|
||||
|
||||
namespace Vocaluxe.Lib.Sound
|
||||
{
|
||||
@@ -77,7 +77,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
|
||||
dev.ID = i;
|
||||
dev.Name = info.Name;
|
||||
dev.Driver = info.Name + i.ToString();
|
||||
dev.Driver = info.Name + i;
|
||||
dev.Inputs = new List<SInput>();
|
||||
|
||||
SInput inp = new SInput();
|
||||
@@ -155,7 +155,6 @@ namespace Vocaluxe.Lib.Sound
|
||||
}
|
||||
}
|
||||
|
||||
bool result = true;
|
||||
for (int i = 0; i < _RecHandle.Length; i++)
|
||||
{
|
||||
if (active[i])
|
||||
@@ -181,7 +180,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Lib.Video.Acinerella;
|
||||
@@ -69,7 +68,7 @@ namespace Vocaluxe.Lib.Sound.Decoder
|
||||
return;
|
||||
}
|
||||
|
||||
int audioStreamIndex = -1;
|
||||
int audioStreamIndex;
|
||||
SACDecoder audiodecoder;
|
||||
try
|
||||
{
|
||||
@@ -176,7 +175,7 @@ namespace Vocaluxe.Lib.Sound.Decoder
|
||||
return;
|
||||
}
|
||||
|
||||
int frameFinished = 0;
|
||||
int frameFinished;
|
||||
try
|
||||
{
|
||||
frameFinished = CAcinerella.AcGetAudioFrame(_InstancePtr, _Audiodecoder);
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace PortAudioSharp
|
||||
namespace Vocaluxe.Lib.Sound.PortAudio
|
||||
{
|
||||
/**
|
||||
<summary>
|
||||
@@ -28,7 +28,7 @@ namespace PortAudioSharp
|
||||
</summary>
|
||||
*/
|
||||
|
||||
public partial class CPortAudio
|
||||
public static partial class CPortAudio
|
||||
{
|
||||
#region **** PORTAUDIO CALLBACKS ****
|
||||
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
||||
@@ -549,10 +549,5 @@ namespace PortAudioSharp
|
||||
[DllImport(_PaDll, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Pa_Sleep(int msec);
|
||||
#endregion
|
||||
|
||||
private CPortAudio()
|
||||
{
|
||||
// This is a static class
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,10 +20,10 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace PortAudioSharp
|
||||
namespace Vocaluxe.Lib.Sound.PortAudio
|
||||
{
|
||||
/// <summary> PortAudio v.19 bindings for .NET - ASIO bindings </summary>
|
||||
public partial class CPortAudio
|
||||
public static partial class CPortAudio
|
||||
{
|
||||
#region **** PORTAUDIO DATA STRUCTURES ****
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace Vocaluxe.Lib.Video
|
||||
abstract class CVideoDecoder : IVideoDecoder
|
||||
{
|
||||
protected List<SVideoStreams> _Streams = new List<SVideoStreams>();
|
||||
protected bool _Initialized = false;
|
||||
protected bool _Initialized;
|
||||
|
||||
public virtual bool Init()
|
||||
{
|
||||
@@ -57,10 +57,7 @@ namespace Vocaluxe.Lib.Video
|
||||
return 0f;
|
||||
}
|
||||
|
||||
public virtual bool GetFrame(int streamID, ref STexture frame, float time, ref float videoTime)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
public abstract bool GetFrame(int streamID, ref STexture frame, float time, out float videoTime);
|
||||
|
||||
public virtual bool Skip(int streamID, float start, float gap)
|
||||
{
|
||||
|
||||
@@ -91,14 +91,15 @@ namespace Vocaluxe.Lib.Video
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool GetFrame(int streamID, ref STexture frame, float time, ref float videoTime)
|
||||
public override bool GetFrame(int streamID, ref STexture frame, float time, out float videoTime)
|
||||
{
|
||||
videoTime = 0;
|
||||
if (_Initialized)
|
||||
{
|
||||
lock (_MutexDecoder)
|
||||
{
|
||||
if (_AlreadyAdded(streamID))
|
||||
return _Decoder[_GetStreamIndex(streamID)].GetFrame(ref frame, time, ref videoTime);
|
||||
return _Decoder[_GetStreamIndex(streamID)].GetFrame(ref frame, time, out videoTime);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -315,8 +316,9 @@ namespace Vocaluxe.Lib.Video
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool GetFrame(ref STexture frame, float time, ref float videoTime)
|
||||
public bool GetFrame(ref STexture frame, float time, out float videoTime)
|
||||
{
|
||||
videoTime = 0;
|
||||
if (!_FileOpened)
|
||||
return false;
|
||||
|
||||
@@ -461,7 +463,7 @@ namespace Vocaluxe.Lib.Video
|
||||
|
||||
private void _DoOpen()
|
||||
{
|
||||
bool ok = false;
|
||||
bool ok;
|
||||
SACInstance instance = new SACInstance();
|
||||
try
|
||||
{
|
||||
@@ -486,7 +488,7 @@ namespace Vocaluxe.Lib.Video
|
||||
|
||||
_Duration = instance.Info.Duration / 1000f;
|
||||
|
||||
int videoStreamIndex = -1;
|
||||
int videoStreamIndex;
|
||||
SACDecoder videodecoder;
|
||||
try
|
||||
{
|
||||
@@ -541,9 +543,7 @@ namespace Vocaluxe.Lib.Video
|
||||
float myTime = _Time + _VideoSkipTime;
|
||||
float timeDifference = myTime - _VideoDecoderTime;
|
||||
|
||||
bool dropFrame = false;
|
||||
if (timeDifference >= (framedropcount - 1) * _VideoTimeBase)
|
||||
dropFrame = true;
|
||||
bool dropFrame = timeDifference >= (framedropcount - 1) * _VideoTimeBase;
|
||||
|
||||
if (_Terminated)
|
||||
return;
|
||||
@@ -610,7 +610,6 @@ namespace Vocaluxe.Lib.Video
|
||||
}
|
||||
else
|
||||
_NoMoreFrames = true;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -78,7 +78,7 @@ namespace Vocaluxe.Lib.Video
|
||||
return CGstreamerVideoWrapper.GetVideoLength(streamID);
|
||||
}
|
||||
|
||||
public bool GetFrame(int streamID, ref STexture frame, float time, ref float videoTime)
|
||||
public bool GetFrame(int streamID, ref STexture frame, float time, out float videoTime)
|
||||
{
|
||||
SManagedFrame managedFrame = CGstreamerVideoWrapper.GetFrame(streamID, time);
|
||||
videoTime = managedFrame.Videotime;
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace Vocaluxe.Lib.Video
|
||||
int GetNumStreams();
|
||||
|
||||
float GetLength(int streamID);
|
||||
bool GetFrame(int streamID, ref STexture frame, float time, ref float videoTime);
|
||||
bool GetFrame(int streamID, ref STexture frame, float time, out float videoTime);
|
||||
bool Skip(int streamID, float start, float gap);
|
||||
void SetLoop(int streamID, bool loop);
|
||||
void Pause(int streamID);
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
using Vocaluxe.Base;
|
||||
using VocaluxeLib.Menu;
|
||||
@@ -91,23 +90,14 @@ namespace Vocaluxe.Screens
|
||||
_ThemeStatics = new string[] {_StaticBG, _StaticCover};
|
||||
_ThemeTexts = new string[] {_TextCurrentSong};
|
||||
|
||||
List<string> buttons = new List<string>();
|
||||
buttons.Add(_ButtonPlay);
|
||||
buttons.Add(_ButtonPause);
|
||||
buttons.Add(_ButtonPrevious);
|
||||
buttons.Add(_ButtonNext);
|
||||
buttons.Add(_ButtonRepeat);
|
||||
buttons.Add(_ButtonShowVideo);
|
||||
buttons.Add(_ButtonSing);
|
||||
buttons.Add(_ButtonToBackgroundVideo);
|
||||
_ThemeButtons = buttons.ToArray();
|
||||
_ThemeButtons = new string[]{_ButtonPlay,_ButtonPause,_ButtonPrevious,_ButtonNext,_ButtonRepeat,_ButtonShowVideo,_ButtonSing,_ButtonToBackgroundVideo};
|
||||
}
|
||||
|
||||
public override void LoadTheme(string xmlPath)
|
||||
{
|
||||
base.LoadTheme(xmlPath);
|
||||
|
||||
_ScreenArea = Statics[_StaticBG].Rect;
|
||||
_ScreenArea = _Statics[_StaticBG].Rect;
|
||||
}
|
||||
|
||||
public override bool HandleInput(SKeyEvent keyEvent)
|
||||
@@ -124,21 +114,21 @@ namespace Vocaluxe.Screens
|
||||
return false;
|
||||
|
||||
case Keys.Enter:
|
||||
if (Buttons[_ButtonNext].Selected)
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
CBackgroundMusic.Next();
|
||||
if (Buttons[_ButtonPrevious].Selected)
|
||||
if (_Buttons[_ButtonPrevious].Selected)
|
||||
CBackgroundMusic.Previous();
|
||||
if (Buttons[_ButtonPlay].Selected)
|
||||
if (_Buttons[_ButtonPlay].Selected)
|
||||
CBackgroundMusic.Play();
|
||||
if (Buttons[_ButtonPause].Selected)
|
||||
if (_Buttons[_ButtonPause].Selected)
|
||||
CBackgroundMusic.Pause();
|
||||
if (Buttons[_ButtonRepeat].Selected)
|
||||
if (_Buttons[_ButtonRepeat].Selected)
|
||||
CBackgroundMusic.RepeatSong = !CBackgroundMusic.RepeatSong;
|
||||
if (Buttons[_ButtonShowVideo].Selected)
|
||||
if (_Buttons[_ButtonShowVideo].Selected)
|
||||
_VideoPreview = !_VideoPreview;
|
||||
if (Buttons[_ButtonSing].Selected)
|
||||
_StartSong(CBackgroundMusic.SongID, CBackgroundMusic.Duet);
|
||||
if (Buttons[_ButtonToBackgroundVideo].Selected)
|
||||
if (_Buttons[_ButtonSing].Selected)
|
||||
_StartSong(CBackgroundMusic.SongID);
|
||||
if (_Buttons[_ButtonToBackgroundVideo].Selected)
|
||||
_VideoBackground = !_VideoBackground;
|
||||
break;
|
||||
}
|
||||
@@ -150,23 +140,23 @@ namespace Vocaluxe.Screens
|
||||
public override bool HandleMouse(SMouseEvent mouseEvent)
|
||||
{
|
||||
base.HandleMouse(mouseEvent);
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
if (Buttons[_ButtonNext].Selected)
|
||||
if (_Buttons[_ButtonNext].Selected)
|
||||
CBackgroundMusic.Next();
|
||||
if (Buttons[_ButtonPrevious].Selected)
|
||||
if (_Buttons[_ButtonPrevious].Selected)
|
||||
CBackgroundMusic.Previous();
|
||||
if (Buttons[_ButtonPlay].Selected)
|
||||
if (_Buttons[_ButtonPlay].Selected)
|
||||
CBackgroundMusic.Play();
|
||||
if (Buttons[_ButtonPause].Selected)
|
||||
if (_Buttons[_ButtonPause].Selected)
|
||||
CBackgroundMusic.Pause();
|
||||
if (Buttons[_ButtonRepeat].Selected)
|
||||
if (_Buttons[_ButtonRepeat].Selected)
|
||||
CBackgroundMusic.RepeatSong = !CBackgroundMusic.RepeatSong;
|
||||
if (Buttons[_ButtonShowVideo].Selected)
|
||||
if (_Buttons[_ButtonShowVideo].Selected)
|
||||
_VideoPreview = !_VideoPreview;
|
||||
if (Buttons[_ButtonSing].Selected)
|
||||
_StartSong(CBackgroundMusic.SongID, CBackgroundMusic.Duet);
|
||||
if (Buttons[_ButtonToBackgroundVideo].Selected)
|
||||
if (_Buttons[_ButtonSing].Selected)
|
||||
_StartSong(CBackgroundMusic.SongID);
|
||||
if (_Buttons[_ButtonToBackgroundVideo].Selected)
|
||||
_VideoBackground = !_VideoBackground;
|
||||
}
|
||||
else if (mouseEvent.LB)
|
||||
@@ -184,11 +174,11 @@ namespace Vocaluxe.Screens
|
||||
|
||||
public override bool UpdateGame()
|
||||
{
|
||||
Statics[_StaticCover].Visible = !_VideoPreviewInt || !CBackgroundMusic.SongHasVideo;
|
||||
Buttons[_ButtonToBackgroundVideo].Pressed = _VideoBackground;
|
||||
Buttons[_ButtonShowVideo].Pressed = _VideoPreviewInt;
|
||||
Buttons[_ButtonRepeat].Pressed = CBackgroundMusic.RepeatSong;
|
||||
Buttons[_ButtonSing].Visible = CBackgroundMusic.CanSing && CParty.CurrentPartyModeID == -1;
|
||||
_Statics[_StaticCover].Visible = !_VideoPreviewInt || !CBackgroundMusic.SongHasVideo;
|
||||
_Buttons[_ButtonToBackgroundVideo].Pressed = _VideoBackground;
|
||||
_Buttons[_ButtonShowVideo].Pressed = _VideoPreviewInt;
|
||||
_Buttons[_ButtonRepeat].Pressed = CBackgroundMusic.RepeatSong;
|
||||
_Buttons[_ButtonSing].Visible = CBackgroundMusic.CanSing && CParty.CurrentPartyModeID == -1;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -196,31 +186,30 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (!_Active)
|
||||
return false;
|
||||
Statics[_StaticCover].Texture = CBackgroundMusic.Cover;
|
||||
_Statics[_StaticCover].Texture = CBackgroundMusic.Cover;
|
||||
if (CBackgroundMusic.VideoEnabled && _VideoPreview && CBackgroundMusic.SongHasVideo)
|
||||
CDraw.DrawTexture(Statics[_StaticCover], CBackgroundMusic.GetVideoTexture(), EAspect.Crop);
|
||||
Buttons[_ButtonPause].Visible = CBackgroundMusic.Playing;
|
||||
Buttons[_ButtonPlay].Visible = !CBackgroundMusic.Playing;
|
||||
Texts[_TextCurrentSong].Text = CBackgroundMusic.ArtistAndTitle;
|
||||
CDraw.DrawTexture(_Statics[_StaticCover], CBackgroundMusic.GetVideoTexture(), EAspect.Crop);
|
||||
_Buttons[_ButtonPause].Visible = CBackgroundMusic.Playing;
|
||||
_Buttons[_ButtonPlay].Visible = !CBackgroundMusic.Playing;
|
||||
_Texts[_TextCurrentSong].Text = CBackgroundMusic.ArtistAndTitle;
|
||||
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
private void _StartSong(int songNr, bool duet)
|
||||
private void _StartSong(int songNr)
|
||||
{
|
||||
if (songNr >= 0 && CSongs.SongsLoaded)
|
||||
{
|
||||
CGame.Reset();
|
||||
CGame.ClearSongs();
|
||||
if (songNr < 0 || !CSongs.SongsLoaded)
|
||||
return;
|
||||
CGame.Reset();
|
||||
CGame.ClearSongs();
|
||||
|
||||
EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL;
|
||||
if (CSongs.AllSongs[songNr].IsDuet)
|
||||
gm = EGameMode.TR_GAMEMODE_DUET;
|
||||
EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL;
|
||||
if (CSongs.AllSongs[songNr].IsDuet)
|
||||
gm = EGameMode.TR_GAMEMODE_DUET;
|
||||
|
||||
CGame.AddSong(songNr, gm);
|
||||
CGame.AddSong(songNr, gm);
|
||||
|
||||
CGraphics.FadeTo(EScreens.ScreenNames);
|
||||
}
|
||||
CGraphics.FadeTo(EScreens.ScreenNames);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -46,8 +46,8 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
base.LoadTheme(xmlPath);
|
||||
|
||||
_ScreenArea = Statics[_StaticBG].Rect;
|
||||
SelectSlides[_SelectSlideVolume].AddValues(new string[]
|
||||
_ScreenArea = _Statics[_StaticBG].Rect;
|
||||
_SelectSlides[_SelectSlideVolume].AddValues(new string[]
|
||||
{"0", "5", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65", "70", "75", "80", "85", "90", "95", "100"});
|
||||
}
|
||||
|
||||
@@ -65,27 +65,25 @@ namespace Vocaluxe.Screens
|
||||
_SaveConfig();
|
||||
return true;
|
||||
}
|
||||
else if (mouseEvent.Wheel > 0 && CHelper.IsInBounds(_ScreenArea, mouseEvent))
|
||||
if (mouseEvent.Wheel > 0 && CHelper.IsInBounds(_ScreenArea, mouseEvent))
|
||||
{
|
||||
if (SelectSlides[_SelectSlideVolume].Selection - mouseEvent.Wheel >= 0)
|
||||
SelectSlides[_SelectSlideVolume].Selection = SelectSlides[_SelectSlideVolume].Selection - mouseEvent.Wheel;
|
||||
else if (SelectSlides[_SelectSlideVolume].Selection - mouseEvent.Wheel < 0)
|
||||
SelectSlides[_SelectSlideVolume].Selection = 0;
|
||||
if (_SelectSlides[_SelectSlideVolume].Selection - mouseEvent.Wheel >= 0)
|
||||
_SelectSlides[_SelectSlideVolume].Selection = _SelectSlides[_SelectSlideVolume].Selection - mouseEvent.Wheel;
|
||||
else if (_SelectSlides[_SelectSlideVolume].Selection - mouseEvent.Wheel < 0)
|
||||
_SelectSlides[_SelectSlideVolume].Selection = 0;
|
||||
_SaveConfig();
|
||||
return true;
|
||||
}
|
||||
else if (mouseEvent.Wheel < 0 && CHelper.IsInBounds(_ScreenArea, mouseEvent))
|
||||
if (mouseEvent.Wheel < 0 && CHelper.IsInBounds(_ScreenArea, mouseEvent))
|
||||
{
|
||||
if (SelectSlides[_SelectSlideVolume].Selection - mouseEvent.Wheel < SelectSlides[_SelectSlideVolume].NumValues)
|
||||
SelectSlides[_SelectSlideVolume].Selection = SelectSlides[_SelectSlideVolume].Selection - mouseEvent.Wheel;
|
||||
else if (SelectSlides[_SelectSlideVolume].Selection - mouseEvent.Wheel >= SelectSlides[_SelectSlideVolume].NumValues)
|
||||
SelectSlides[_SelectSlideVolume].Selection = SelectSlides[_SelectSlideVolume].NumValues - 1;
|
||||
if (_SelectSlides[_SelectSlideVolume].Selection - mouseEvent.Wheel < _SelectSlides[_SelectSlideVolume].NumValues)
|
||||
_SelectSlides[_SelectSlideVolume].Selection = _SelectSlides[_SelectSlideVolume].Selection - mouseEvent.Wheel;
|
||||
else if (_SelectSlides[_SelectSlideVolume].Selection - mouseEvent.Wheel >= _SelectSlides[_SelectSlideVolume].NumValues)
|
||||
_SelectSlides[_SelectSlideVolume].Selection = _SelectSlides[_SelectSlideVolume].NumValues - 1;
|
||||
_SaveConfig();
|
||||
return true;
|
||||
}
|
||||
else if (mouseEvent.RB)
|
||||
return false;
|
||||
return true;
|
||||
return !mouseEvent.RB;
|
||||
}
|
||||
|
||||
public override void OnShow()
|
||||
@@ -114,20 +112,20 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
case EScreens.ScreenSong:
|
||||
if (CSongs.IsInCategory)
|
||||
CConfig.PreviewMusicVolume = SelectSlides[_SelectSlideVolume].Selection * 5;
|
||||
CConfig.PreviewMusicVolume = _SelectSlides[_SelectSlideVolume].Selection * 5;
|
||||
else
|
||||
{
|
||||
CConfig.BackgroundMusicVolume = SelectSlides[_SelectSlideVolume].Selection * 5;
|
||||
CConfig.BackgroundMusicVolume = _SelectSlides[_SelectSlideVolume].Selection * 5;
|
||||
CBackgroundMusic.ApplyVolume();
|
||||
}
|
||||
break;
|
||||
|
||||
case EScreens.ScreenSing:
|
||||
CConfig.GameMusicVolume = SelectSlides[_SelectSlideVolume].Selection * 5;
|
||||
CConfig.GameMusicVolume = _SelectSlides[_SelectSlideVolume].Selection * 5;
|
||||
break;
|
||||
|
||||
default:
|
||||
CConfig.BackgroundMusicVolume = SelectSlides[_SelectSlideVolume].Selection * 5;
|
||||
CConfig.BackgroundMusicVolume = _SelectSlides[_SelectSlideVolume].Selection * 5;
|
||||
CBackgroundMusic.ApplyVolume();
|
||||
break;
|
||||
}
|
||||
@@ -140,17 +138,17 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
case EScreens.ScreenSong:
|
||||
if (CSongs.IsInCategory)
|
||||
SelectSlides[_SelectSlideVolume].Selection = CConfig.PreviewMusicVolume / 5;
|
||||
_SelectSlides[_SelectSlideVolume].Selection = CConfig.PreviewMusicVolume / 5;
|
||||
else
|
||||
SelectSlides[_SelectSlideVolume].Selection = CConfig.BackgroundMusicVolume / 5;
|
||||
_SelectSlides[_SelectSlideVolume].Selection = CConfig.BackgroundMusicVolume / 5;
|
||||
break;
|
||||
|
||||
case EScreens.ScreenSing:
|
||||
SelectSlides[_SelectSlideVolume].Selection = CConfig.GameMusicVolume / 5;
|
||||
_SelectSlides[_SelectSlideVolume].Selection = CConfig.GameMusicVolume / 5;
|
||||
break;
|
||||
|
||||
default:
|
||||
SelectSlides[_SelectSlideVolume].Selection = CConfig.BackgroundMusicVolume / 5;
|
||||
_SelectSlides[_SelectSlideVolume].Selection = CConfig.BackgroundMusicVolume / 5;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -451,7 +451,6 @@ namespace Vocaluxe.Screens
|
||||
|
||||
//Start Text-Timer
|
||||
_TextTimer.Start();
|
||||
active = true;
|
||||
}
|
||||
}
|
||||
else if (_CreditNames[i].Y <= 360f)
|
||||
|
||||
@@ -60,34 +60,34 @@ namespace Vocaluxe.Screens
|
||||
_TextNumber = new string[_NumEntrys];
|
||||
for (int i = 0; i < _NumEntrys; i++)
|
||||
{
|
||||
_TextNumber[i] = "TextNumber" + (i + 1).ToString();
|
||||
_TextNumber[i] = "TextNumber" + (i + 1);
|
||||
texts.Add(_TextNumber[i]);
|
||||
}
|
||||
|
||||
_TextName = new string[_NumEntrys];
|
||||
for (int i = 0; i < _NumEntrys; i++)
|
||||
{
|
||||
_TextName[i] = "TextName" + (i + 1).ToString();
|
||||
_TextName[i] = "TextName" + (i + 1);
|
||||
texts.Add(_TextName[i]);
|
||||
}
|
||||
|
||||
_TextScore = new string[_NumEntrys];
|
||||
for (int i = 0; i < _NumEntrys; i++)
|
||||
{
|
||||
_TextScore[i] = "TextScore" + (i + 1).ToString();
|
||||
_TextScore[i] = "TextScore" + (i + 1);
|
||||
texts.Add(_TextScore[i]);
|
||||
}
|
||||
|
||||
_TextDate = new string[_NumEntrys];
|
||||
for (int i = 0; i < _NumEntrys; i++)
|
||||
{
|
||||
_TextDate[i] = "TextDate" + (i + 1).ToString();
|
||||
_TextDate[i] = "TextDate" + (i + 1);
|
||||
texts.Add(_TextDate[i]);
|
||||
}
|
||||
|
||||
_ParticleEffectNew = new string[_NumEntrys];
|
||||
for (int i = 0; i < _NumEntrys; i++)
|
||||
_ParticleEffectNew[i] = "ParticleEffectNew" + (i + 1).ToString();
|
||||
_ParticleEffectNew[i] = "ParticleEffectNew" + (i + 1);
|
||||
|
||||
_ThemeTexts = texts.ToArray();
|
||||
_ThemeParticleEffects = _ParticleEffectNew;
|
||||
@@ -131,7 +131,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
public override bool HandleMouse(SMouseEvent mouseEvent)
|
||||
{
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent)) {}
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent)) {}
|
||||
|
||||
if (mouseEvent.LB)
|
||||
_LeaveScreen();
|
||||
@@ -160,34 +160,34 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (_Pos + p < _Scores[_Round].Count)
|
||||
{
|
||||
Texts[_TextNumber[p]].Visible = true;
|
||||
Texts[_TextName[p]].Visible = true;
|
||||
Texts[_TextScore[p]].Visible = true;
|
||||
Texts[_TextDate[p]].Visible = true;
|
||||
_Texts[_TextNumber[p]].Visible = true;
|
||||
_Texts[_TextName[p]].Visible = true;
|
||||
_Texts[_TextScore[p]].Visible = true;
|
||||
_Texts[_TextDate[p]].Visible = true;
|
||||
|
||||
Texts[_TextNumber[p]].Text = (_Pos + p + 1).ToString();
|
||||
_Texts[_TextNumber[p]].Text = (_Pos + p + 1).ToString();
|
||||
|
||||
string name = _Scores[_Round][_Pos + p].Name;
|
||||
name += " [" + CLanguage.Translate(Enum.GetName(typeof(EGameDifficulty), _Scores[_Round][_Pos + p].Difficulty)) + "]";
|
||||
if (_IsDuet)
|
||||
name += " (P" + (_Scores[_Round][_Pos + p].LineNr + 1).ToString() + ")";
|
||||
Texts[_TextName[p]].Text = name;
|
||||
name += " (P" + (_Scores[_Round][_Pos + p].LineNr + 1) + ")";
|
||||
_Texts[_TextName[p]].Text = name;
|
||||
|
||||
Texts[_TextScore[p]].Text = _Scores[_Round][_Pos + p].Score.ToString("00000");
|
||||
Texts[_TextDate[p]].Text = _Scores[_Round][_Pos + p].Date;
|
||||
_Texts[_TextScore[p]].Text = _Scores[_Round][_Pos + p].Score.ToString("00000");
|
||||
_Texts[_TextDate[p]].Text = _Scores[_Round][_Pos + p].Date;
|
||||
|
||||
if (_IsNewEntry(_Scores[_Round][_Pos + p].ID))
|
||||
ParticleEffects[_ParticleEffectNew[p]].Visible = true;
|
||||
_ParticleEffects[_ParticleEffectNew[p]].Visible = true;
|
||||
else
|
||||
ParticleEffects[_ParticleEffectNew[p]].Visible = false;
|
||||
_ParticleEffects[_ParticleEffectNew[p]].Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Texts[_TextNumber[p]].Visible = false;
|
||||
Texts[_TextName[p]].Visible = false;
|
||||
Texts[_TextScore[p]].Visible = false;
|
||||
Texts[_TextDate[p]].Visible = false;
|
||||
ParticleEffects[_ParticleEffectNew[p]].Visible = false;
|
||||
_Texts[_TextNumber[p]].Visible = false;
|
||||
_Texts[_TextName[p]].Visible = false;
|
||||
_Texts[_TextScore[p]].Visible = false;
|
||||
_Texts[_TextDate[p]].Visible = false;
|
||||
_ParticleEffects[_ParticleEffectNew[p]].Visible = false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@@ -249,7 +249,7 @@ namespace Vocaluxe.Screens
|
||||
for (int round = 0; round < points.NumRounds; round++)
|
||||
{
|
||||
SPlayer player = points.GetPlayer(round, CGame.NumPlayer)[0];
|
||||
CDataBase.LoadScore(ref _Scores[round], player);
|
||||
CDataBase.LoadScore(out _Scores[round], player);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -262,31 +262,31 @@ namespace Vocaluxe.Screens
|
||||
if (song == null)
|
||||
return;
|
||||
|
||||
Texts[_TextSongName].Text = song.Artist + " - " + song.Title;
|
||||
_Texts[_TextSongName].Text = song.Artist + " - " + song.Title;
|
||||
if (points.NumRounds > 1)
|
||||
Texts[_TextSongName].Text += " (" + (_Round + 1) + "/" + points.NumRounds + ")";
|
||||
_Texts[_TextSongName].Text += " (" + (_Round + 1) + "/" + points.NumRounds + ")";
|
||||
|
||||
switch (CGame.GetGameMode(_Round))
|
||||
{
|
||||
case EGameMode.TR_GAMEMODE_NORMAL:
|
||||
Texts[_TextSongMode].Text = "TR_GAMEMODE_NORMAL";
|
||||
_Texts[_TextSongMode].Text = "TR_GAMEMODE_NORMAL";
|
||||
break;
|
||||
|
||||
case EGameMode.TR_GAMEMODE_MEDLEY:
|
||||
Texts[_TextSongMode].Text = "TR_GAMEMODE_MEDLEY";
|
||||
_Texts[_TextSongMode].Text = "TR_GAMEMODE_MEDLEY";
|
||||
break;
|
||||
|
||||
case EGameMode.TR_GAMEMODE_DUET:
|
||||
Texts[_TextSongMode].Text = "TR_GAMEMODE_DUET";
|
||||
_Texts[_TextSongMode].Text = "TR_GAMEMODE_DUET";
|
||||
_IsDuet = true;
|
||||
break;
|
||||
|
||||
case EGameMode.TR_GAMEMODE_SHORTSONG:
|
||||
Texts[_TextSongMode].Text = "TR_GAMEMODE_SHORTSONG";
|
||||
_Texts[_TextSongMode].Text = "TR_GAMEMODE_SHORTSONG";
|
||||
break;
|
||||
|
||||
default:
|
||||
Texts[_TextSongMode].Text = "TR_GAMEMODE_NORMAL";
|
||||
_Texts[_TextSongMode].Text = "TR_GAMEMODE_NORMAL";
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,6 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
get { return 1; }
|
||||
}
|
||||
private const float _WaitTime = 0.5f; //wait time before starting first video
|
||||
|
||||
private const string _TextStatus = "TextStatus";
|
||||
|
||||
@@ -103,10 +102,9 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
}
|
||||
|
||||
_SongLoaderThread = new Thread(CSongs.LoadSongs);
|
||||
_SongLoaderThread.Name = "SongLoader";
|
||||
_SongLoaderThread = new Thread(CSongs.LoadSongs) {Name = "SongLoader"};
|
||||
|
||||
Texts[_TextStatus].Text = CLanguage.Translate("TR_SCREENLOAD_TOTAL") + ": 0 " +
|
||||
_Texts[_TextStatus].Text = CLanguage.Translate("TR_SCREENLOAD_TOTAL") + ": 0 " +
|
||||
CLanguage.Translate("TR_SCREENLOAD_SONGS") + " (0 " +
|
||||
CLanguage.Translate("TR_SCREENLOAD_LOADED") + ")";
|
||||
|
||||
@@ -129,8 +127,8 @@ namespace Vocaluxe.Screens
|
||||
|
||||
if (CConfig.VideoBackgrounds == EOffOn.TR_CONFIG_ON)
|
||||
{
|
||||
for (int i = 0; i < _Intros.Length; i++)
|
||||
_Intros[i].PreLoad();
|
||||
foreach (CVideoPlayer videoPlayer in _Intros)
|
||||
videoPlayer.PreLoad();
|
||||
}
|
||||
|
||||
CLog.StartBenchmark(0, "Load Songs Full");
|
||||
@@ -169,8 +167,8 @@ namespace Vocaluxe.Screens
|
||||
if (CSettings.GameState == EGameState.Normal)
|
||||
CGraphics.FadeTo(EScreens.ScreenMain);
|
||||
|
||||
Texts[_TextStatus].Text =
|
||||
CLanguage.Translate("TR_SCREENLOAD_TOTAL") + ": " + CSongs.NumAllSongs.ToString() + " " +
|
||||
_Texts[_TextStatus].Text =
|
||||
CLanguage.Translate("TR_SCREENLOAD_TOTAL") + ": " + CSongs.NumAllSongs + " " +
|
||||
CLanguage.Translate("TR_SCREENLOAD_SONGS") + " (" + CSongs.NumSongsWithCoverLoaded + " " +
|
||||
CLanguage.Translate("TR_SCREENLOAD_LOADED") + ")";
|
||||
|
||||
@@ -190,12 +188,12 @@ namespace Vocaluxe.Screens
|
||||
|
||||
public override bool Draw()
|
||||
{
|
||||
DrawBG();
|
||||
_DrawBG();
|
||||
|
||||
for (int i = 0; i < _Intros.Length; i++)
|
||||
_Intros[i].Draw();
|
||||
foreach (CVideoPlayer videoPlayer in _Intros)
|
||||
videoPlayer.Draw();
|
||||
|
||||
DrawFG();
|
||||
_DrawFG();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -205,8 +203,8 @@ namespace Vocaluxe.Screens
|
||||
_Timer.Stop();
|
||||
_Timer.Reset();
|
||||
|
||||
for (int i = 0; i < _Intros.Length; i++)
|
||||
_Intros[i].Close();
|
||||
foreach (CVideoPlayer videoPlayer in _Intros)
|
||||
videoPlayer.Close();
|
||||
|
||||
CBackgroundMusic.CanSing = true;
|
||||
|
||||
|
||||
@@ -72,22 +72,22 @@ namespace Vocaluxe.Screens
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
if (Buttons[_ButtonSing].Selected)
|
||||
if (_Buttons[_ButtonSing].Selected)
|
||||
{
|
||||
CParty.SetNormalGameMode();
|
||||
CGraphics.FadeTo(EScreens.ScreenSong);
|
||||
}
|
||||
|
||||
if (Buttons[_ButtonParty].Selected)
|
||||
if (_Buttons[_ButtonParty].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenParty);
|
||||
|
||||
if (Buttons[_ButtonOptions].Selected)
|
||||
if (_Buttons[_ButtonOptions].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
|
||||
if (Buttons[_ButtonProfiles].Selected)
|
||||
if (_Buttons[_ButtonProfiles].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenProfiles);
|
||||
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
return false;
|
||||
|
||||
break;
|
||||
@@ -100,30 +100,31 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
base.HandleMouse(mouseEvent);
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
if (Buttons[_ButtonSing].Selected)
|
||||
if (_Buttons[_ButtonSing].Selected)
|
||||
{
|
||||
CParty.SetNormalGameMode();
|
||||
CGraphics.FadeTo(EScreens.ScreenSong);
|
||||
}
|
||||
|
||||
if (Buttons[_ButtonParty].Selected)
|
||||
if (_Buttons[_ButtonParty].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenParty);
|
||||
|
||||
if (Buttons[_ButtonOptions].Selected)
|
||||
if (_Buttons[_ButtonOptions].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
|
||||
if (Buttons[_ButtonProfiles].Selected)
|
||||
if (_Buttons[_ButtonProfiles].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenProfiles);
|
||||
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// ReSharper disable RedundantOverridenMember
|
||||
public override void OnShow()
|
||||
{
|
||||
base.OnShow();
|
||||
@@ -131,6 +132,7 @@ namespace Vocaluxe.Screens
|
||||
//if (Snowflakes != null)
|
||||
// Snowflakes.Resume();
|
||||
}
|
||||
// ReSharper restore RedundantOverridenMember
|
||||
|
||||
public override bool UpdateGame()
|
||||
{
|
||||
@@ -139,16 +141,18 @@ namespace Vocaluxe.Screens
|
||||
|
||||
public override bool Draw()
|
||||
{
|
||||
DrawBG();
|
||||
_DrawBG();
|
||||
|
||||
//if (Snowflakes == null)
|
||||
// Snowflakes = new CParticleEffect(300, new SColorF(1, 1, 1, 1), new SRectF(0, 0, CSettings.iRenderW, 0, 0.5f), "Snowflake", 25, EParticeType.Snow);
|
||||
|
||||
//Snowflakes.Update();
|
||||
//Snowflakes.Draw();
|
||||
DrawFG();
|
||||
_DrawFG();
|
||||
|
||||
// ReSharper disable ConditionIsAlwaysTrueOrFalse
|
||||
if (CSettings.VersionRevision != ERevision.Release)
|
||||
// ReSharper restore ConditionIsAlwaysTrueOrFalse
|
||||
{
|
||||
CFonts.SetFont("Normal");
|
||||
CFonts.Style = EStyle.Normal;
|
||||
@@ -158,6 +162,7 @@ namespace Vocaluxe.Screens
|
||||
return true;
|
||||
}
|
||||
|
||||
// ReSharper disable RedundantOverridenMember
|
||||
public override void OnClose()
|
||||
{
|
||||
base.OnClose();
|
||||
@@ -165,5 +170,6 @@ namespace Vocaluxe.Screens
|
||||
//if (Snowflakes != null)
|
||||
// Snowflakes.Pause();
|
||||
}
|
||||
// ReSharper restore RedundantOverridenMember
|
||||
}
|
||||
}
|
||||
+112
-122
@@ -115,10 +115,10 @@ namespace Vocaluxe.Screens
|
||||
_PlayerNr[i] = i;
|
||||
|
||||
for (int i = 0; i < CSettings.MaxNumPlayer; i++)
|
||||
_OriginalPlayerAvatarTextures[i] = Statics[_StaticPlayerAvatar[i]].Texture;
|
||||
_OriginalPlayerAvatarTextures[i] = _Statics[_StaticPlayerAvatar[i]].Texture;
|
||||
|
||||
for (int i = 1; i <= CSettings.MaxNumPlayer; i++)
|
||||
Equalizers["EqualizerPlayer" + i].ScreenHandles = true;
|
||||
_Equalizers["EqualizerPlayer" + i].ScreenHandles = true;
|
||||
}
|
||||
|
||||
public override bool HandleInput(SKeyEvent keyEvent)
|
||||
@@ -128,20 +128,20 @@ namespace Vocaluxe.Screens
|
||||
case Keys.Add:
|
||||
if (CConfig.NumPlayer + 1 <= CSettings.MaxNumPlayer)
|
||||
{
|
||||
SelectSlides[_SelectSlidePlayerNumber].Selection = CConfig.NumPlayer;
|
||||
_SelectSlides[_SelectSlidePlayerNumber].Selection = CConfig.NumPlayer;
|
||||
_UpdatePlayerNumber();
|
||||
//Update Tiles-List
|
||||
NameSelections[_NameSelection].UpdateList();
|
||||
_NameSelections[_NameSelection].UpdateList();
|
||||
}
|
||||
break;
|
||||
|
||||
case Keys.Subtract:
|
||||
if (CConfig.NumPlayer - 1 > 0)
|
||||
{
|
||||
SelectSlides[_SelectSlidePlayerNumber].Selection = CConfig.NumPlayer - 2;
|
||||
_SelectSlides[_SelectSlidePlayerNumber].Selection = CConfig.NumPlayer - 2;
|
||||
_UpdatePlayerNumber();
|
||||
//Update Tiles-List
|
||||
NameSelections[_NameSelection].UpdateList();
|
||||
_NameSelections[_NameSelection].UpdateList();
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -157,7 +157,7 @@ namespace Vocaluxe.Screens
|
||||
_SelectingKeyboardPlayerNr++;
|
||||
else
|
||||
_SelectingKeyboardPlayerNr = 1;
|
||||
NameSelections[_NameSelection].KeyboardSelection(true, _SelectingKeyboardPlayerNr);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(true, _SelectingKeyboardPlayerNr);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -165,14 +165,14 @@ namespace Vocaluxe.Screens
|
||||
if (_SelectingKeyboardActive)
|
||||
{
|
||||
//Handle left/right/up/down
|
||||
NameSelections[_NameSelection].HandleInput(keyEvent);
|
||||
_NameSelections[_NameSelection].HandleInput(keyEvent);
|
||||
switch (keyEvent.Key)
|
||||
{
|
||||
case Keys.Enter:
|
||||
//Check, if a player is selected
|
||||
if (NameSelections[_NameSelection].Selection > -1)
|
||||
if (_NameSelections[_NameSelection].Selection > -1)
|
||||
{
|
||||
_SelectedPlayerNr = NameSelections[_NameSelection].Selection;
|
||||
_SelectedPlayerNr = _NameSelections[_NameSelection].Selection;
|
||||
//Update Game-infos with new player
|
||||
CGame.Player[_SelectingKeyboardPlayerNr - 1].Name = CProfiles.Profiles[_SelectedPlayerNr].PlayerName;
|
||||
CGame.Player[_SelectingKeyboardPlayerNr - 1].Difficulty = CProfiles.Profiles[_SelectedPlayerNr].Difficulty;
|
||||
@@ -181,13 +181,13 @@ namespace Vocaluxe.Screens
|
||||
CConfig.Players[_SelectingKeyboardPlayerNr - 1] = CProfiles.Profiles[_SelectedPlayerNr].ProfileFile;
|
||||
CConfig.SaveConfig();
|
||||
//Update texture and name
|
||||
Statics[_StaticPlayerAvatar[_SelectingKeyboardPlayerNr - 1]].Texture = CProfiles.Profiles[_SelectedPlayerNr].Avatar.Texture;
|
||||
Texts[_TextPlayer[_SelectingKeyboardPlayerNr - 1]].Text = CProfiles.Profiles[_SelectedPlayerNr].PlayerName;
|
||||
_Statics[_StaticPlayerAvatar[_SelectingKeyboardPlayerNr - 1]].Texture = CProfiles.Profiles[_SelectedPlayerNr].Avatar.Texture;
|
||||
_Texts[_TextPlayer[_SelectingKeyboardPlayerNr - 1]].Text = CProfiles.Profiles[_SelectedPlayerNr].PlayerName;
|
||||
//Update profile-warning
|
||||
_CheckPlayers();
|
||||
//Update Tiles-List
|
||||
NameSelections[_NameSelection].UpdateList();
|
||||
SetInteractionToButton(Buttons[_ButtonStart]);
|
||||
_NameSelections[_NameSelection].UpdateList();
|
||||
_SetInteractionToButton(_Buttons[_ButtonStart]);
|
||||
}
|
||||
//Started selecting with 'P'
|
||||
if (_SelectingKeyboardUnendless)
|
||||
@@ -197,12 +197,12 @@ namespace Vocaluxe.Screens
|
||||
//Reset all values
|
||||
_SelectingKeyboardPlayerNr = 0;
|
||||
_SelectingKeyboardActive = false;
|
||||
NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
}
|
||||
else
|
||||
{
|
||||
_SelectingKeyboardPlayerNr++;
|
||||
NameSelections[_NameSelection].KeyboardSelection(true, _SelectingKeyboardPlayerNr);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(true, _SelectingKeyboardPlayerNr);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -210,7 +210,7 @@ namespace Vocaluxe.Screens
|
||||
//Reset all values
|
||||
_SelectingKeyboardPlayerNr = 0;
|
||||
_SelectingKeyboardActive = false;
|
||||
NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -221,12 +221,12 @@ namespace Vocaluxe.Screens
|
||||
//Reset all values
|
||||
_SelectingKeyboardPlayerNr = 0;
|
||||
_SelectingKeyboardActive = false;
|
||||
NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
}
|
||||
else
|
||||
{
|
||||
_SelectingKeyboardPlayerNr = 1;
|
||||
NameSelections[_NameSelection].KeyboardSelection(true, 1);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(true, 1);
|
||||
}
|
||||
_SelectingKeyboardUnendless = false;
|
||||
break;
|
||||
@@ -237,12 +237,12 @@ namespace Vocaluxe.Screens
|
||||
//Reset all values
|
||||
_SelectingKeyboardPlayerNr = 0;
|
||||
_SelectingKeyboardActive = false;
|
||||
NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
}
|
||||
else
|
||||
{
|
||||
_SelectingKeyboardPlayerNr = 2;
|
||||
NameSelections[_NameSelection].KeyboardSelection(true, 2);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(true, 2);
|
||||
}
|
||||
_SelectingKeyboardUnendless = false;
|
||||
break;
|
||||
@@ -253,12 +253,12 @@ namespace Vocaluxe.Screens
|
||||
//Reset all values
|
||||
_SelectingKeyboardPlayerNr = 0;
|
||||
_SelectingKeyboardActive = false;
|
||||
NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
}
|
||||
else
|
||||
{
|
||||
_SelectingKeyboardPlayerNr = 3;
|
||||
NameSelections[_NameSelection].KeyboardSelection(true, 3);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(true, 3);
|
||||
}
|
||||
_SelectingKeyboardUnendless = false;
|
||||
break;
|
||||
@@ -269,12 +269,12 @@ namespace Vocaluxe.Screens
|
||||
//Reset all values
|
||||
_SelectingKeyboardPlayerNr = 0;
|
||||
_SelectingKeyboardActive = false;
|
||||
NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
}
|
||||
else
|
||||
{
|
||||
_SelectingKeyboardPlayerNr = 4;
|
||||
NameSelections[_NameSelection].KeyboardSelection(true, 4);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(true, 4);
|
||||
}
|
||||
_SelectingKeyboardUnendless = false;
|
||||
break;
|
||||
@@ -285,12 +285,12 @@ namespace Vocaluxe.Screens
|
||||
//Reset all values
|
||||
_SelectingKeyboardPlayerNr = 0;
|
||||
_SelectingKeyboardActive = false;
|
||||
NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
}
|
||||
else
|
||||
{
|
||||
_SelectingKeyboardPlayerNr = 5;
|
||||
NameSelections[_NameSelection].KeyboardSelection(true, 5);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(true, 5);
|
||||
}
|
||||
_SelectingKeyboardUnendless = false;
|
||||
break;
|
||||
@@ -301,12 +301,12 @@ namespace Vocaluxe.Screens
|
||||
//Reset all values
|
||||
_SelectingKeyboardPlayerNr = 0;
|
||||
_SelectingKeyboardActive = false;
|
||||
NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
}
|
||||
else
|
||||
{
|
||||
_SelectingKeyboardPlayerNr = 6;
|
||||
NameSelections[_NameSelection].KeyboardSelection(true, 6);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(true, 6);
|
||||
}
|
||||
_SelectingKeyboardUnendless = false;
|
||||
break;
|
||||
@@ -316,7 +316,7 @@ namespace Vocaluxe.Screens
|
||||
_SelectingKeyboardPlayerNr = 0;
|
||||
_SelectingKeyboardActive = false;
|
||||
_SelectingKeyboardUnendless = false;
|
||||
NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
break;
|
||||
|
||||
case Keys.Delete:
|
||||
@@ -328,31 +328,31 @@ namespace Vocaluxe.Screens
|
||||
CConfig.Players[_SelectingKeyboardPlayerNr - 1] = String.Empty;
|
||||
CConfig.SaveConfig();
|
||||
//Update texture and name
|
||||
Statics[_StaticPlayerAvatar[_SelectingKeyboardPlayerNr - 1]].Texture = _OriginalPlayerAvatarTextures[_SelectingKeyboardPlayerNr - 1];
|
||||
Texts[_TextPlayer[_SelectingKeyboardPlayerNr - 1]].Text = CLanguage.Translate("TR_SCREENNAMES_PLAYER") + " " + _SelectingKeyboardPlayerNr.ToString();
|
||||
_Statics[_StaticPlayerAvatar[_SelectingKeyboardPlayerNr - 1]].Texture = _OriginalPlayerAvatarTextures[_SelectingKeyboardPlayerNr - 1];
|
||||
_Texts[_TextPlayer[_SelectingKeyboardPlayerNr - 1]].Text = CLanguage.Translate("TR_SCREENNAMES_PLAYER") + " " + _SelectingKeyboardPlayerNr;
|
||||
//Update profile-warning
|
||||
_CheckPlayers();
|
||||
//Reset all values
|
||||
_SelectingKeyboardPlayerNr = 0;
|
||||
_SelectingKeyboardActive = false;
|
||||
NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
//Update Tiles-List
|
||||
NameSelections[_NameSelection].UpdateList();
|
||||
_NameSelections[_NameSelection].UpdateList();
|
||||
break;
|
||||
|
||||
case Keys.F10:
|
||||
if (CGame.GetNumSongs() == 1 && CGame.GetSong(1).IsDuet)
|
||||
{
|
||||
if (SelectSlides[_SelectSlideDuetPlayer[_SelectingKeyboardPlayerNr - 1]].Selection == 0)
|
||||
SelectSlides[_SelectSlideDuetPlayer[_SelectingKeyboardPlayerNr - 1]].Selection = 1;
|
||||
if (_SelectSlides[_SelectSlideDuetPlayer[_SelectingKeyboardPlayerNr - 1]].Selection == 0)
|
||||
_SelectSlides[_SelectSlideDuetPlayer[_SelectingKeyboardPlayerNr - 1]].Selection = 1;
|
||||
else
|
||||
SelectSlides[_SelectSlideDuetPlayer[_SelectingKeyboardPlayerNr - 1]].Selection = 0;
|
||||
_SelectSlides[_SelectSlideDuetPlayer[_SelectingKeyboardPlayerNr - 1]].Selection = 0;
|
||||
//Reset all values
|
||||
_SelectingKeyboardPlayerNr = 0;
|
||||
_SelectingKeyboardActive = false;
|
||||
_SelectingKeyboardUnendless = false;
|
||||
NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
SetInteractionToButton(Buttons[_ButtonStart]);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(false, -1);
|
||||
_SetInteractionToButton(_Buttons[_ButtonStart]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -371,13 +371,11 @@ namespace Vocaluxe.Screens
|
||||
|
||||
case Keys.Enter:
|
||||
|
||||
if (!processed && Buttons[_ButtonBack].Selected)
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
{
|
||||
processed = true;
|
||||
CGraphics.FadeTo(EScreens.ScreenSong);
|
||||
}
|
||||
|
||||
if (!processed /* && Buttons[ButtonStart].Selected */)
|
||||
}else
|
||||
{
|
||||
processed = true;
|
||||
_StartSong();
|
||||
@@ -422,7 +420,7 @@ namespace Vocaluxe.Screens
|
||||
if (_SelectingKeyboardPlayerNr > 0 && _SelectingKeyboardPlayerNr <= CConfig.NumPlayer)
|
||||
{
|
||||
_SelectingKeyboardActive = true;
|
||||
NameSelections[_NameSelection].KeyboardSelection(true, _SelectingKeyboardPlayerNr);
|
||||
_NameSelections[_NameSelection].KeyboardSelection(true, _SelectingKeyboardPlayerNr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -440,17 +438,17 @@ namespace Vocaluxe.Screens
|
||||
_OldMouseX = mouseEvent.X;
|
||||
_OldMouseY = mouseEvent.Y;
|
||||
//Check if mouse if over tile
|
||||
if (NameSelections[_NameSelection].IsOverTile(mouseEvent))
|
||||
if (_NameSelections[_NameSelection].IsOverTile(mouseEvent))
|
||||
{
|
||||
//Get player-number of tile
|
||||
_SelectedPlayerNr = NameSelections[_NameSelection].TilePlayerNr(mouseEvent);
|
||||
_SelectedPlayerNr = _NameSelections[_NameSelection].TilePlayerNr(mouseEvent);
|
||||
if (_SelectedPlayerNr != -1)
|
||||
{
|
||||
//Activate mouse-selecting
|
||||
_SelectingMouseActive = true;
|
||||
|
||||
//Update of Drag/Drop-Texture
|
||||
CStatic selectedPlayer = NameSelections[_NameSelection].TilePlayerAvatar(mouseEvent);
|
||||
CStatic selectedPlayer = _NameSelections[_NameSelection].TilePlayerAvatar(mouseEvent);
|
||||
_ChooseAvatarStatic.Visible = true;
|
||||
_ChooseAvatarStatic.Rect = selectedPlayer.Rect;
|
||||
_ChooseAvatarStatic.Rect.Z = CSettings.ZNear;
|
||||
@@ -479,10 +477,10 @@ namespace Vocaluxe.Screens
|
||||
for (int i = 0; i < _StaticPlayer.Length; i++)
|
||||
{
|
||||
//Check first, if area is "ReplacedStr:::1:::"
|
||||
if (Statics[_StaticPlayer[i]].Visible)
|
||||
if (_Statics[_StaticPlayer[i]].Visible)
|
||||
{
|
||||
//Check if Mouse is in area
|
||||
if (CHelper.IsInBounds(Statics[_StaticPlayer[i]].Rect, mouseEvent))
|
||||
if (CHelper.IsInBounds(_Statics[_StaticPlayer[i]].Rect, mouseEvent))
|
||||
{
|
||||
//Update Game-infos with new player
|
||||
CGame.Player[i].Name = CProfiles.Profiles[_SelectedPlayerNr].PlayerName;
|
||||
@@ -492,12 +490,12 @@ namespace Vocaluxe.Screens
|
||||
CConfig.Players[i] = CProfiles.Profiles[_SelectedPlayerNr].ProfileFile;
|
||||
CConfig.SaveConfig();
|
||||
//Update texture and name
|
||||
Statics[_StaticPlayerAvatar[i]].Texture = _ChooseAvatarStatic.Texture;
|
||||
Texts[_TextPlayer[i]].Text = CProfiles.Profiles[_SelectedPlayerNr].PlayerName;
|
||||
_Statics[_StaticPlayerAvatar[i]].Texture = _ChooseAvatarStatic.Texture;
|
||||
_Texts[_TextPlayer[i]].Text = CProfiles.Profiles[_SelectedPlayerNr].PlayerName;
|
||||
//Update profile-warning
|
||||
_CheckPlayers();
|
||||
//Update Tiles-List
|
||||
NameSelections[_NameSelection].UpdateList();
|
||||
_NameSelections[_NameSelection].UpdateList();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -508,28 +506,20 @@ namespace Vocaluxe.Screens
|
||||
_ChooseAvatarStatic.Visible = false;
|
||||
}
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent)) {}
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent)) {}
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
bool processed = false;
|
||||
|
||||
if (!processed && Buttons[_ButtonBack].Selected)
|
||||
if (_Buttons[_ButtonBack].Selected)
|
||||
{
|
||||
processed = true;
|
||||
CGraphics.FadeTo(EScreens.ScreenSong);
|
||||
}
|
||||
|
||||
if (!processed && Buttons[_ButtonStart].Selected)
|
||||
}else if (_Buttons[_ButtonStart].Selected)
|
||||
{
|
||||
processed = true;
|
||||
_StartSong();
|
||||
}
|
||||
|
||||
if (!processed)
|
||||
}else
|
||||
_UpdatePlayerNumber();
|
||||
//Update Tiles-List
|
||||
NameSelections[_NameSelection].UpdateList();
|
||||
_NameSelections[_NameSelection].UpdateList();
|
||||
}
|
||||
|
||||
if (mouseEvent.RB)
|
||||
@@ -538,7 +528,7 @@ namespace Vocaluxe.Screens
|
||||
//Remove profile-selection
|
||||
for (int i = 0; i < CConfig.NumPlayer; i++)
|
||||
{
|
||||
if (CHelper.IsInBounds(Statics[_StaticPlayer[i]].Rect, mouseEvent))
|
||||
if (CHelper.IsInBounds(_Statics[_StaticPlayer[i]].Rect, mouseEvent))
|
||||
{
|
||||
CGame.Player[i].ProfileID = -1;
|
||||
CGame.Player[i].Name = String.Empty;
|
||||
@@ -547,12 +537,12 @@ namespace Vocaluxe.Screens
|
||||
CConfig.Players[i] = String.Empty;
|
||||
CConfig.SaveConfig();
|
||||
//Update texture and name
|
||||
Statics[_StaticPlayerAvatar[i]].Texture = _OriginalPlayerAvatarTextures[i];
|
||||
Texts[_TextPlayer[i]].Text = CLanguage.Translate("TR_SCREENNAMES_PLAYER") + " " + (i + 1).ToString();
|
||||
_Statics[_StaticPlayerAvatar[i]].Texture = _OriginalPlayerAvatarTextures[i];
|
||||
_Texts[_TextPlayer[i]].Text = CLanguage.Translate("TR_SCREENNAMES_PLAYER") + " " + (i + 1);
|
||||
//Update profile-warning
|
||||
_CheckPlayers();
|
||||
//Update Tiles-List
|
||||
NameSelections[_NameSelection].UpdateList();
|
||||
_NameSelections[_NameSelection].UpdateList();
|
||||
exit = false;
|
||||
}
|
||||
}
|
||||
@@ -563,10 +553,10 @@ namespace Vocaluxe.Screens
|
||||
//Check mouse-wheel for scrolling
|
||||
if (mouseEvent.Wheel != 0)
|
||||
{
|
||||
if (CHelper.IsInBounds(NameSelections[_NameSelection].Rect, mouseEvent))
|
||||
if (CHelper.IsInBounds(_NameSelections[_NameSelection].Rect, mouseEvent))
|
||||
{
|
||||
int offset = NameSelections[_NameSelection].Offset + mouseEvent.Wheel;
|
||||
NameSelections[_NameSelection].UpdateList(offset);
|
||||
int offset = _NameSelections[_NameSelection].Offset + mouseEvent.Wheel;
|
||||
_NameSelections[_NameSelection].UpdateList(offset);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@@ -577,7 +567,7 @@ namespace Vocaluxe.Screens
|
||||
for (int i = 1; i <= CGame.NumPlayer; i++)
|
||||
{
|
||||
CSound.AnalyzeBuffer(i - 1);
|
||||
Equalizers["EqualizerPlayer" + i].Update(CSound.ToneWeigth(i - 1));
|
||||
_Equalizers["EqualizerPlayer" + i].Update(CSound.ToneWeigth(i - 1));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -587,7 +577,7 @@ namespace Vocaluxe.Screens
|
||||
base.OnShow();
|
||||
CSound.RecordStart();
|
||||
|
||||
NameSelections[_NameSelection].Init();
|
||||
_NameSelections[_NameSelection].Init();
|
||||
|
||||
_UpdateSlides();
|
||||
_UpdatePlayerNumber();
|
||||
@@ -601,29 +591,29 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (CGame.Player[i].ProfileID > -1 && CProfiles.NumProfiles > CGame.Player[i].ProfileID)
|
||||
{
|
||||
Statics[_StaticPlayerAvatar[i]].Texture = CProfiles.Profiles[CGame.Player[i].ProfileID].Avatar.Texture;
|
||||
Texts[_TextPlayer[i]].Text = CProfiles.Profiles[CGame.Player[i].ProfileID].PlayerName;
|
||||
_Statics[_StaticPlayerAvatar[i]].Texture = CProfiles.Profiles[CGame.Player[i].ProfileID].Avatar.Texture;
|
||||
_Texts[_TextPlayer[i]].Text = CProfiles.Profiles[CGame.Player[i].ProfileID].PlayerName;
|
||||
}
|
||||
}
|
||||
if (CGame.GetNumSongs() == 1 && CGame.GetSong(1).IsDuet)
|
||||
{
|
||||
SelectSlides[_SelectSlideDuetPlayer[i]].Clear();
|
||||
_SelectSlides[_SelectSlideDuetPlayer[i]].Clear();
|
||||
if (i + 1 <= CGame.NumPlayer)
|
||||
SelectSlides[_SelectSlideDuetPlayer[i]].Visible = true;
|
||||
_SelectSlides[_SelectSlideDuetPlayer[i]].Visible = true;
|
||||
else
|
||||
SelectSlides[_SelectSlideDuetPlayer[i]].Visible = false;
|
||||
SelectSlides[_SelectSlideDuetPlayer[i]].AddValue(CGame.GetSong(1).DuetPart1);
|
||||
SelectSlides[_SelectSlideDuetPlayer[i]].AddValue(CGame.GetSong(1).DuetPart2);
|
||||
_SelectSlides[_SelectSlideDuetPlayer[i]].Visible = false;
|
||||
_SelectSlides[_SelectSlideDuetPlayer[i]].AddValue(CGame.GetSong(1).DuetPart1);
|
||||
_SelectSlides[_SelectSlideDuetPlayer[i]].AddValue(CGame.GetSong(1).DuetPart2);
|
||||
if ((i + 1) % 2 == 0)
|
||||
SelectSlides[_SelectSlideDuetPlayer[i]].Selection = 1;
|
||||
_SelectSlides[_SelectSlideDuetPlayer[i]].Selection = 1;
|
||||
else
|
||||
SelectSlides[_SelectSlideDuetPlayer[i]].Selection = 0;
|
||||
_SelectSlides[_SelectSlideDuetPlayer[i]].Selection = 0;
|
||||
}
|
||||
else
|
||||
SelectSlides[_SelectSlideDuetPlayer[i]].Visible = false;
|
||||
_SelectSlides[_SelectSlideDuetPlayer[i]].Visible = false;
|
||||
}
|
||||
|
||||
SetInteractionToButton(Buttons[_ButtonStart]);
|
||||
_SetInteractionToButton(_Buttons[_ButtonStart]);
|
||||
}
|
||||
|
||||
public override void OnClose()
|
||||
@@ -639,7 +629,7 @@ namespace Vocaluxe.Screens
|
||||
if (_ChooseAvatarStatic.Visible)
|
||||
_ChooseAvatarStatic.Draw();
|
||||
for (int i = 1; i <= CGame.NumPlayer; i++)
|
||||
Equalizers["EqualizerPlayer" + i].Draw();
|
||||
_Equalizers["EqualizerPlayer" + i].Draw();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -649,7 +639,7 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (CGame.Player[i].ProfileID < 0)
|
||||
{
|
||||
CGame.Player[i].Name = "Player " + (i + 1).ToString();
|
||||
CGame.Player[i].Name = "Player " + (i + 1);
|
||||
CGame.Player[i].Difficulty = EGameDifficulty.TR_CONFIG_EASY;
|
||||
CGame.Player[i].ProfileID = -1;
|
||||
}
|
||||
@@ -660,7 +650,7 @@ namespace Vocaluxe.Screens
|
||||
CGame.Player[i].Name = "";
|
||||
}
|
||||
if (CGame.GetNumSongs() == 1 && CGame.GetSong(1).IsDuet)
|
||||
CGame.Player[i].LineNr = SelectSlides[_SelectSlideDuetPlayer[i]].Selection;
|
||||
CGame.Player[i].LineNr = _SelectSlides[_SelectSlideDuetPlayer[i]].Selection;
|
||||
}
|
||||
|
||||
CGraphics.FadeTo(EScreens.ScreenSing);
|
||||
@@ -668,36 +658,36 @@ namespace Vocaluxe.Screens
|
||||
|
||||
private void _UpdateSlides()
|
||||
{
|
||||
SelectSlides[_SelectSlidePlayerNumber].Clear();
|
||||
_SelectSlides[_SelectSlidePlayerNumber].Clear();
|
||||
for (int i = 1; i <= CSettings.MaxNumPlayer; i++)
|
||||
SelectSlides[_SelectSlidePlayerNumber].AddValue(CLanguage.Translate("TR_SCREENNAMES_" + i + "PLAYER"));
|
||||
SelectSlides[_SelectSlidePlayerNumber].Selection = CConfig.NumPlayer - 1;
|
||||
_SelectSlides[_SelectSlidePlayerNumber].AddValue(CLanguage.Translate("TR_SCREENNAMES_" + i + "PLAYER"));
|
||||
_SelectSlides[_SelectSlidePlayerNumber].Selection = CConfig.NumPlayer - 1;
|
||||
}
|
||||
|
||||
private void _UpdatePlayerNumber()
|
||||
{
|
||||
CConfig.NumPlayer = SelectSlides[_SelectSlidePlayerNumber].Selection + 1;
|
||||
CGame.NumPlayer = SelectSlides[_SelectSlidePlayerNumber].Selection + 1;
|
||||
CConfig.NumPlayer = _SelectSlides[_SelectSlidePlayerNumber].Selection + 1;
|
||||
CGame.NumPlayer = _SelectSlides[_SelectSlidePlayerNumber].Selection + 1;
|
||||
for (int i = 1; i <= CSettings.MaxNumPlayer; i++)
|
||||
{
|
||||
if (i <= CGame.NumPlayer)
|
||||
{
|
||||
Statics["StaticPlayer" + i].Visible = true;
|
||||
Statics["StaticPlayerAvatar" + i].Visible = true;
|
||||
Texts["TextPlayer" + i].Visible = true;
|
||||
if (Texts["TextPlayer" + i].Text.Length == 0)
|
||||
Texts["TextPlayer" + i].Text = CLanguage.Translate("TR_SCREENNAMES_PLAYER") + " " + i.ToString();
|
||||
Equalizers["EqualizerPlayer" + i].Visible = true;
|
||||
_Statics["StaticPlayer" + i].Visible = true;
|
||||
_Statics["StaticPlayerAvatar" + i].Visible = true;
|
||||
_Texts["TextPlayer" + i].Visible = true;
|
||||
if (_Texts["TextPlayer" + i].Text.Length == 0)
|
||||
_Texts["TextPlayer" + i].Text = CLanguage.Translate("TR_SCREENNAMES_PLAYER") + " " + i;
|
||||
_Equalizers["EqualizerPlayer" + i].Visible = true;
|
||||
if (CGame.GetNumSongs() == 1 && CGame.GetSong(1).IsDuet)
|
||||
SelectSlides["SelectSlideDuetPlayer" + i].Visible = true;
|
||||
_SelectSlides["SelectSlideDuetPlayer" + i].Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Statics["StaticPlayer" + i].Visible = false;
|
||||
Statics["StaticPlayerAvatar" + i].Visible = false;
|
||||
Texts["TextPlayer" + i].Visible = false;
|
||||
Equalizers["EqualizerPlayer" + i].Visible = false;
|
||||
SelectSlides["SelectSlideDuetPlayer" + i].Visible = false;
|
||||
_Statics["StaticPlayer" + i].Visible = false;
|
||||
_Statics["StaticPlayerAvatar" + i].Visible = false;
|
||||
_Texts["TextPlayer" + i].Visible = false;
|
||||
_Equalizers["EqualizerPlayer" + i].Visible = false;
|
||||
_SelectSlides["SelectSlideDuetPlayer" + i].Visible = false;
|
||||
}
|
||||
}
|
||||
CConfig.SaveConfig();
|
||||
@@ -715,8 +705,8 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
if (playerWithoutMicro.Count > 0)
|
||||
{
|
||||
Statics[_StaticWarningMics].Visible = true;
|
||||
Texts[_TextWarningMics].Visible = true;
|
||||
_Statics[_StaticWarningMics].Visible = true;
|
||||
_Texts[_TextWarningMics].Visible = true;
|
||||
|
||||
if (playerWithoutMicro.Count > 1)
|
||||
{
|
||||
@@ -726,20 +716,20 @@ namespace Vocaluxe.Screens
|
||||
if (playerWithoutMicro.Count - 1 == i)
|
||||
playerNums += playerWithoutMicro[i].ToString();
|
||||
else if (playerWithoutMicro.Count - 2 == i)
|
||||
playerNums += playerWithoutMicro[i].ToString() + " " + CLanguage.Translate("TR_GENERAL_AND") + " ";
|
||||
playerNums += playerWithoutMicro[i] + " " + CLanguage.Translate("TR_GENERAL_AND") + " ";
|
||||
else
|
||||
playerNums += playerWithoutMicro[i].ToString() + ", ";
|
||||
playerNums += playerWithoutMicro[i] + ", ";
|
||||
}
|
||||
|
||||
Texts[_TextWarningMics].Text = CLanguage.Translate("TR_SCREENNAMES_WARNING_MICS_PL").Replace("%v", playerNums);
|
||||
_Texts[_TextWarningMics].Text = CLanguage.Translate("TR_SCREENNAMES_WARNING_MICS_PL").Replace("%v", playerNums);
|
||||
}
|
||||
else
|
||||
Texts[_TextWarningMics].Text = CLanguage.Translate("TR_SCREENNAMES_WARNING_MICS_SG").Replace("%v", playerWithoutMicro[0].ToString());
|
||||
_Texts[_TextWarningMics].Text = CLanguage.Translate("TR_SCREENNAMES_WARNING_MICS_SG").Replace("%v", playerWithoutMicro[0].ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
Statics[_StaticWarningMics].Visible = false;
|
||||
Texts[_TextWarningMics].Visible = false;
|
||||
_Statics[_StaticWarningMics].Visible = false;
|
||||
_Texts[_TextWarningMics].Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -754,8 +744,8 @@ namespace Vocaluxe.Screens
|
||||
|
||||
if (playerWithoutProfile.Count > 0)
|
||||
{
|
||||
Statics[_StaticWarningProfiles].Visible = true;
|
||||
Texts[_TextWarningProfiles].Visible = true;
|
||||
_Statics[_StaticWarningProfiles].Visible = true;
|
||||
_Texts[_TextWarningProfiles].Visible = true;
|
||||
|
||||
if (playerWithoutProfile.Count > 1)
|
||||
{
|
||||
@@ -765,20 +755,20 @@ namespace Vocaluxe.Screens
|
||||
if (playerWithoutProfile.Count - 1 == i)
|
||||
playerNums += playerWithoutProfile[i].ToString();
|
||||
else if (playerWithoutProfile.Count - 2 == i)
|
||||
playerNums += playerWithoutProfile[i].ToString() + " " + CLanguage.Translate("TR_GENERAL_AND") + " ";
|
||||
playerNums += playerWithoutProfile[i] + " " + CLanguage.Translate("TR_GENERAL_AND") + " ";
|
||||
else
|
||||
playerNums += playerWithoutProfile[i].ToString() + ", ";
|
||||
playerNums += playerWithoutProfile[i] + ", ";
|
||||
}
|
||||
|
||||
Texts[_TextWarningProfiles].Text = CLanguage.Translate("TR_SCREENNAMES_WARNING_PROFILES_PL").Replace("%v", playerNums);
|
||||
_Texts[_TextWarningProfiles].Text = CLanguage.Translate("TR_SCREENNAMES_WARNING_PROFILES_PL").Replace("%v", playerNums);
|
||||
}
|
||||
else
|
||||
Texts[_TextWarningProfiles].Text = CLanguage.Translate("TR_SCREENNAMES_WARNING_PROFILES_SG").Replace("%v", playerWithoutProfile[0].ToString());
|
||||
_Texts[_TextWarningProfiles].Text = CLanguage.Translate("TR_SCREENNAMES_WARNING_PROFILES_SG").Replace("%v", playerWithoutProfile[0].ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
Statics[_StaticWarningProfiles].Visible = false;
|
||||
Texts[_TextWarningProfiles].Visible = false;
|
||||
_Statics[_StaticWarningProfiles].Visible = false;
|
||||
_Texts[_TextWarningProfiles].Visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,22 +65,22 @@ namespace Vocaluxe.Screens
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
if (Buttons[_ButtonOptionsGame].Selected)
|
||||
if (_Buttons[_ButtonOptionsGame].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptionsGame);
|
||||
|
||||
if (Buttons[_ButtonOptionsSound].Selected)
|
||||
if (_Buttons[_ButtonOptionsSound].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptionsSound);
|
||||
|
||||
if (Buttons[_ButtonOptionsRecord].Selected)
|
||||
if (_Buttons[_ButtonOptionsRecord].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptionsRecord);
|
||||
|
||||
if (Buttons[_ButtonOptionsVideo].Selected)
|
||||
if (_Buttons[_ButtonOptionsVideo].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptionsVideo);
|
||||
|
||||
if (Buttons[_ButtonOptionsLyrics].Selected)
|
||||
if (_Buttons[_ButtonOptionsLyrics].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptionsLyrics);
|
||||
|
||||
if (Buttons[_ButtonOptionsTheme].Selected)
|
||||
if (_Buttons[_ButtonOptionsTheme].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptionsTheme);
|
||||
|
||||
break;
|
||||
@@ -93,24 +93,24 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
base.HandleMouse(mouseEvent);
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
if (Buttons[_ButtonOptionsGame].Selected)
|
||||
if (_Buttons[_ButtonOptionsGame].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptionsGame);
|
||||
|
||||
if (Buttons[_ButtonOptionsSound].Selected)
|
||||
if (_Buttons[_ButtonOptionsSound].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptionsSound);
|
||||
|
||||
if (Buttons[_ButtonOptionsRecord].Selected)
|
||||
if (_Buttons[_ButtonOptionsRecord].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptionsRecord);
|
||||
|
||||
if (Buttons[_ButtonOptionsVideo].Selected)
|
||||
if (_Buttons[_ButtonOptionsVideo].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptionsVideo);
|
||||
|
||||
if (Buttons[_ButtonOptionsLyrics].Selected)
|
||||
if (_Buttons[_ButtonOptionsLyrics].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptionsLyrics);
|
||||
|
||||
if (Buttons[_ButtonOptionsTheme].Selected)
|
||||
if (_Buttons[_ButtonOptionsTheme].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptionsTheme);
|
||||
}
|
||||
|
||||
|
||||
@@ -52,14 +52,14 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
base.LoadTheme(xmlPath);
|
||||
|
||||
SelectSlides[_SelectSlideLanguage].AddValues(CLanguage.GetLanguageNames());
|
||||
SelectSlides[_SelectSlideLanguage].Selection = CLanguage.LanguageId;
|
||||
_SelectSlides[_SelectSlideLanguage].AddValues(CLanguage.GetLanguageNames());
|
||||
_SelectSlides[_SelectSlideLanguage].Selection = CLanguage.LanguageId;
|
||||
|
||||
SelectSlides[_SelectSlideDebugLevel].SetValues<EDebugLevel>((int)CConfig.DebugLevel);
|
||||
SelectSlides[_SelectSlideSongMenu].SetValues<ESongMenu>((int)CConfig.SongMenu);
|
||||
SelectSlides[_SelectSlideSongSorting].SetValues<ESongSorting>((int)CConfig.SongSorting);
|
||||
SelectSlides[_SelectSlideTabs].SetValues<EOffOn>((int)CConfig.Tabs);
|
||||
SelectSlides[_SelectSlideTimerMode].SetValues<ETimerMode>((int)CConfig.TimerMode);
|
||||
_SelectSlides[_SelectSlideDebugLevel].SetValues<EDebugLevel>((int)CConfig.DebugLevel);
|
||||
_SelectSlides[_SelectSlideSongMenu].SetValues<ESongMenu>((int)CConfig.SongMenu);
|
||||
_SelectSlides[_SelectSlideSongSorting].SetValues<ESongSorting>((int)CConfig.SongSorting);
|
||||
_SelectSlides[_SelectSlideTabs].SetValues<EOffOn>((int)CConfig.Tabs);
|
||||
_SelectSlides[_SelectSlideTimerMode].SetValues<ETimerMode>((int)CConfig.TimerMode);
|
||||
}
|
||||
|
||||
public override bool HandleInput(SKeyEvent keyEvent)
|
||||
@@ -82,7 +82,7 @@ namespace Vocaluxe.Screens
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
{
|
||||
_SaveConfig();
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
@@ -111,10 +111,10 @@ namespace Vocaluxe.Screens
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
}
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
_SaveConfig();
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
}
|
||||
return true;
|
||||
@@ -133,13 +133,13 @@ namespace Vocaluxe.Screens
|
||||
|
||||
private void _SaveConfig()
|
||||
{
|
||||
CLanguage.LanguageId = SelectSlides[_SelectSlideLanguage].Selection;
|
||||
CLanguage.LanguageId = _SelectSlides[_SelectSlideLanguage].Selection;
|
||||
CConfig.Language = CLanguage.GetLanguageName(CLanguage.LanguageId);
|
||||
CConfig.DebugLevel = (EDebugLevel)SelectSlides[_SelectSlideDebugLevel].Selection;
|
||||
CConfig.SongMenu = (ESongMenu)SelectSlides[_SelectSlideSongMenu].Selection;
|
||||
CConfig.SongSorting = (ESongSorting)SelectSlides[_SelectSlideSongSorting].Selection;
|
||||
CConfig.Tabs = (EOffOn)SelectSlides[_SelectSlideTabs].Selection;
|
||||
CConfig.TimerMode = (ETimerMode)SelectSlides[_SelectSlideTimerMode].Selection;
|
||||
CConfig.DebugLevel = (EDebugLevel)_SelectSlides[_SelectSlideDebugLevel].Selection;
|
||||
CConfig.SongMenu = (ESongMenu)_SelectSlides[_SelectSlideSongMenu].Selection;
|
||||
CConfig.SongSorting = (ESongSorting)_SelectSlides[_SelectSlideSongSorting].Selection;
|
||||
CConfig.Tabs = (EOffOn)_SelectSlides[_SelectSlideTabs].Selection;
|
||||
CConfig.TimerMode = (ETimerMode)_SelectSlides[_SelectSlideTimerMode].Selection;
|
||||
|
||||
CConfig.SaveConfig();
|
||||
|
||||
|
||||
@@ -47,8 +47,8 @@ namespace Vocaluxe.Screens
|
||||
public override void LoadTheme(string xmlPath)
|
||||
{
|
||||
base.LoadTheme(xmlPath);
|
||||
SelectSlides[_SelectSlideLyricStyle].SetValues<ELyricStyle>((int)CConfig.LyricStyle);
|
||||
SelectSlides[_SelectSlideLyricsOnTop].SetValues<EOffOn>((int)CConfig.LyricsOnTop);
|
||||
_SelectSlides[_SelectSlideLyricStyle].SetValues<ELyricStyle>((int)CConfig.LyricStyle);
|
||||
_SelectSlides[_SelectSlideLyricsOnTop].SetValues<EOffOn>((int)CConfig.LyricsOnTop);
|
||||
}
|
||||
|
||||
public override bool HandleInput(SKeyEvent keyEvent)
|
||||
@@ -72,7 +72,7 @@ namespace Vocaluxe.Screens
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
{
|
||||
_SaveConfig();
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
@@ -100,10 +100,10 @@ namespace Vocaluxe.Screens
|
||||
_SaveConfig();
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
}
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
_SaveConfig();
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
}
|
||||
return true;
|
||||
@@ -122,8 +122,8 @@ namespace Vocaluxe.Screens
|
||||
|
||||
private void _SaveConfig()
|
||||
{
|
||||
CConfig.LyricsOnTop = (EOffOn)SelectSlides[_SelectSlideLyricsOnTop].Selection;
|
||||
CConfig.LyricStyle = (ELyricStyle)SelectSlides[_SelectSlideLyricStyle].Selection;
|
||||
CConfig.LyricsOnTop = (EOffOn)_SelectSlides[_SelectSlideLyricsOnTop].Selection;
|
||||
CConfig.LyricStyle = (ELyricStyle)_SelectSlides[_SelectSlideLyricStyle].Selection;
|
||||
CConfig.SaveConfig();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,31 +94,31 @@ namespace Vocaluxe.Screens
|
||||
if (max > 7)
|
||||
max = 7;
|
||||
|
||||
SelectSlides[_SelectSlideRecordChannel1].NumVisible = max;
|
||||
SelectSlides[_SelectSlideRecordChannel2].NumVisible = max;
|
||||
_SelectSlides[_SelectSlideRecordChannel1].NumVisible = max;
|
||||
_SelectSlides[_SelectSlideRecordChannel2].NumVisible = max;
|
||||
|
||||
SelectSlides[_SelectSlideRecordChannel1].AddValue(CLanguage.Translate("TR_CONFIG_OFF"));
|
||||
SelectSlides[_SelectSlideRecordChannel2].AddValue(CLanguage.Translate("TR_CONFIG_OFF"));
|
||||
_SelectSlides[_SelectSlideRecordChannel1].AddValue(CLanguage.Translate("TR_CONFIG_OFF"));
|
||||
_SelectSlides[_SelectSlideRecordChannel2].AddValue(CLanguage.Translate("TR_CONFIG_OFF"));
|
||||
|
||||
for (int i = 1; i <= CSettings.MaxNumPlayer; i++)
|
||||
{
|
||||
SelectSlides[_SelectSlideRecordChannel1].AddValue(i.ToString());
|
||||
SelectSlides[_SelectSlideRecordChannel2].AddValue(i.ToString());
|
||||
_SelectSlides[_SelectSlideRecordChannel1].AddValue(i.ToString());
|
||||
_SelectSlides[_SelectSlideRecordChannel2].AddValue(i.ToString());
|
||||
}
|
||||
|
||||
for (int i = 0; i < 26; i++)
|
||||
SelectSlides[_SelectSlideDelay].AddValue((i * 20).ToString() + " ms");
|
||||
_SelectSlides[_SelectSlideDelay].AddValue((i * 20) + " ms");
|
||||
|
||||
_ChannelEnergy = new float[_StaticEnergyChannel.Length];
|
||||
|
||||
for (int i = 0; i < _ChannelEnergy.Length; i++)
|
||||
{
|
||||
Statics[_StaticEnergyChannel[i]].Visible = false;
|
||||
_Statics[_StaticEnergyChannel[i]].Visible = false;
|
||||
_ChannelEnergy[i] = 0f;
|
||||
}
|
||||
|
||||
Equalizers[_EqualizerChannel1].ScreenHandles = true;
|
||||
Equalizers[_EqualizerChannel2].ScreenHandles = true;
|
||||
_Equalizers[_EqualizerChannel1].ScreenHandles = true;
|
||||
_Equalizers[_EqualizerChannel2].ScreenHandles = true;
|
||||
}
|
||||
|
||||
public override bool HandleInput(SKeyEvent keyEvent)
|
||||
@@ -142,13 +142,13 @@ namespace Vocaluxe.Screens
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
{
|
||||
_SaveMicConfig();
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
}
|
||||
|
||||
if (Buttons[_ButtonDelayTest].Selected)
|
||||
if (_Buttons[_ButtonDelayTest].Selected)
|
||||
_TestDelay();
|
||||
|
||||
break;
|
||||
@@ -158,32 +158,32 @@ namespace Vocaluxe.Screens
|
||||
break;
|
||||
|
||||
case Keys.Left:
|
||||
if (SelectSlides[_SelectSlideRecordDevices].Selected)
|
||||
if (_SelectSlides[_SelectSlideRecordDevices].Selected)
|
||||
_OnDeviceEvent();
|
||||
|
||||
if (SelectSlides[_SelectSlideRecordInputs].Selected)
|
||||
if (_SelectSlides[_SelectSlideRecordInputs].Selected)
|
||||
_OnInputEvent();
|
||||
|
||||
if (SelectSlides[_SelectSlideRecordChannel1].Selected ||
|
||||
SelectSlides[_SelectSlideRecordChannel2].Selected)
|
||||
if (_SelectSlides[_SelectSlideRecordChannel1].Selected ||
|
||||
_SelectSlides[_SelectSlideRecordChannel2].Selected)
|
||||
_SetMicConfig();
|
||||
|
||||
if (SelectSlides[_SelectSlideDelay].Selected)
|
||||
if (_SelectSlides[_SelectSlideDelay].Selected)
|
||||
_SaveDelayConfig();
|
||||
break;
|
||||
|
||||
case Keys.Right:
|
||||
if (SelectSlides[_SelectSlideRecordDevices].Selected)
|
||||
if (_SelectSlides[_SelectSlideRecordDevices].Selected)
|
||||
_OnDeviceEvent();
|
||||
|
||||
if (SelectSlides[_SelectSlideRecordInputs].Selected)
|
||||
if (_SelectSlides[_SelectSlideRecordInputs].Selected)
|
||||
_OnInputEvent();
|
||||
|
||||
if (SelectSlides[_SelectSlideRecordChannel1].Selected ||
|
||||
SelectSlides[_SelectSlideRecordChannel2].Selected)
|
||||
if (_SelectSlides[_SelectSlideRecordChannel1].Selected ||
|
||||
_SelectSlides[_SelectSlideRecordChannel2].Selected)
|
||||
_SetMicConfig();
|
||||
|
||||
if (SelectSlides[_SelectSlideDelay].Selected)
|
||||
if (_SelectSlides[_SelectSlideDelay].Selected)
|
||||
_SaveDelayConfig();
|
||||
break;
|
||||
}
|
||||
@@ -201,28 +201,28 @@ namespace Vocaluxe.Screens
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
}
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
if (SelectSlides[_SelectSlideRecordDevices].Selected)
|
||||
if (_SelectSlides[_SelectSlideRecordDevices].Selected)
|
||||
_OnDeviceEvent();
|
||||
|
||||
if (SelectSlides[_SelectSlideRecordInputs].Selected)
|
||||
if (_SelectSlides[_SelectSlideRecordInputs].Selected)
|
||||
_OnInputEvent();
|
||||
|
||||
if (SelectSlides[_SelectSlideRecordChannel1].Selected ||
|
||||
SelectSlides[_SelectSlideRecordChannel2].Selected)
|
||||
if (_SelectSlides[_SelectSlideRecordChannel1].Selected ||
|
||||
_SelectSlides[_SelectSlideRecordChannel2].Selected)
|
||||
_SetMicConfig();
|
||||
|
||||
if (SelectSlides[_SelectSlideDelay].Selected)
|
||||
if (_SelectSlides[_SelectSlideDelay].Selected)
|
||||
_SaveDelayConfig();
|
||||
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
{
|
||||
_SaveMicConfig();
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
}
|
||||
|
||||
if (Buttons[_ButtonDelayTest].Selected)
|
||||
if (_Buttons[_ButtonDelayTest].Selected)
|
||||
_TestDelay();
|
||||
}
|
||||
return true;
|
||||
@@ -249,10 +249,10 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
int player = 0;
|
||||
if (i == 0)
|
||||
player = SelectSlides[_SelectSlideRecordChannel1].Selection;
|
||||
player = _SelectSlides[_SelectSlideRecordChannel1].Selection;
|
||||
|
||||
if (i == 1)
|
||||
player = SelectSlides[_SelectSlideRecordChannel2].Selection;
|
||||
player = _SelectSlides[_SelectSlideRecordChannel2].Selection;
|
||||
|
||||
if (_DelayTest[i].Timer.ElapsedMilliseconds > _MaxDelayTime * 1000f || player == 0)
|
||||
{
|
||||
@@ -269,39 +269,39 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
}
|
||||
}
|
||||
Texts[_TextDelayChannel1].Text = _DelayTest[0].Delay.ToString("000") + " ms";
|
||||
Texts[_TextDelayChannel2].Text = _DelayTest[1].Delay.ToString("000") + " ms";
|
||||
_Texts[_TextDelayChannel1].Text = _DelayTest[0].Delay.ToString("000") + " ms";
|
||||
_Texts[_TextDelayChannel2].Text = _DelayTest[1].Delay.ToString("000") + " ms";
|
||||
}
|
||||
|
||||
|
||||
if (_CheckMicConfig())
|
||||
{
|
||||
_ChannelEnergy[0] = 0f;
|
||||
int player = SelectSlides[_SelectSlideRecordChannel1].Selection;
|
||||
int player = _SelectSlides[_SelectSlideRecordChannel1].Selection;
|
||||
if (player > 0)
|
||||
{
|
||||
_ChannelEnergy[0] = CSound.RecordGetMaxVolume(player - 1);
|
||||
Equalizers[_EqualizerChannel1].Update(CSound.ToneWeigth(player - 1));
|
||||
_Equalizers[_EqualizerChannel1].Update(CSound.ToneWeigth(player - 1));
|
||||
}
|
||||
else
|
||||
Equalizers[_EqualizerChannel1].Reset();
|
||||
_Equalizers[_EqualizerChannel1].Reset();
|
||||
|
||||
_ChannelEnergy[1] = 0f;
|
||||
player = SelectSlides[_SelectSlideRecordChannel2].Selection;
|
||||
player = _SelectSlides[_SelectSlideRecordChannel2].Selection;
|
||||
if (player > 0)
|
||||
{
|
||||
_ChannelEnergy[1] = CSound.RecordGetMaxVolume(player - 1);
|
||||
Equalizers[_EqualizerChannel2].Update(CSound.ToneWeigth(player - 1));
|
||||
_Equalizers[_EqualizerChannel2].Update(CSound.ToneWeigth(player - 1));
|
||||
}
|
||||
else
|
||||
Equalizers[_EqualizerChannel2].Reset();
|
||||
_Equalizers[_EqualizerChannel2].Reset();
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < _ChannelEnergy.Length; i++)
|
||||
_ChannelEnergy[i] = 0f;
|
||||
Equalizers[_EqualizerChannel1].Reset();
|
||||
Equalizers[_EqualizerChannel2].Reset();
|
||||
_Equalizers[_EqualizerChannel1].Reset();
|
||||
_Equalizers[_EqualizerChannel2].Reset();
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -311,8 +311,8 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
base.OnShow();
|
||||
|
||||
SelectSlides[_SelectSlideRecordDevices].Clear();
|
||||
SelectSlides[_SelectSlideRecordInputs].Clear();
|
||||
_SelectSlides[_SelectSlideRecordDevices].Clear();
|
||||
_SelectSlides[_SelectSlideRecordInputs].Clear();
|
||||
|
||||
for (int i = 0; i < _ChannelEnergy.Length; i++)
|
||||
_ChannelEnergy[i] = 0f;
|
||||
@@ -328,20 +328,20 @@ namespace Vocaluxe.Screens
|
||||
_GetFirstConfiguredRecordDevice(ref _DeviceNr, ref _InputNr);
|
||||
|
||||
for (int dev = 0; dev < _Devices.Length; dev++)
|
||||
SelectSlides[_SelectSlideRecordDevices].AddValue(_Devices[dev].Name);
|
||||
SelectSlides[_SelectSlideRecordDevices].Selection = _DeviceNr;
|
||||
_SelectSlides[_SelectSlideRecordDevices].AddValue(_Devices[dev].Name);
|
||||
_SelectSlides[_SelectSlideRecordDevices].Selection = _DeviceNr;
|
||||
|
||||
for (int inp = 0; inp < _Devices[0].Inputs.Count; inp++)
|
||||
SelectSlides[_SelectSlideRecordInputs].AddValue(_Devices[0].Inputs[inp].Name);
|
||||
SelectSlides[_SelectSlideRecordInputs].Selection = _InputNr;
|
||||
_SelectSlides[_SelectSlideRecordInputs].AddValue(_Devices[0].Inputs[inp].Name);
|
||||
_SelectSlides[_SelectSlideRecordInputs].Selection = _InputNr;
|
||||
_UpdateChannels();
|
||||
}
|
||||
|
||||
SelectSlides[_SelectSlideRecordChannel1].Visible = _Devices != null;
|
||||
SelectSlides[_SelectSlideRecordChannel2].Visible = _Devices != null;
|
||||
_SelectSlides[_SelectSlideRecordChannel1].Visible = _Devices != null;
|
||||
_SelectSlides[_SelectSlideRecordChannel2].Visible = _Devices != null;
|
||||
|
||||
Statics[_StaticWarning].Visible = false;
|
||||
Texts[_TextWarning].Visible = false;
|
||||
_Statics[_StaticWarning].Visible = false;
|
||||
_Texts[_TextWarning].Visible = false;
|
||||
|
||||
_DelayTest = null;
|
||||
if (_Devices != null)
|
||||
@@ -354,7 +354,7 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
}
|
||||
|
||||
SelectSlides[_SelectSlideDelay].Selection = CConfig.MicDelay / 20;
|
||||
_SelectSlides[_SelectSlideDelay].Selection = CConfig.MicDelay / 20;
|
||||
|
||||
_DelayTestRunning = false;
|
||||
_DelaySound = -1;
|
||||
@@ -368,38 +368,38 @@ namespace Vocaluxe.Screens
|
||||
|
||||
public override bool Draw()
|
||||
{
|
||||
DrawBG();
|
||||
_DrawBG();
|
||||
|
||||
if (!_CheckMicConfig())
|
||||
{
|
||||
Statics[_StaticWarning].Visible = true;
|
||||
Texts[_TextWarning].Visible = true;
|
||||
_Statics[_StaticWarning].Visible = true;
|
||||
_Texts[_TextWarning].Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Statics[_StaticWarning].Visible = false;
|
||||
Texts[_TextWarning].Visible = false;
|
||||
_Statics[_StaticWarning].Visible = false;
|
||||
_Texts[_TextWarning].Visible = false;
|
||||
}
|
||||
|
||||
for (int i = 0; i < _StaticEnergyChannel.Length; i++)
|
||||
{
|
||||
if (_ChannelEnergy[i] > 0f)
|
||||
{
|
||||
SRectF rect = new SRectF(Statics[_StaticEnergyChannel[i]].Rect.X,
|
||||
Statics[_StaticEnergyChannel[i]].Rect.Y,
|
||||
Statics[_StaticEnergyChannel[i]].Rect.W * _ChannelEnergy[i],
|
||||
Statics[_StaticEnergyChannel[i]].Rect.H,
|
||||
Statics[_StaticEnergyChannel[i]].Rect.Z);
|
||||
SRectF rect = new SRectF(_Statics[_StaticEnergyChannel[i]].Rect.X,
|
||||
_Statics[_StaticEnergyChannel[i]].Rect.Y,
|
||||
_Statics[_StaticEnergyChannel[i]].Rect.W * _ChannelEnergy[i],
|
||||
_Statics[_StaticEnergyChannel[i]].Rect.H,
|
||||
_Statics[_StaticEnergyChannel[i]].Rect.Z);
|
||||
|
||||
CDraw.DrawTexture(Statics[_StaticEnergyChannel[i]].Texture, Statics[_StaticEnergyChannel[i]].Rect,
|
||||
CDraw.DrawTexture(_Statics[_StaticEnergyChannel[i]].Texture, _Statics[_StaticEnergyChannel[i]].Rect,
|
||||
new SColorF(1f, 1f, 1f, 1f), rect);
|
||||
}
|
||||
}
|
||||
|
||||
Equalizers[_EqualizerChannel1].Draw();
|
||||
Equalizers[_EqualizerChannel2].Draw();
|
||||
_Equalizers[_EqualizerChannel1].Draw();
|
||||
_Equalizers[_EqualizerChannel2].Draw();
|
||||
|
||||
DrawFG();
|
||||
_DrawFG();
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -415,25 +415,25 @@ namespace Vocaluxe.Screens
|
||||
|
||||
private void _OnDeviceEvent()
|
||||
{
|
||||
if (SelectSlides[_SelectSlideRecordDevices].Selection != _DeviceNr)
|
||||
if (_SelectSlides[_SelectSlideRecordDevices].Selection != _DeviceNr)
|
||||
{
|
||||
SelectSlides[_SelectSlideRecordInputs].Clear();
|
||||
_DeviceNr = SelectSlides[_SelectSlideRecordDevices].Selection;
|
||||
_SelectSlides[_SelectSlideRecordInputs].Clear();
|
||||
_DeviceNr = _SelectSlides[_SelectSlideRecordDevices].Selection;
|
||||
_InputNr = 0;
|
||||
|
||||
for (int inp = 0; inp < _Devices[_DeviceNr].Inputs.Count; inp++)
|
||||
SelectSlides[_SelectSlideRecordInputs].AddValue(_Devices[_DeviceNr].Inputs[inp].Name);
|
||||
_SelectSlides[_SelectSlideRecordInputs].AddValue(_Devices[_DeviceNr].Inputs[inp].Name);
|
||||
_InputNr = 0;
|
||||
SelectSlides[_SelectSlideRecordInputs].Selection = 0;
|
||||
_SelectSlides[_SelectSlideRecordInputs].Selection = 0;
|
||||
_UpdateChannels();
|
||||
}
|
||||
}
|
||||
|
||||
private void _OnInputEvent()
|
||||
{
|
||||
if (SelectSlides[_SelectSlideRecordInputs].Selection != _InputNr)
|
||||
if (_SelectSlides[_SelectSlideRecordInputs].Selection != _InputNr)
|
||||
{
|
||||
_InputNr = SelectSlides[_SelectSlideRecordInputs].Selection;
|
||||
_InputNr = _SelectSlides[_SelectSlideRecordInputs].Selection;
|
||||
|
||||
_UpdateChannels();
|
||||
}
|
||||
@@ -441,7 +441,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
private void _SaveDelayConfig()
|
||||
{
|
||||
CConfig.MicDelay = SelectSlides[_SelectSlideDelay].Selection * 20;
|
||||
CConfig.MicDelay = _SelectSlides[_SelectSlideDelay].Selection * 20;
|
||||
CConfig.SaveConfig();
|
||||
}
|
||||
|
||||
@@ -489,15 +489,15 @@ namespace Vocaluxe.Screens
|
||||
if (_DeviceNr < 0)
|
||||
return;
|
||||
SInput input = _Devices[_DeviceNr].Inputs[_InputNr];
|
||||
input.PlayerChannel1 = SelectSlides[_SelectSlideRecordChannel1].Selection;
|
||||
input.PlayerChannel2 = SelectSlides[_SelectSlideRecordChannel2].Selection;
|
||||
input.PlayerChannel1 = _SelectSlides[_SelectSlideRecordChannel1].Selection;
|
||||
input.PlayerChannel2 = _SelectSlides[_SelectSlideRecordChannel2].Selection;
|
||||
_Devices[_DeviceNr].Inputs[_InputNr] = input;
|
||||
}
|
||||
|
||||
private void _UpdateChannels()
|
||||
{
|
||||
SelectSlides[_SelectSlideRecordChannel1].Selection = _Devices[_DeviceNr].Inputs[_InputNr].PlayerChannel1;
|
||||
SelectSlides[_SelectSlideRecordChannel2].Selection = _Devices[_DeviceNr].Inputs[_InputNr].PlayerChannel2;
|
||||
_SelectSlides[_SelectSlideRecordChannel1].Selection = _Devices[_DeviceNr].Inputs[_InputNr].PlayerChannel1;
|
||||
_SelectSlides[_SelectSlideRecordChannel2].Selection = _Devices[_DeviceNr].Inputs[_InputNr].PlayerChannel2;
|
||||
|
||||
_SaveMicConfig();
|
||||
}
|
||||
|
||||
@@ -54,18 +54,18 @@ namespace Vocaluxe.Screens
|
||||
public override void LoadTheme(string xmlPath)
|
||||
{
|
||||
base.LoadTheme(xmlPath);
|
||||
SelectSlides[_SelectSlideBackgroundMusic].SetValues<EOffOn>((int)CConfig.BackgroundMusic);
|
||||
SelectSlides[_SelectSlideBackgroundMusicVolume].AddValues(new string[]
|
||||
_SelectSlides[_SelectSlideBackgroundMusic].SetValues<EOffOn>((int)CConfig.BackgroundMusic);
|
||||
_SelectSlides[_SelectSlideBackgroundMusicVolume].AddValues(new string[]
|
||||
{"0", "5", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65", "70", "75", "80", "85", "90", "95", "100"});
|
||||
SelectSlides[_SelectSlideBackgroundMusicVolume].Selection = CConfig.BackgroundMusicVolume / 5;
|
||||
SelectSlides[_SelectSlideBackgroundMusicSource].SetValues<EBackgroundMusicSource>((int)CConfig.BackgroundMusicSource);
|
||||
SelectSlides[_SelectSlideBackgroundMusicSource].Selection = (int)CConfig.BackgroundMusicSource;
|
||||
SelectSlides[_SelectSlidePreviewMusicVolume].AddValues(new string[]
|
||||
_SelectSlides[_SelectSlideBackgroundMusicVolume].Selection = CConfig.BackgroundMusicVolume / 5;
|
||||
_SelectSlides[_SelectSlideBackgroundMusicSource].SetValues<EBackgroundMusicSource>((int)CConfig.BackgroundMusicSource);
|
||||
_SelectSlides[_SelectSlideBackgroundMusicSource].Selection = (int)CConfig.BackgroundMusicSource;
|
||||
_SelectSlides[_SelectSlidePreviewMusicVolume].AddValues(new string[]
|
||||
{"0", "5", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65", "70", "75", "80", "85", "90", "95", "100"});
|
||||
SelectSlides[_SelectSlidePreviewMusicVolume].Selection = CConfig.PreviewMusicVolume / 5;
|
||||
SelectSlides[_SelectSlideGameMusicVolume].AddValues(new string[]
|
||||
_SelectSlides[_SelectSlidePreviewMusicVolume].Selection = CConfig.PreviewMusicVolume / 5;
|
||||
_SelectSlides[_SelectSlideGameMusicVolume].AddValues(new string[]
|
||||
{"0", "5", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65", "70", "75", "80", "85", "90", "95", "100"});
|
||||
SelectSlides[_SelectSlideGameMusicVolume].Selection = CConfig.GameMusicVolume / 5;
|
||||
_SelectSlides[_SelectSlideGameMusicVolume].Selection = CConfig.GameMusicVolume / 5;
|
||||
}
|
||||
|
||||
public override bool HandleInput(SKeyEvent keyEvent)
|
||||
@@ -89,7 +89,7 @@ namespace Vocaluxe.Screens
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
{
|
||||
_SaveConfig();
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
@@ -117,10 +117,10 @@ namespace Vocaluxe.Screens
|
||||
_SaveConfig();
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
}
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
_SaveConfig();
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
}
|
||||
return true;
|
||||
@@ -129,7 +129,7 @@ namespace Vocaluxe.Screens
|
||||
public override bool UpdateGame()
|
||||
{
|
||||
if (_BackgroundMusicVolume != CConfig.BackgroundMusicVolume)
|
||||
SelectSlides[_SelectSlideBackgroundMusicVolume].Selection = CConfig.BackgroundMusicVolume / 5;
|
||||
_SelectSlides[_SelectSlideBackgroundMusicVolume].Selection = CConfig.BackgroundMusicVolume / 5;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -145,19 +145,19 @@ namespace Vocaluxe.Screens
|
||||
_BackgroundMusic = CConfig.BackgroundMusic;
|
||||
_BackgroundMusicVolume = CConfig.BackgroundMusicVolume;
|
||||
|
||||
SelectSlides[_SelectSlideGameMusicVolume].Selection = CConfig.GameMusicVolume / 5;
|
||||
SelectSlides[_SelectSlidePreviewMusicVolume].Selection = CConfig.PreviewMusicVolume / 5;
|
||||
_SelectSlides[_SelectSlideGameMusicVolume].Selection = CConfig.GameMusicVolume / 5;
|
||||
_SelectSlides[_SelectSlidePreviewMusicVolume].Selection = CConfig.PreviewMusicVolume / 5;
|
||||
}
|
||||
|
||||
private void _SaveConfig()
|
||||
{
|
||||
CConfig.GameMusicVolume = SelectSlides[_SelectSlideGameMusicVolume].Selection * 5;
|
||||
CConfig.PreviewMusicVolume = SelectSlides[_SelectSlidePreviewMusicVolume].Selection * 5;
|
||||
CConfig.GameMusicVolume = _SelectSlides[_SelectSlideGameMusicVolume].Selection * 5;
|
||||
CConfig.PreviewMusicVolume = _SelectSlides[_SelectSlidePreviewMusicVolume].Selection * 5;
|
||||
CConfig.SaveConfig();
|
||||
|
||||
EOffOn newOffOn = (EOffOn)SelectSlides[_SelectSlideBackgroundMusic].Selection;
|
||||
EBackgroundMusicSource newSource = (EBackgroundMusicSource)SelectSlides[_SelectSlideBackgroundMusicSource].Selection;
|
||||
float newVolume = SelectSlides[_SelectSlideBackgroundMusicVolume].Selection * 5;
|
||||
EOffOn newOffOn = (EOffOn)_SelectSlides[_SelectSlideBackgroundMusic].Selection;
|
||||
EBackgroundMusicSource newSource = (EBackgroundMusicSource)_SelectSlides[_SelectSlideBackgroundMusicSource].Selection;
|
||||
float newVolume = _SelectSlides[_SelectSlideBackgroundMusicVolume].Selection * 5;
|
||||
|
||||
CBackgroundMusic.CheckAndApplyConfig(newOffOn, newSource, newVolume);
|
||||
}
|
||||
|
||||
@@ -71,19 +71,19 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
base.LoadTheme(xmlPath);
|
||||
|
||||
SelectSlides[_SelectSlideTheme].AddValues(CTheme.ThemeNames);
|
||||
SelectSlides[_SelectSlideTheme].Selection = CTheme.GetThemeIndex(-1);
|
||||
_SelectSlides[_SelectSlideTheme].AddValues(CTheme.ThemeNames);
|
||||
_SelectSlides[_SelectSlideTheme].Selection = CTheme.GetThemeIndex(-1);
|
||||
|
||||
SelectSlides[_SelectSlideSkin].AddValues(CTheme.SkinNames);
|
||||
SelectSlides[_SelectSlideSkin].Selection = CTheme.GetSkinIndex(-1);
|
||||
_SelectSlides[_SelectSlideSkin].AddValues(CTheme.SkinNames);
|
||||
_SelectSlides[_SelectSlideSkin].Selection = CTheme.GetSkinIndex(-1);
|
||||
|
||||
SelectSlides[_SelectSlideCover].AddValues(CCover.CoverThemes);
|
||||
SelectSlides[_SelectSlideCover].Selection = CCover.GetCoverThemeIndex();
|
||||
SelectSlides[_SelectSlideNoteLines].SetValues<EOffOn>((int)CConfig.DrawNoteLines);
|
||||
SelectSlides[_SelectSlideToneHelper].SetValues<EOffOn>((int)CConfig.DrawToneHelper);
|
||||
SelectSlides[_SelectSlideTimerLook].SetValues<ETimerLook>((int)CConfig.TimerLook);
|
||||
SelectSlides[_SelectSlideFadeInfo].SetValues<EFadePlayerInfo>((int)CConfig.FadePlayerInfo);
|
||||
SelectSlides[_SelectSlideCoverLoading].SetValues<ECoverLoading>((int)CConfig.CoverLoading);
|
||||
_SelectSlides[_SelectSlideCover].AddValues(CCover.CoverThemes);
|
||||
_SelectSlides[_SelectSlideCover].Selection = CCover.GetCoverThemeIndex();
|
||||
_SelectSlides[_SelectSlideNoteLines].SetValues<EOffOn>((int)CConfig.DrawNoteLines);
|
||||
_SelectSlides[_SelectSlideToneHelper].SetValues<EOffOn>((int)CConfig.DrawToneHelper);
|
||||
_SelectSlides[_SelectSlideTimerLook].SetValues<ETimerLook>((int)CConfig.TimerLook);
|
||||
_SelectSlides[_SelectSlideFadeInfo].SetValues<EFadePlayerInfo>((int)CConfig.FadePlayerInfo);
|
||||
_SelectSlides[_SelectSlideCoverLoading].SetValues<ECoverLoading>((int)CConfig.CoverLoading);
|
||||
}
|
||||
|
||||
public override bool HandleInput(SKeyEvent keyEvent)
|
||||
@@ -106,7 +106,7 @@ namespace Vocaluxe.Screens
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
_Close();
|
||||
break;
|
||||
|
||||
@@ -129,9 +129,9 @@ namespace Vocaluxe.Screens
|
||||
if (mouseEvent.RB)
|
||||
_Close();
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
_Close();
|
||||
else
|
||||
_OnChange();
|
||||
@@ -168,18 +168,18 @@ namespace Vocaluxe.Screens
|
||||
|
||||
private void _SaveConfig()
|
||||
{
|
||||
CConfig.Theme = CTheme.ThemeNames[SelectSlides[_SelectSlideTheme].Selection];
|
||||
CConfig.Skin = CTheme.SkinNames[SelectSlides[_SelectSlideSkin].Selection];
|
||||
CConfig.CoverTheme = CCover.CoverThemes[SelectSlides[_SelectSlideCover].Selection];
|
||||
CConfig.DrawNoteLines = (EOffOn)SelectSlides[_SelectSlideNoteLines].Selection;
|
||||
CConfig.DrawToneHelper = (EOffOn)SelectSlides[_SelectSlideToneHelper].Selection;
|
||||
CConfig.TimerLook = (ETimerLook)SelectSlides[_SelectSlideTimerLook].Selection;
|
||||
CConfig.FadePlayerInfo = (EFadePlayerInfo)SelectSlides[_SelectSlideFadeInfo].Selection;
|
||||
CConfig.CoverLoading = (ECoverLoading)SelectSlides[_SelectSlideCoverLoading].Selection;
|
||||
CConfig.Theme = CTheme.ThemeNames[_SelectSlides[_SelectSlideTheme].Selection];
|
||||
CConfig.Skin = CTheme.SkinNames[_SelectSlides[_SelectSlideSkin].Selection];
|
||||
CConfig.CoverTheme = CCover.CoverThemes[_SelectSlides[_SelectSlideCover].Selection];
|
||||
CConfig.DrawNoteLines = (EOffOn)_SelectSlides[_SelectSlideNoteLines].Selection;
|
||||
CConfig.DrawToneHelper = (EOffOn)_SelectSlides[_SelectSlideToneHelper].Selection;
|
||||
CConfig.TimerLook = (ETimerLook)_SelectSlides[_SelectSlideTimerLook].Selection;
|
||||
CConfig.FadePlayerInfo = (EFadePlayerInfo)_SelectSlides[_SelectSlideFadeInfo].Selection;
|
||||
CConfig.CoverLoading = (ECoverLoading)_SelectSlides[_SelectSlideCoverLoading].Selection;
|
||||
|
||||
CConfig.SaveConfig();
|
||||
|
||||
if (_OldCoverTheme != SelectSlides[_SelectSlideCover].Selection)
|
||||
if (_OldCoverTheme != _SelectSlides[_SelectSlideCover].Selection)
|
||||
{
|
||||
CCover.ReloadCover();
|
||||
CSongs.Filter.SearchString = String.Empty;
|
||||
@@ -187,10 +187,10 @@ namespace Vocaluxe.Screens
|
||||
CSongs.Categorizer.Tabs = CConfig.Tabs;
|
||||
}
|
||||
|
||||
if (_OldTheme != SelectSlides[_SelectSlideTheme].Selection)
|
||||
if (_OldTheme != _SelectSlides[_SelectSlideTheme].Selection)
|
||||
{
|
||||
CConfig.Theme = CTheme.ThemeNames[SelectSlides[_SelectSlideTheme].Selection];
|
||||
_OldTheme = SelectSlides[_SelectSlideTheme].Selection;
|
||||
CConfig.Theme = CTheme.ThemeNames[_SelectSlides[_SelectSlideTheme].Selection];
|
||||
_OldTheme = _SelectSlides[_SelectSlideTheme].Selection;
|
||||
|
||||
CTheme.UnloadSkins();
|
||||
CFonts.UnloadThemeFonts(CConfig.Theme);
|
||||
@@ -204,16 +204,15 @@ namespace Vocaluxe.Screens
|
||||
CTheme.LoadSkins();
|
||||
CTheme.LoadTheme();
|
||||
CGraphics.ReloadTheme();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void _OnChange()
|
||||
{
|
||||
if (_OldTheme != SelectSlides[_SelectSlideTheme].Selection)
|
||||
if (_OldTheme != _SelectSlides[_SelectSlideTheme].Selection)
|
||||
{
|
||||
CConfig.Theme = CTheme.ThemeNames[SelectSlides[_SelectSlideTheme].Selection];
|
||||
_OldTheme = SelectSlides[_SelectSlideTheme].Selection;
|
||||
CConfig.Theme = CTheme.ThemeNames[_SelectSlides[_SelectSlideTheme].Selection];
|
||||
_OldTheme = _SelectSlides[_SelectSlideTheme].Selection;
|
||||
|
||||
CTheme.UnloadSkins();
|
||||
CFonts.UnloadThemeFonts(CConfig.Theme);
|
||||
@@ -233,9 +232,9 @@ namespace Vocaluxe.Screens
|
||||
return;
|
||||
}
|
||||
|
||||
if (_TempSkin != SelectSlides[_SelectSlideSkin].Selection)
|
||||
if (_TempSkin != _SelectSlides[_SelectSlideSkin].Selection)
|
||||
{
|
||||
_TempSkin = SelectSlides[_SelectSlideSkin].Selection;
|
||||
_TempSkin = _SelectSlides[_SelectSlideSkin].Selection;
|
||||
|
||||
_PauseBG();
|
||||
CConfig.Skin = CTheme.SkinNames[_TempSkin];
|
||||
|
||||
@@ -66,10 +66,10 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
base.LoadTheme(xmlPath);
|
||||
|
||||
SelectSlides[_SelectSlideVideoBackgrounds].SetValues<EOffOn>((int)CConfig.VideoBackgrounds);
|
||||
SelectSlides[_SelectSlideVideoPreview].SetValues<EOffOn>((int)CConfig.VideoPreview);
|
||||
SelectSlides[_SelectSlideVideosInSongs].SetValues<EOffOn>((int)CConfig.VideosInSongs);
|
||||
SelectSlides[_SelectSlideVideosToBackground].SetValues<EOffOn>((int)CConfig.VideosToBackground);
|
||||
_SelectSlides[_SelectSlideVideoBackgrounds].SetValues<EOffOn>((int)CConfig.VideoBackgrounds);
|
||||
_SelectSlides[_SelectSlideVideoPreview].SetValues<EOffOn>((int)CConfig.VideoPreview);
|
||||
_SelectSlides[_SelectSlideVideosInSongs].SetValues<EOffOn>((int)CConfig.VideosInSongs);
|
||||
_SelectSlides[_SelectSlideVideosToBackground].SetValues<EOffOn>((int)CConfig.VideosToBackground);
|
||||
}
|
||||
|
||||
public override bool HandleInput(SKeyEvent keyEvent)
|
||||
@@ -93,7 +93,7 @@ namespace Vocaluxe.Screens
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
{
|
||||
_SaveConfig();
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
@@ -101,17 +101,17 @@ namespace Vocaluxe.Screens
|
||||
break;
|
||||
|
||||
case Keys.Left:
|
||||
if (SelectSlides[_SelectSlideWebcamDevices].Selected)
|
||||
if (_SelectSlides[_SelectSlideWebcamDevices].Selected)
|
||||
_OnDeviceEvent();
|
||||
if (SelectSlides[_SelectSlideWebcamCapabilities].Selected)
|
||||
if (_SelectSlides[_SelectSlideWebcamCapabilities].Selected)
|
||||
_OnCapabilitiesEvent();
|
||||
_SaveConfig();
|
||||
break;
|
||||
|
||||
case Keys.Right:
|
||||
if (SelectSlides[_SelectSlideWebcamDevices].Selected)
|
||||
if (_SelectSlides[_SelectSlideWebcamDevices].Selected)
|
||||
_OnDeviceEvent();
|
||||
if (SelectSlides[_SelectSlideWebcamCapabilities].Selected)
|
||||
if (_SelectSlides[_SelectSlideWebcamCapabilities].Selected)
|
||||
_OnCapabilitiesEvent();
|
||||
_SaveConfig();
|
||||
break;
|
||||
@@ -130,14 +130,14 @@ namespace Vocaluxe.Screens
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
}
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
if (SelectSlides[_SelectSlideWebcamDevices].Selected)
|
||||
if (_SelectSlides[_SelectSlideWebcamDevices].Selected)
|
||||
_OnDeviceEvent();
|
||||
if (SelectSlides[_SelectSlideWebcamCapabilities].Selected)
|
||||
if (_SelectSlides[_SelectSlideWebcamCapabilities].Selected)
|
||||
_OnCapabilitiesEvent();
|
||||
_SaveConfig();
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenOptions);
|
||||
}
|
||||
return true;
|
||||
@@ -146,8 +146,8 @@ namespace Vocaluxe.Screens
|
||||
public override bool UpdateGame()
|
||||
{
|
||||
CWebcam.GetFrame(ref _WebcamTexture);
|
||||
Statics[_StaticWebcamOutput].Texture = _WebcamTexture;
|
||||
SelectSlides[_SelectSlideVideosToBackground].Selection = (int)CConfig.VideosToBackground;
|
||||
_Statics[_StaticWebcamOutput].Texture = _WebcamTexture;
|
||||
_SelectSlides[_SelectSlideVideosToBackground].Selection = (int)CConfig.VideosToBackground;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -167,8 +167,8 @@ namespace Vocaluxe.Screens
|
||||
public override void OnShow()
|
||||
{
|
||||
base.OnShow();
|
||||
SelectSlides[_SelectSlideWebcamDevices].Clear();
|
||||
SelectSlides[_SelectSlideWebcamCapabilities].Clear();
|
||||
_SelectSlides[_SelectSlideWebcamDevices].Clear();
|
||||
_SelectSlides[_SelectSlideWebcamCapabilities].Clear();
|
||||
|
||||
_DeviceNr = -1;
|
||||
_CapabilityNr = -1;
|
||||
@@ -186,16 +186,16 @@ namespace Vocaluxe.Screens
|
||||
_GetFirstConfiguredWebcamDevice(ref _DeviceNr, ref _CapabilityNr);
|
||||
|
||||
foreach (SWebcamDevice d in devices)
|
||||
SelectSlides[_SelectSlideWebcamDevices].AddValue(d.Name);
|
||||
SelectSlides[_SelectSlideWebcamDevices].Selection = _DeviceNr;
|
||||
_SelectSlides[_SelectSlideWebcamDevices].AddValue(d.Name);
|
||||
_SelectSlides[_SelectSlideWebcamDevices].Selection = _DeviceNr;
|
||||
|
||||
foreach (SCapabilities c in devices[_DeviceNr].Capabilities)
|
||||
SelectSlides[_SelectSlideWebcamCapabilities].AddValue(c.Width.ToString() + " x " + c.Height.ToString() + " @ " + c.Framerate.ToString() + " FPS ");
|
||||
_Config.MonikerString = devices[SelectSlides[_SelectSlideWebcamDevices].Selection].MonikerString;
|
||||
_Config.Width = devices[SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[SelectSlides[_SelectSlideWebcamCapabilities].Selection].Width;
|
||||
_Config.Height = devices[SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[SelectSlides[_SelectSlideWebcamCapabilities].Selection].Height;
|
||||
_SelectSlides[_SelectSlideWebcamCapabilities].AddValue(c.Width + " x " + c.Height + " @ " + c.Framerate + " FPS ");
|
||||
_Config.MonikerString = devices[_SelectSlides[_SelectSlideWebcamDevices].Selection].MonikerString;
|
||||
_Config.Width = devices[_SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[_SelectSlides[_SelectSlideWebcamCapabilities].Selection].Width;
|
||||
_Config.Height = devices[_SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[_SelectSlides[_SelectSlideWebcamCapabilities].Selection].Height;
|
||||
_Config.Framerate =
|
||||
devices[SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[SelectSlides[_SelectSlideWebcamCapabilities].Selection].Framerate;
|
||||
devices[_SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[_SelectSlides[_SelectSlideWebcamCapabilities].Selection].Framerate;
|
||||
CWebcam.Close();
|
||||
CWebcam.Select(CConfig.WebcamConfig);
|
||||
CWebcam.Start();
|
||||
@@ -208,17 +208,17 @@ namespace Vocaluxe.Screens
|
||||
devices = null;
|
||||
}
|
||||
|
||||
SelectSlides[_SelectSlideWebcamDevices].Visible = devices != null && devices.Length > 0;
|
||||
SelectSlides[_SelectSlideWebcamCapabilities].Visible = devices != null && devices.Length > 0;
|
||||
Statics[_StaticWebcamOutput].Visible = devices != null && devices.Length > 0;
|
||||
_SelectSlides[_SelectSlideWebcamDevices].Visible = devices != null && devices.Length > 0;
|
||||
_SelectSlides[_SelectSlideWebcamCapabilities].Visible = devices != null && devices.Length > 0;
|
||||
_Statics[_StaticWebcamOutput].Visible = devices != null && devices.Length > 0;
|
||||
}
|
||||
|
||||
private void _SaveConfig()
|
||||
{
|
||||
CConfig.VideoBackgrounds = (EOffOn)SelectSlides[_SelectSlideVideoBackgrounds].Selection;
|
||||
CConfig.VideoPreview = (EOffOn)SelectSlides[_SelectSlideVideoPreview].Selection;
|
||||
CConfig.VideosInSongs = (EOffOn)SelectSlides[_SelectSlideVideosInSongs].Selection;
|
||||
CConfig.VideosToBackground = (EOffOn)SelectSlides[_SelectSlideVideosToBackground].Selection;
|
||||
CConfig.VideoBackgrounds = (EOffOn)_SelectSlides[_SelectSlideVideoBackgrounds].Selection;
|
||||
CConfig.VideoPreview = (EOffOn)_SelectSlides[_SelectSlideVideoPreview].Selection;
|
||||
CConfig.VideosInSongs = (EOffOn)_SelectSlides[_SelectSlideVideosInSongs].Selection;
|
||||
CConfig.VideosToBackground = (EOffOn)_SelectSlides[_SelectSlideVideosToBackground].Selection;
|
||||
|
||||
CConfig.WebcamConfig = _Config;
|
||||
CBackgroundMusic.VideoEnabled = true;
|
||||
@@ -228,24 +228,24 @@ namespace Vocaluxe.Screens
|
||||
|
||||
private void _OnDeviceEvent()
|
||||
{
|
||||
if (SelectSlides[_SelectSlideWebcamDevices].Selection != _DeviceNr)
|
||||
if (_SelectSlides[_SelectSlideWebcamDevices].Selection != _DeviceNr)
|
||||
{
|
||||
SelectSlides[_SelectSlideWebcamCapabilities].Clear();
|
||||
_DeviceNr = SelectSlides[_SelectSlideWebcamDevices].Selection;
|
||||
_SelectSlides[_SelectSlideWebcamCapabilities].Clear();
|
||||
_DeviceNr = _SelectSlides[_SelectSlideWebcamDevices].Selection;
|
||||
_CapabilityNr = 0;
|
||||
|
||||
SWebcamDevice[] d = CWebcam.GetDevices();
|
||||
for (int i = 0; i < d[SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities.Count; i++)
|
||||
for (int i = 0; i < d[_SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities.Count; i++)
|
||||
{
|
||||
SelectSlides[_SelectSlideWebcamCapabilities].AddValue(d[_DeviceNr].Capabilities[i].Width.ToString() + " x " + d[_DeviceNr].Capabilities[i].Height.ToString() +
|
||||
" @ " + d[_DeviceNr].Capabilities[i].Framerate.ToString() + "FPS");
|
||||
_SelectSlides[_SelectSlideWebcamCapabilities].AddValue(d[_DeviceNr].Capabilities[i].Width + " x " + d[_DeviceNr].Capabilities[i].Height +
|
||||
" @ " + d[_DeviceNr].Capabilities[i].Framerate + "FPS");
|
||||
}
|
||||
SelectSlides[_SelectSlideWebcamCapabilities].Selection = 0;
|
||||
_SelectSlides[_SelectSlideWebcamCapabilities].Selection = 0;
|
||||
|
||||
_Config.MonikerString = d[SelectSlides[_SelectSlideWebcamDevices].Selection].MonikerString;
|
||||
_Config.Width = d[SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[SelectSlides[_SelectSlideWebcamCapabilities].Selection].Width;
|
||||
_Config.Height = d[SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[SelectSlides[_SelectSlideWebcamCapabilities].Selection].Height;
|
||||
_Config.Framerate = d[SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[SelectSlides[_SelectSlideWebcamCapabilities].Selection].Framerate;
|
||||
_Config.MonikerString = d[_SelectSlides[_SelectSlideWebcamDevices].Selection].MonikerString;
|
||||
_Config.Width = d[_SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[_SelectSlides[_SelectSlideWebcamCapabilities].Selection].Width;
|
||||
_Config.Height = d[_SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[_SelectSlides[_SelectSlideWebcamCapabilities].Selection].Height;
|
||||
_Config.Framerate = d[_SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[_SelectSlides[_SelectSlideWebcamCapabilities].Selection].Framerate;
|
||||
|
||||
CWebcam.Close();
|
||||
CWebcam.Select(_Config);
|
||||
@@ -255,15 +255,15 @@ namespace Vocaluxe.Screens
|
||||
|
||||
private void _OnCapabilitiesEvent()
|
||||
{
|
||||
if (SelectSlides[_SelectSlideWebcamCapabilities].Selection != _CapabilityNr)
|
||||
if (_SelectSlides[_SelectSlideWebcamCapabilities].Selection != _CapabilityNr)
|
||||
{
|
||||
_CapabilityNr = SelectSlides[_SelectSlideWebcamCapabilities].Selection;
|
||||
_CapabilityNr = _SelectSlides[_SelectSlideWebcamCapabilities].Selection;
|
||||
|
||||
SWebcamDevice[] d = CWebcam.GetDevices();
|
||||
_Config.MonikerString = d[SelectSlides[_SelectSlideWebcamDevices].Selection].MonikerString;
|
||||
_Config.Width = d[SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[SelectSlides[_SelectSlideWebcamCapabilities].Selection].Width;
|
||||
_Config.Height = d[SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[SelectSlides[_SelectSlideWebcamCapabilities].Selection].Height;
|
||||
_Config.Framerate = d[SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[SelectSlides[_SelectSlideWebcamCapabilities].Selection].Framerate;
|
||||
_Config.MonikerString = d[_SelectSlides[_SelectSlideWebcamDevices].Selection].MonikerString;
|
||||
_Config.Width = d[_SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[_SelectSlides[_SelectSlideWebcamCapabilities].Selection].Width;
|
||||
_Config.Height = d[_SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[_SelectSlides[_SelectSlideWebcamCapabilities].Selection].Height;
|
||||
_Config.Framerate = d[_SelectSlides[_SelectSlideWebcamDevices].Selection].Capabilities[_SelectSlides[_SelectSlideWebcamCapabilities].Selection].Framerate;
|
||||
|
||||
CWebcam.Close();
|
||||
CWebcam.Select(_Config);
|
||||
|
||||
@@ -69,16 +69,16 @@ namespace Vocaluxe.Screens
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
if (Buttons[_ButtonStart].Selected)
|
||||
if (_Buttons[_ButtonStart].Selected)
|
||||
_StartPartyMode();
|
||||
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenMain);
|
||||
break;
|
||||
|
||||
case Keys.Left:
|
||||
case Keys.Right:
|
||||
if (SelectSlides[_SelectSlideModes].Selected)
|
||||
if (_SelectSlides[_SelectSlideModes].Selected)
|
||||
_UpdateSelection();
|
||||
break;
|
||||
}
|
||||
@@ -90,15 +90,15 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
base.HandleMouse(mouseEvent);
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
if (Buttons[_ButtonStart].Selected)
|
||||
if (_Buttons[_ButtonStart].Selected)
|
||||
_StartPartyMode();
|
||||
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenMain);
|
||||
|
||||
if (SelectSlides[_SelectSlideModes].Selected)
|
||||
if (_SelectSlides[_SelectSlideModes].Selected)
|
||||
_UpdateSelection();
|
||||
}
|
||||
|
||||
@@ -114,13 +114,13 @@ namespace Vocaluxe.Screens
|
||||
|
||||
_PartyModeInfos = CParty.GetPartyModeInfos();
|
||||
|
||||
SelectSlides[_SelectSlideModes].Clear();
|
||||
_SelectSlides[_SelectSlideModes].Clear();
|
||||
foreach (SPartyModeInfos info in _PartyModeInfos)
|
||||
SelectSlides[_SelectSlideModes].AddValue(info.Name, info.PartyModeID);
|
||||
SelectSlides[_SelectSlideModes].Selection = 0;
|
||||
_SelectSlides[_SelectSlideModes].AddValue(info.Name, info.PartyModeID);
|
||||
_SelectSlides[_SelectSlideModes].Selection = 0;
|
||||
_UpdateSelection();
|
||||
|
||||
SetInteractionToSelectSlide(SelectSlides[_SelectSlideModes]);
|
||||
_SetInteractionToSelectSlide(_SelectSlides[_SelectSlideModes]);
|
||||
}
|
||||
|
||||
public override bool UpdateGame()
|
||||
@@ -140,49 +140,49 @@ namespace Vocaluxe.Screens
|
||||
if (_PartyModeInfos.Count == 0)
|
||||
return;
|
||||
|
||||
int index = SelectSlides[_SelectSlideModes].Selection;
|
||||
int index = _SelectSlides[_SelectSlideModes].Selection;
|
||||
if (index >= _PartyModeInfos.Count)
|
||||
return;
|
||||
|
||||
//Description
|
||||
Texts[_TextDescription].Text = _PartyModeInfos[index].Description;
|
||||
Texts[_TextDescription].TranslationID = _PartyModeInfos[index].PartyModeID;
|
||||
_Texts[_TextDescription].Text = _PartyModeInfos[index].Description;
|
||||
_Texts[_TextDescription].TranslationID = _PartyModeInfos[index].PartyModeID;
|
||||
|
||||
//TargetAudience
|
||||
Texts[_TextTargetAudience].TranslationID = _PartyModeInfos[index].PartyModeID;
|
||||
Texts[_TextTargetAudience].Text = _PartyModeInfos[index].TargetAudience;
|
||||
_Texts[_TextTargetAudience].TranslationID = _PartyModeInfos[index].PartyModeID;
|
||||
_Texts[_TextTargetAudience].Text = _PartyModeInfos[index].TargetAudience;
|
||||
|
||||
//NumTeams
|
||||
if (_PartyModeInfos[index].MaxTeams == 0)
|
||||
Texts[_TextNumTeams].Text = "TR_SCREENPARTY_NOTEAMS";
|
||||
_Texts[_TextNumTeams].Text = "TR_SCREENPARTY_NOTEAMS";
|
||||
else if (_PartyModeInfos[index].MaxTeams == _PartyModeInfos[index].MinTeams)
|
||||
Texts[_TextNumTeams].Text = _PartyModeInfos[index].MaxTeams.ToString();
|
||||
_Texts[_TextNumTeams].Text = _PartyModeInfos[index].MaxTeams.ToString();
|
||||
else if (_PartyModeInfos[index].MaxTeams > _PartyModeInfos[index].MinTeams)
|
||||
Texts[_TextNumTeams].Text = _PartyModeInfos[index].MinTeams + " - " + _PartyModeInfos[index].MaxTeams;
|
||||
_Texts[_TextNumTeams].Text = _PartyModeInfos[index].MinTeams + " - " + _PartyModeInfos[index].MaxTeams;
|
||||
|
||||
//NumPlayers
|
||||
if (_PartyModeInfos[index].MaxPlayers == _PartyModeInfos[index].MinPlayers)
|
||||
Texts[_TextNumPlayers].Text = _PartyModeInfos[index].MaxTeams.ToString();
|
||||
_Texts[_TextNumPlayers].Text = _PartyModeInfos[index].MaxTeams.ToString();
|
||||
else if (_PartyModeInfos[index].MaxPlayers > _PartyModeInfos[index].MinPlayers)
|
||||
Texts[_TextNumPlayers].Text = _PartyModeInfos[index].MinPlayers + " - " + _PartyModeInfos[index].MaxPlayers;
|
||||
_Texts[_TextNumPlayers].Text = _PartyModeInfos[index].MinPlayers + " - " + _PartyModeInfos[index].MaxPlayers;
|
||||
|
||||
//Author
|
||||
Texts[_TextAuthor].Text = _PartyModeInfos[index].Author;
|
||||
Texts[_TextAuthor].TranslationID = _PartyModeInfos[index].PartyModeID;
|
||||
_Texts[_TextAuthor].Text = _PartyModeInfos[index].Author;
|
||||
_Texts[_TextAuthor].TranslationID = _PartyModeInfos[index].PartyModeID;
|
||||
|
||||
//Version
|
||||
Texts[_TextVersion].Text = _PartyModeInfos[index].VersionMajor + "." + _PartyModeInfos[index].VersionMinor;
|
||||
Texts[_TextVersion].TranslationID = _PartyModeInfos[index].PartyModeID;
|
||||
_Texts[_TextVersion].Text = _PartyModeInfos[index].VersionMajor + "." + _PartyModeInfos[index].VersionMinor;
|
||||
_Texts[_TextVersion].TranslationID = _PartyModeInfos[index].PartyModeID;
|
||||
|
||||
if (!_PartyModeInfos[index].Playable)
|
||||
{
|
||||
Buttons[_ButtonStart].Visible = false;
|
||||
Texts[_TextError].Visible = true;
|
||||
_Buttons[_ButtonStart].Visible = false;
|
||||
_Texts[_TextError].Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Buttons[_ButtonStart].Visible = true;
|
||||
Texts[_TextError].Visible = false;
|
||||
_Buttons[_ButtonStart].Visible = true;
|
||||
_Texts[_TextError].Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,7 +191,7 @@ namespace Vocaluxe.Screens
|
||||
if (_PartyModeInfos.Count == 0)
|
||||
return;
|
||||
|
||||
int index = SelectSlides[_SelectSlideModes].Selection;
|
||||
int index = _SelectSlides[_SelectSlideModes].Selection;
|
||||
if (index >= _PartyModeInfos.Count)
|
||||
return;
|
||||
|
||||
|
||||
@@ -79,16 +79,16 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
base.LoadTheme(xmlPath);
|
||||
|
||||
Buttons[_ButtonSaveSnapshot].Visible = false;
|
||||
Buttons[_ButtonDiscardSnapshot].Visible = false;
|
||||
Buttons[_ButtonTakeSnapshot].Visible = false;
|
||||
_Buttons[_ButtonSaveSnapshot].Visible = false;
|
||||
_Buttons[_ButtonDiscardSnapshot].Visible = false;
|
||||
_Buttons[_ButtonTakeSnapshot].Visible = false;
|
||||
if (CWebcam.GetDevices().Length > 0)
|
||||
Buttons[_ButtonWebcam].Visible = true;
|
||||
_Buttons[_ButtonWebcam].Visible = true;
|
||||
else
|
||||
Buttons[_ButtonWebcam].Visible = false;
|
||||
SelectSlides[_SelectSlideDifficulty].SetValues<EGameDifficulty>(0);
|
||||
SelectSlides[_SelectSlideGuestProfile].SetValues<EOffOn>(0);
|
||||
SelectSlides[_SelectSlideActive].SetValues<EOffOn>(0);
|
||||
_Buttons[_ButtonWebcam].Visible = false;
|
||||
_SelectSlides[_SelectSlideDifficulty].SetValues<EGameDifficulty>(0);
|
||||
_SelectSlides[_SelectSlideGuestProfile].SetValues<EOffOn>(0);
|
||||
_SelectSlides[_SelectSlideActive].SetValues<EOffOn>(0);
|
||||
}
|
||||
|
||||
public override bool HandleInput(SKeyEvent keyEvent)
|
||||
@@ -103,8 +103,8 @@ namespace Vocaluxe.Screens
|
||||
case EEditMode.None:
|
||||
break;
|
||||
case EEditMode.PlayerName:
|
||||
SelectSlides[_SelectSlideProfiles].RenameValue(
|
||||
CProfiles.AddGetPlayerName(SelectSlides[_SelectSlideProfiles].Selection, keyEvent.Unicode));
|
||||
_SelectSlides[_SelectSlideProfiles].RenameValue(
|
||||
CProfiles.AddGetPlayerName(_SelectSlides[_SelectSlideProfiles].Selection, keyEvent.Unicode));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -117,36 +117,36 @@ namespace Vocaluxe.Screens
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenMain);
|
||||
else if (Buttons[_ButtonSave].Selected)
|
||||
else if (_Buttons[_ButtonSave].Selected)
|
||||
_SaveProfiles();
|
||||
else if (Buttons[_ButtonNew].Selected)
|
||||
else if (_Buttons[_ButtonNew].Selected)
|
||||
_NewProfile();
|
||||
else if (Buttons[_ButtonPlayerName].Selected)
|
||||
else if (_Buttons[_ButtonPlayerName].Selected)
|
||||
{
|
||||
if (CProfiles.NumProfiles > 0 && _EditMode != EEditMode.PlayerName)
|
||||
_EditMode = EEditMode.PlayerName;
|
||||
else
|
||||
_EditMode = EEditMode.None;
|
||||
}
|
||||
else if (Buttons[_ButtonDelete].Selected)
|
||||
else if (_Buttons[_ButtonDelete].Selected)
|
||||
_DeleteProfile();
|
||||
else if (Buttons[_ButtonWebcam].Selected && CWebcam.GetDevices().Length > 0)
|
||||
else if (_Buttons[_ButtonWebcam].Selected && CWebcam.GetDevices().Length > 0)
|
||||
_OnWebcam();
|
||||
else if (Buttons[_ButtonSaveSnapshot].Selected && CWebcam.GetDevices().Length > 0)
|
||||
else if (_Buttons[_ButtonSaveSnapshot].Selected && CWebcam.GetDevices().Length > 0)
|
||||
_OnSaveSnapshot();
|
||||
else if (Buttons[_ButtonDiscardSnapshot].Selected && CWebcam.GetDevices().Length > 0)
|
||||
else if (_Buttons[_ButtonDiscardSnapshot].Selected && CWebcam.GetDevices().Length > 0)
|
||||
_OnDiscardSnapshot();
|
||||
else if (Buttons[_ButtonTakeSnapshot].Selected && CWebcam.GetDevices().Length > 0)
|
||||
else if (_Buttons[_ButtonTakeSnapshot].Selected && CWebcam.GetDevices().Length > 0)
|
||||
_OnTakeSnapshot();
|
||||
break;
|
||||
|
||||
case Keys.Back:
|
||||
if (_EditMode == EEditMode.PlayerName)
|
||||
{
|
||||
SelectSlides[_SelectSlideProfiles].RenameValue(
|
||||
CProfiles.GetDeleteCharInPlayerName(SelectSlides[_SelectSlideProfiles].Selection));
|
||||
_SelectSlides[_SelectSlideProfiles].RenameValue(
|
||||
CProfiles.GetDeleteCharInPlayerName(_SelectSlides[_SelectSlideProfiles].Selection));
|
||||
}
|
||||
else
|
||||
CGraphics.FadeTo(EScreens.ScreenMain);
|
||||
@@ -156,25 +156,25 @@ namespace Vocaluxe.Screens
|
||||
_DeleteProfile();
|
||||
break;
|
||||
}
|
||||
if (SelectSlides[_SelectSlideDifficulty].Selected)
|
||||
if (_SelectSlides[_SelectSlideDifficulty].Selected)
|
||||
{
|
||||
CProfiles.SetDifficulty(SelectSlides[_SelectSlideProfiles].Selection,
|
||||
(EGameDifficulty)SelectSlides[_SelectSlideDifficulty].Selection);
|
||||
CProfiles.SetDifficulty(_SelectSlides[_SelectSlideProfiles].Selection,
|
||||
(EGameDifficulty)_SelectSlides[_SelectSlideDifficulty].Selection);
|
||||
}
|
||||
else if (SelectSlides[_SelectSlideAvatars].Selected)
|
||||
else if (_SelectSlides[_SelectSlideAvatars].Selected)
|
||||
{
|
||||
CProfiles.SetAvatar(SelectSlides[_SelectSlideProfiles].Selection,
|
||||
SelectSlides[_SelectSlideAvatars].Selection);
|
||||
CProfiles.SetAvatar(_SelectSlides[_SelectSlideProfiles].Selection,
|
||||
_SelectSlides[_SelectSlideAvatars].Selection);
|
||||
}
|
||||
else if (SelectSlides[_SelectSlideGuestProfile].Selected)
|
||||
else if (_SelectSlides[_SelectSlideGuestProfile].Selected)
|
||||
{
|
||||
CProfiles.SetGuestProfile(SelectSlides[_SelectSlideProfiles].Selection,
|
||||
(EOffOn)SelectSlides[_SelectSlideGuestProfile].Selection);
|
||||
CProfiles.SetGuestProfile(_SelectSlides[_SelectSlideProfiles].Selection,
|
||||
(EOffOn)_SelectSlides[_SelectSlideGuestProfile].Selection);
|
||||
}
|
||||
else if (SelectSlides[_SelectSlideActive].Selected)
|
||||
else if (_SelectSlides[_SelectSlideActive].Selected)
|
||||
{
|
||||
CProfiles.SetActive(SelectSlides[_SelectSlideProfiles].Selection,
|
||||
(EOffOn)SelectSlides[_SelectSlideActive].Selection);
|
||||
CProfiles.SetActive(_SelectSlides[_SelectSlideProfiles].Selection,
|
||||
(EOffOn)_SelectSlides[_SelectSlideActive].Selection);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -186,52 +186,52 @@ namespace Vocaluxe.Screens
|
||||
if (_EditMode == EEditMode.None)
|
||||
base.HandleMouse(mouseEvent);
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent))
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent))
|
||||
{
|
||||
if (Buttons[_ButtonExit].Selected)
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
CGraphics.FadeTo(EScreens.ScreenMain);
|
||||
else if (Buttons[_ButtonSave].Selected)
|
||||
else if (_Buttons[_ButtonSave].Selected)
|
||||
_SaveProfiles();
|
||||
else if (Buttons[_ButtonNew].Selected)
|
||||
else if (_Buttons[_ButtonNew].Selected)
|
||||
_NewProfile();
|
||||
else if (Buttons[_ButtonDelete].Selected)
|
||||
else if (_Buttons[_ButtonDelete].Selected)
|
||||
_DeleteProfile();
|
||||
else if (Buttons[_ButtonPlayerName].Selected)
|
||||
else if (_Buttons[_ButtonPlayerName].Selected)
|
||||
{
|
||||
if (CProfiles.NumProfiles > 0 && _EditMode != EEditMode.PlayerName)
|
||||
_EditMode = EEditMode.PlayerName;
|
||||
else
|
||||
_EditMode = EEditMode.None;
|
||||
}
|
||||
else if (SelectSlides[_SelectSlideDifficulty].Selected)
|
||||
else if (_SelectSlides[_SelectSlideDifficulty].Selected)
|
||||
{
|
||||
CProfiles.SetDifficulty(SelectSlides[_SelectSlideProfiles].Selection,
|
||||
(EGameDifficulty)SelectSlides[_SelectSlideDifficulty].Selection);
|
||||
CProfiles.SetDifficulty(_SelectSlides[_SelectSlideProfiles].Selection,
|
||||
(EGameDifficulty)_SelectSlides[_SelectSlideDifficulty].Selection);
|
||||
}
|
||||
else if (SelectSlides[_SelectSlideAvatars].Selected)
|
||||
else if (_SelectSlides[_SelectSlideAvatars].Selected)
|
||||
{
|
||||
CProfiles.SetAvatar(SelectSlides[_SelectSlideProfiles].Selection,
|
||||
SelectSlides[_SelectSlideAvatars].Selection);
|
||||
CProfiles.SetAvatar(_SelectSlides[_SelectSlideProfiles].Selection,
|
||||
_SelectSlides[_SelectSlideAvatars].Selection);
|
||||
if (CWebcam.GetDevices().Length > 0 && _WebcamTexture.Index > 0)
|
||||
_OnDiscardSnapshot();
|
||||
}
|
||||
else if (SelectSlides[_SelectSlideGuestProfile].Selected)
|
||||
else if (_SelectSlides[_SelectSlideGuestProfile].Selected)
|
||||
{
|
||||
CProfiles.SetGuestProfile(SelectSlides[_SelectSlideProfiles].Selection,
|
||||
(EOffOn)SelectSlides[_SelectSlideGuestProfile].Selection);
|
||||
CProfiles.SetGuestProfile(_SelectSlides[_SelectSlideProfiles].Selection,
|
||||
(EOffOn)_SelectSlides[_SelectSlideGuestProfile].Selection);
|
||||
}
|
||||
else if (SelectSlides[_SelectSlideActive].Selected)
|
||||
else if (_SelectSlides[_SelectSlideActive].Selected)
|
||||
{
|
||||
CProfiles.SetActive(SelectSlides[_SelectSlideProfiles].Selection,
|
||||
(EOffOn)SelectSlides[_SelectSlideActive].Selection);
|
||||
CProfiles.SetActive(_SelectSlides[_SelectSlideProfiles].Selection,
|
||||
(EOffOn)_SelectSlides[_SelectSlideActive].Selection);
|
||||
}
|
||||
else if (Buttons[_ButtonWebcam].Selected && CWebcam.GetDevices().Length > 0)
|
||||
else if (_Buttons[_ButtonWebcam].Selected && CWebcam.GetDevices().Length > 0)
|
||||
_OnWebcam();
|
||||
else if (Buttons[_ButtonSaveSnapshot].Selected && CWebcam.GetDevices().Length > 0)
|
||||
else if (_Buttons[_ButtonSaveSnapshot].Selected && CWebcam.GetDevices().Length > 0)
|
||||
_OnSaveSnapshot();
|
||||
else if (Buttons[_ButtonDiscardSnapshot].Selected && CWebcam.GetDevices().Length > 0)
|
||||
else if (_Buttons[_ButtonDiscardSnapshot].Selected && CWebcam.GetDevices().Length > 0)
|
||||
_OnDiscardSnapshot();
|
||||
else if (Buttons[_ButtonTakeSnapshot].Selected && CWebcam.GetDevices().Length > 0)
|
||||
else if (_Buttons[_ButtonTakeSnapshot].Selected && CWebcam.GetDevices().Length > 0)
|
||||
_OnTakeSnapshot();
|
||||
}
|
||||
|
||||
@@ -242,10 +242,10 @@ namespace Vocaluxe.Screens
|
||||
|
||||
private void _OnTakeSnapshot()
|
||||
{
|
||||
Buttons[_ButtonSaveSnapshot].Visible = true;
|
||||
Buttons[_ButtonDiscardSnapshot].Visible = true;
|
||||
Buttons[_ButtonWebcam].Visible = false;
|
||||
Buttons[_ButtonTakeSnapshot].Visible = false;
|
||||
_Buttons[_ButtonSaveSnapshot].Visible = true;
|
||||
_Buttons[_ButtonDiscardSnapshot].Visible = true;
|
||||
_Buttons[_ButtonWebcam].Visible = false;
|
||||
_Buttons[_ButtonTakeSnapshot].Visible = false;
|
||||
_Snapshot = CWebcam.GetBitmap();
|
||||
}
|
||||
|
||||
@@ -254,10 +254,10 @@ namespace Vocaluxe.Screens
|
||||
CWebcam.Stop();
|
||||
CDraw.RemoveTexture(ref _WebcamTexture);
|
||||
_Snapshot = null;
|
||||
Buttons[_ButtonSaveSnapshot].Visible = false;
|
||||
Buttons[_ButtonDiscardSnapshot].Visible = false;
|
||||
Buttons[_ButtonTakeSnapshot].Visible = false;
|
||||
Buttons[_ButtonWebcam].Visible = true;
|
||||
_Buttons[_ButtonSaveSnapshot].Visible = false;
|
||||
_Buttons[_ButtonDiscardSnapshot].Visible = false;
|
||||
_Buttons[_ButtonTakeSnapshot].Visible = false;
|
||||
_Buttons[_ButtonWebcam].Visible = true;
|
||||
}
|
||||
|
||||
private void _OnSaveSnapshot()
|
||||
@@ -277,15 +277,15 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (CProfiles.Avatars[j].FileName == (filename + i + ".png"))
|
||||
{
|
||||
CProfiles.SetAvatar(SelectSlides[_SelectSlideProfiles].Selection, j);
|
||||
CProfiles.SetAvatar(_SelectSlides[_SelectSlideProfiles].Selection, j);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Buttons[_ButtonSaveSnapshot].Visible = false;
|
||||
Buttons[_ButtonDiscardSnapshot].Visible = false;
|
||||
Buttons[_ButtonTakeSnapshot].Visible = false;
|
||||
Buttons[_ButtonWebcam].Visible = true;
|
||||
_Buttons[_ButtonSaveSnapshot].Visible = false;
|
||||
_Buttons[_ButtonDiscardSnapshot].Visible = false;
|
||||
_Buttons[_ButtonTakeSnapshot].Visible = false;
|
||||
_Buttons[_ButtonWebcam].Visible = true;
|
||||
}
|
||||
|
||||
private void _OnWebcam()
|
||||
@@ -293,38 +293,38 @@ namespace Vocaluxe.Screens
|
||||
_Snapshot = null;
|
||||
CWebcam.Start();
|
||||
CWebcam.GetFrame(ref _WebcamTexture);
|
||||
Buttons[_ButtonSaveSnapshot].Visible = false;
|
||||
Buttons[_ButtonDiscardSnapshot].Visible = false;
|
||||
Buttons[_ButtonTakeSnapshot].Visible = true;
|
||||
Buttons[_ButtonWebcam].Visible = false;
|
||||
_Buttons[_ButtonSaveSnapshot].Visible = false;
|
||||
_Buttons[_ButtonDiscardSnapshot].Visible = false;
|
||||
_Buttons[_ButtonTakeSnapshot].Visible = true;
|
||||
_Buttons[_ButtonWebcam].Visible = false;
|
||||
}
|
||||
|
||||
public override bool UpdateGame()
|
||||
{
|
||||
if (SelectSlides[_SelectSlideProfiles].Selection > -1)
|
||||
if (_SelectSlides[_SelectSlideProfiles].Selection > -1)
|
||||
{
|
||||
Buttons[_ButtonPlayerName].Text.Text = CProfiles.GetPlayerName(SelectSlides[_SelectSlideProfiles].Selection);
|
||||
_Buttons[_ButtonPlayerName].Text.Text = CProfiles.GetPlayerName(_SelectSlides[_SelectSlideProfiles].Selection);
|
||||
if (_EditMode == EEditMode.PlayerName)
|
||||
Buttons[_ButtonPlayerName].Text.Text += "|";
|
||||
_Buttons[_ButtonPlayerName].Text.Text += "|";
|
||||
|
||||
SelectSlides[_SelectSlideDifficulty].Selection = (int)CProfiles.GetDifficulty(SelectSlides[_SelectSlideProfiles].Selection);
|
||||
SelectSlides[_SelectSlideGuestProfile].Selection = (int)CProfiles.GetGuestProfile(SelectSlides[_SelectSlideProfiles].Selection);
|
||||
SelectSlides[_SelectSlideActive].Selection = (int)CProfiles.GetActive(SelectSlides[_SelectSlideProfiles].Selection);
|
||||
_SelectSlides[_SelectSlideDifficulty].Selection = (int)CProfiles.GetDifficulty(_SelectSlides[_SelectSlideProfiles].Selection);
|
||||
_SelectSlides[_SelectSlideGuestProfile].Selection = (int)CProfiles.GetGuestProfile(_SelectSlides[_SelectSlideProfiles].Selection);
|
||||
_SelectSlides[_SelectSlideActive].Selection = (int)CProfiles.GetActive(_SelectSlides[_SelectSlideProfiles].Selection);
|
||||
|
||||
int avatarNr = CProfiles.GetAvatarNr(SelectSlides[_SelectSlideProfiles].Selection);
|
||||
SelectSlides[_SelectSlideAvatars].Selection = avatarNr;
|
||||
int avatarNr = CProfiles.GetAvatarNr(_SelectSlides[_SelectSlideProfiles].Selection);
|
||||
_SelectSlides[_SelectSlideAvatars].Selection = avatarNr;
|
||||
if (CWebcam.GetDevices().Length > 0 && _WebcamTexture.Index > 0)
|
||||
{
|
||||
if (_Snapshot == null)
|
||||
CWebcam.GetFrame(ref _WebcamTexture);
|
||||
Statics[_StaticAvatar].Texture = _WebcamTexture;
|
||||
_Statics[_StaticAvatar].Texture = _WebcamTexture;
|
||||
|
||||
RectangleF bounds = new RectangleF(_WebcamTexture.Rect.X, _WebcamTexture.Rect.Y, _WebcamTexture.Rect.W, _WebcamTexture.Rect.H);
|
||||
RectangleF rect = new RectangleF(0f, 0f, _WebcamTexture.Rect.W, _WebcamTexture.Rect.H);
|
||||
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, EAspect.Crop);
|
||||
CHelper.SetRect(bounds, out rect, rect.Width / rect.Height, EAspect.Crop);
|
||||
}
|
||||
else
|
||||
Statics[_StaticAvatar].Texture = CProfiles.Avatars[avatarNr].Texture;
|
||||
_Statics[_StaticAvatar].Texture = CProfiles.Avatars[avatarNr].Texture;
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -357,7 +357,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
private void _DeleteProfile()
|
||||
{
|
||||
CProfiles.DeleteProfile(SelectSlides[_SelectSlideProfiles].Selection);
|
||||
CProfiles.DeleteProfile(_SelectSlides[_SelectSlideProfiles].Selection);
|
||||
_LoadProfiles();
|
||||
UpdateGame();
|
||||
}
|
||||
@@ -365,25 +365,25 @@ namespace Vocaluxe.Screens
|
||||
private void _LoadProfiles()
|
||||
{
|
||||
_EditMode = EEditMode.None;
|
||||
SelectSlides[_SelectSlideProfiles].Clear();
|
||||
_SelectSlides[_SelectSlideProfiles].Clear();
|
||||
|
||||
for (int i = 0; i < CProfiles.NumProfiles; i++)
|
||||
SelectSlides[_SelectSlideProfiles].AddValue(CProfiles.GetPlayerName(i));
|
||||
_SelectSlides[_SelectSlideProfiles].AddValue(CProfiles.GetPlayerName(i));
|
||||
|
||||
if (CProfiles.NumProfiles > 0 && CProfiles.NumAvatars > 0)
|
||||
{
|
||||
SelectSlides[_SelectSlideDifficulty].Selection = (int)CProfiles.GetDifficulty(SelectSlides[_SelectSlideProfiles].Selection);
|
||||
SelectSlides[_SelectSlideGuestProfile].Selection = (int)CProfiles.GetGuestProfile(SelectSlides[_SelectSlideProfiles].Selection);
|
||||
SelectSlides[_SelectSlideActive].Selection = (int)CProfiles.GetActive(SelectSlides[_SelectSlideProfiles].Selection);
|
||||
SelectSlides[_SelectSlideAvatars].Selection = CProfiles.GetAvatarNr(SelectSlides[_SelectSlideProfiles].Selection);
|
||||
_SelectSlides[_SelectSlideDifficulty].Selection = (int)CProfiles.GetDifficulty(_SelectSlides[_SelectSlideProfiles].Selection);
|
||||
_SelectSlides[_SelectSlideGuestProfile].Selection = (int)CProfiles.GetGuestProfile(_SelectSlides[_SelectSlideProfiles].Selection);
|
||||
_SelectSlides[_SelectSlideActive].Selection = (int)CProfiles.GetActive(_SelectSlides[_SelectSlideProfiles].Selection);
|
||||
_SelectSlides[_SelectSlideAvatars].Selection = CProfiles.GetAvatarNr(_SelectSlides[_SelectSlideProfiles].Selection);
|
||||
}
|
||||
}
|
||||
|
||||
private void _LoadAvatars()
|
||||
{
|
||||
SelectSlides[_SelectSlideAvatars].Clear();
|
||||
_SelectSlides[_SelectSlideAvatars].Clear();
|
||||
for (int i = 0; i < CProfiles.NumAvatars; i++)
|
||||
SelectSlides[_SelectSlideAvatars].AddValue(CProfiles.Avatars[i].FileName);
|
||||
_SelectSlides[_SelectSlideAvatars].AddValue(CProfiles.Avatars[i].FileName);
|
||||
}
|
||||
|
||||
private void _NewProfile()
|
||||
@@ -391,12 +391,12 @@ namespace Vocaluxe.Screens
|
||||
_EditMode = EEditMode.None;
|
||||
CProfiles.NewProfile();
|
||||
_LoadProfiles();
|
||||
SelectSlides[_SelectSlideProfiles].LastValue();
|
||||
_SelectSlides[_SelectSlideProfiles].LastValue();
|
||||
|
||||
CProfiles.SetAvatar(SelectSlides[_SelectSlideProfiles].Selection,
|
||||
SelectSlides[_SelectSlideAvatars].Selection);
|
||||
CProfiles.SetAvatar(_SelectSlides[_SelectSlideProfiles].Selection,
|
||||
_SelectSlides[_SelectSlideAvatars].Selection);
|
||||
|
||||
SetInteractionToButton(Buttons[_ButtonPlayerName]);
|
||||
_SetInteractionToButton(_Buttons[_ButtonPlayerName]);
|
||||
_EditMode = EEditMode.PlayerName;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,8 +58,7 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
base.Init();
|
||||
|
||||
List<string> texts = new List<string>();
|
||||
texts.Add(_TextSong);
|
||||
List<string> texts = new List<string> {_TextSong};
|
||||
|
||||
_BuildTextStrings(ref texts);
|
||||
|
||||
@@ -119,10 +118,7 @@ namespace Vocaluxe.Screens
|
||||
public override void OnShow()
|
||||
{
|
||||
base.OnShow();
|
||||
if (CGame.NumRounds > 1)
|
||||
_Round = 0;
|
||||
else
|
||||
_Round = 1;
|
||||
_Round = CGame.NumRounds > 1 ? 0 : 1;
|
||||
_Points = CGame.GetPoints();
|
||||
|
||||
_SetVisibility();
|
||||
@@ -156,19 +152,19 @@ namespace Vocaluxe.Screens
|
||||
|
||||
if (_StaticPointsBarDrawnPoints[p] > player[p].Points)
|
||||
_StaticPointsBarDrawnPoints[p] = player[p].Points;
|
||||
string direction = (string)ScreenSettings[_ScreenSettingAnimationDirection].GetValue();
|
||||
string direction = (string)_ScreenSettings[_ScreenSettingAnimationDirection].GetValue();
|
||||
if (direction.ToLower() == "vertical")
|
||||
{
|
||||
Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.W = ((float)_StaticPointsBarDrawnPoints[p]) *
|
||||
(Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.W / 10000);
|
||||
_Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.W = ((float)_StaticPointsBarDrawnPoints[p]) *
|
||||
(_Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.W / 10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H = ((float)_StaticPointsBarDrawnPoints[p]) *
|
||||
(Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H / 10000);
|
||||
Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.Y = Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H +
|
||||
Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.Y -
|
||||
Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H;
|
||||
_Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H = ((float)_StaticPointsBarDrawnPoints[p]) *
|
||||
(_Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H / 10000);
|
||||
_Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.Y = _Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H +
|
||||
_Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.Y -
|
||||
_Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -182,7 +178,7 @@ namespace Vocaluxe.Screens
|
||||
return true;
|
||||
}
|
||||
|
||||
public string GetRating(double points)
|
||||
private static string _GetRating(double points)
|
||||
{
|
||||
string rating = String.Empty;
|
||||
|
||||
@@ -222,7 +218,7 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (player <= numplayer)
|
||||
{
|
||||
string target = "P" + (player + 1).ToString() + "N" + (numplayer + 1).ToString();
|
||||
string target = "P" + (player + 1) + "N" + (numplayer + 1);
|
||||
_TextNames[player, numplayer] = "TextName" + target;
|
||||
_TextScores[player, numplayer] = "TextScore" + target;
|
||||
_TextRatings[player, numplayer] = "TextRating" + target;
|
||||
@@ -247,17 +243,16 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
for (int player = 0; player < CSettings.MaxNumPlayer; player++)
|
||||
{
|
||||
if (player <= numplayer)
|
||||
{
|
||||
string target = "P" + (player + 1).ToString() + "N" + (numplayer + 1).ToString();
|
||||
_StaticPointsBarBG[player, numplayer] = "StaticPointsBarBG" + target;
|
||||
_StaticPointsBar[player, numplayer] = "StaticPointsBar" + target;
|
||||
_StaticAvatar[player, numplayer] = "StaticAvatar" + target;
|
||||
if (player > numplayer)
|
||||
continue;
|
||||
string target = "P" + (player + 1) + "N" + (numplayer + 1);
|
||||
_StaticPointsBarBG[player, numplayer] = "StaticPointsBarBG" + target;
|
||||
_StaticPointsBar[player, numplayer] = "StaticPointsBar" + target;
|
||||
_StaticAvatar[player, numplayer] = "StaticAvatar" + target;
|
||||
|
||||
statics.Add(_StaticPointsBarBG[player, numplayer]);
|
||||
statics.Add(_StaticPointsBar[player, numplayer]);
|
||||
statics.Add(_StaticAvatar[player, numplayer]);
|
||||
}
|
||||
statics.Add(_StaticPointsBarBG[player, numplayer]);
|
||||
statics.Add(_StaticPointsBar[player, numplayer]);
|
||||
statics.Add(_StaticAvatar[player, numplayer]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -272,14 +267,14 @@ namespace Vocaluxe.Screens
|
||||
if (song == null)
|
||||
return;
|
||||
|
||||
Texts[_TextSong].Text = song.Artist + " - " + song.Title;
|
||||
_Texts[_TextSong].Text = song.Artist + " - " + song.Title;
|
||||
if (_Points.NumRounds > 1)
|
||||
Texts[_TextSong].Text += " (" + _Round + "/" + _Points.NumRounds + ")";
|
||||
_Texts[_TextSong].Text += " (" + _Round + "/" + _Points.NumRounds + ")";
|
||||
player = _Points.GetPlayer(_Round - 1, CGame.NumPlayer);
|
||||
}
|
||||
else
|
||||
{
|
||||
Texts[_TextSong].Text = "TR_SCREENSCORE_OVERALLSCORE";
|
||||
_Texts[_TextSong].Text = "TR_SCREENSCORE_OVERALLSCORE";
|
||||
for (int i = 0; i < CGame.NumRounds; i++)
|
||||
{
|
||||
SPlayer[] points = _Points.GetPlayer(i, CGame.NumPlayer);
|
||||
@@ -303,59 +298,59 @@ namespace Vocaluxe.Screens
|
||||
if (song != null)
|
||||
{
|
||||
if (!song.IsDuet)
|
||||
Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = player[p].Name;
|
||||
_Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = player[p].Name;
|
||||
else if (player[p].LineNr == 0 && song.DuetPart1 != "Part 1")
|
||||
Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = player[p].Name + " (" + song.DuetPart1 + ")";
|
||||
_Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = player[p].Name + " (" + song.DuetPart1 + ")";
|
||||
else if (player[p].LineNr == 1 && song.DuetPart2 != "Part 2")
|
||||
Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = player[p].Name + " (" + song.DuetPart2 + ")";
|
||||
_Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = player[p].Name + " (" + song.DuetPart2 + ")";
|
||||
else
|
||||
Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = player[p].Name;
|
||||
_Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = player[p].Name;
|
||||
}
|
||||
else
|
||||
Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = player[p].Name;
|
||||
_Texts[_TextNames[p, CGame.NumPlayer - 1]].Text = player[p].Name;
|
||||
|
||||
if (CGame.NumPlayer < (int)ScreenSettings[_ScreenSettingShortScore].GetValue())
|
||||
Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = ((int)Math.Round(player[p].Points)).ToString("0000") + " " + CLanguage.Translate("TR_SCREENSCORE_POINTS");
|
||||
if (CGame.NumPlayer < (int)_ScreenSettings[_ScreenSettingShortScore].GetValue())
|
||||
_Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = ((int)Math.Round(player[p].Points)).ToString("0000") + " " + CLanguage.Translate("TR_SCREENSCORE_POINTS");
|
||||
else
|
||||
Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = ((int)Math.Round(player[p].Points)).ToString("0000");
|
||||
if (CGame.NumPlayer < (int)ScreenSettings[_ScreenSettingShortDifficulty].GetValue())
|
||||
_Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = ((int)Math.Round(player[p].Points)).ToString("0000");
|
||||
if (CGame.NumPlayer < (int)_ScreenSettings[_ScreenSettingShortDifficulty].GetValue())
|
||||
{
|
||||
Texts[_TextDifficulty[p, CGame.NumPlayer - 1]].Text = CLanguage.Translate("TR_SCREENSCORE_GAMEDIFFICULTY") + ": " +
|
||||
_Texts[_TextDifficulty[p, CGame.NumPlayer - 1]].Text = CLanguage.Translate("TR_SCREENSCORE_GAMEDIFFICULTY") + ": " +
|
||||
CLanguage.Translate(player[p].Difficulty.ToString());
|
||||
}
|
||||
else
|
||||
Texts[_TextDifficulty[p, CGame.NumPlayer - 1]].Text = CLanguage.Translate(player[p].Difficulty.ToString());
|
||||
if (CGame.NumPlayer < (int)ScreenSettings[_ScreenSettingShortRating].GetValue())
|
||||
_Texts[_TextDifficulty[p, CGame.NumPlayer - 1]].Text = CLanguage.Translate(player[p].Difficulty.ToString());
|
||||
if (CGame.NumPlayer < (int)_ScreenSettings[_ScreenSettingShortRating].GetValue())
|
||||
{
|
||||
Texts[_TextRatings[p, CGame.NumPlayer - 1]].Text = CLanguage.Translate("TR_SCREENSCORE_RATING") + ": " +
|
||||
CLanguage.Translate(GetRating((int)Math.Round(player[p].Points)));
|
||||
_Texts[_TextRatings[p, CGame.NumPlayer - 1]].Text = CLanguage.Translate("TR_SCREENSCORE_RATING") + ": " +
|
||||
CLanguage.Translate(_GetRating((int)Math.Round(player[p].Points)));
|
||||
}
|
||||
else
|
||||
Texts[_TextRatings[p, CGame.NumPlayer - 1]].Text = CLanguage.Translate(GetRating((int)Math.Round(player[p].Points)));
|
||||
_Texts[_TextRatings[p, CGame.NumPlayer - 1]].Text = CLanguage.Translate(_GetRating((int)Math.Round(player[p].Points)));
|
||||
|
||||
_StaticPointsBarDrawnPoints[p] = 0.0;
|
||||
string direction = (string)ScreenSettings[_ScreenSettingAnimationDirection].GetValue();
|
||||
string direction = (string)_ScreenSettings[_ScreenSettingAnimationDirection].GetValue();
|
||||
if (direction.ToLower() == "vertical")
|
||||
Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.W = 0;
|
||||
_Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.W = 0;
|
||||
else
|
||||
{
|
||||
Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H = 0;
|
||||
Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.Y = Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H +
|
||||
Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.Y -
|
||||
Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H;
|
||||
_Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H = 0;
|
||||
_Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.Y = _Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H +
|
||||
_Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.Y -
|
||||
_Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H;
|
||||
}
|
||||
if (player[p].ProfileID >= 0 && player[p].ProfileID < CProfiles.NumProfiles)
|
||||
Statics[_StaticAvatar[p, CGame.NumPlayer - 1]].Texture = CProfiles.Profiles[player[p].ProfileID].Avatar.Texture;
|
||||
_Statics[_StaticAvatar[p, CGame.NumPlayer - 1]].Texture = CProfiles.Profiles[player[p].ProfileID].Avatar.Texture;
|
||||
}
|
||||
|
||||
if (CConfig.ScoreAnimationTime < 1)
|
||||
{
|
||||
for (int p = 0; p < CGame.NumPlayer; p++)
|
||||
{
|
||||
Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H = ((float)player[p].Points) * (Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H / 10000);
|
||||
Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.Y = Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H +
|
||||
Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.Y -
|
||||
Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H;
|
||||
_Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H = ((float)player[p].Points) * (_Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H / 10000);
|
||||
_Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.Y = _Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.H +
|
||||
_Statics[_StaticPointsBarBG[p, CGame.NumPlayer - 1]].Rect.Y -
|
||||
_Statics[_StaticPointsBar[p, CGame.NumPlayer - 1]].Rect.H;
|
||||
_StaticPointsBarDrawnPoints[p] = player[p].Points;
|
||||
}
|
||||
}
|
||||
@@ -372,15 +367,15 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (player <= numplayer)
|
||||
{
|
||||
Texts[_TextNames[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
Texts[_TextScores[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
Texts[_TextRatings[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
Texts[_TextDifficulty[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
Statics[_StaticPointsBar[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
Statics[_StaticPointsBarBG[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
Statics[_StaticAvatar[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
_Texts[_TextNames[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
_Texts[_TextScores[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
_Texts[_TextRatings[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
_Texts[_TextDifficulty[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
_Statics[_StaticPointsBar[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
_Statics[_StaticPointsBarBG[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
_Statics[_StaticAvatar[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
|
||||
Statics[_StaticAvatar[player, numplayer]].Texture = new STexture(-1);
|
||||
_Statics[_StaticAvatar[player, numplayer]].Texture = new STexture(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+213
-218
@@ -163,17 +163,17 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
base.LoadTheme(xmlPath);
|
||||
|
||||
Statics[_StaticTimeLine].Visible = false;
|
||||
Statics[_StaticTimeLineExpandedNormal].Visible = false;
|
||||
Statics[_StaticTimeLineExpandedHighlighted].Visible = false;
|
||||
Statics[_StaticPauseBG].Visible = false;
|
||||
Texts[_TextPause].Visible = false;
|
||||
_Statics[_StaticTimeLine].Visible = false;
|
||||
_Statics[_StaticTimeLineExpandedNormal].Visible = false;
|
||||
_Statics[_StaticTimeLineExpandedHighlighted].Visible = false;
|
||||
_Statics[_StaticPauseBG].Visible = false;
|
||||
_Texts[_TextPause].Visible = false;
|
||||
|
||||
Statics[_StaticPauseBG].Visible = false;
|
||||
Texts[_TextPause].Visible = false;
|
||||
_Statics[_StaticPauseBG].Visible = false;
|
||||
_Texts[_TextPause].Visible = false;
|
||||
|
||||
Buttons[_ButtonCancel].Visible = false;
|
||||
Buttons[_ButtonContinue].Visible = false;
|
||||
_Buttons[_ButtonCancel].Visible = false;
|
||||
_Buttons[_ButtonContinue].Visible = false;
|
||||
}
|
||||
|
||||
public override bool HandleInput(SKeyEvent keyEvent)
|
||||
@@ -191,13 +191,13 @@ namespace Vocaluxe.Screens
|
||||
case Keys.Escape:
|
||||
_TogglePause();
|
||||
if (_Pause)
|
||||
SetInteractionToButton(Buttons[_ButtonCancel]);
|
||||
_SetInteractionToButton(_Buttons[_ButtonCancel]);
|
||||
break;
|
||||
|
||||
case Keys.P:
|
||||
_TogglePause();
|
||||
if (_Pause)
|
||||
SetInteractionToButton(Buttons[_ButtonContinue]);
|
||||
_SetInteractionToButton(_Buttons[_ButtonContinue]);
|
||||
break;
|
||||
|
||||
case Keys.T:
|
||||
@@ -240,11 +240,11 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
break;
|
||||
case Keys.Enter:
|
||||
if (Buttons[_ButtonContinue].Selected && _Pause)
|
||||
if (_Buttons[_ButtonContinue].Selected && _Pause)
|
||||
_TogglePause();
|
||||
if (Buttons[_ButtonCancel].Selected && _Pause)
|
||||
if (_Buttons[_ButtonCancel].Selected && _Pause)
|
||||
_Stop();
|
||||
if (Buttons[_ButtonSkip].Selected && _Pause)
|
||||
if (_Buttons[_ButtonSkip].Selected && _Pause)
|
||||
{
|
||||
_LoadNextSong();
|
||||
_TogglePause();
|
||||
@@ -288,18 +288,18 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
_TogglePause();
|
||||
if (_Pause)
|
||||
SetInteractionToButton(Buttons[_ButtonContinue]);
|
||||
_SetInteractionToButton(_Buttons[_ButtonContinue]);
|
||||
}
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent) && _Pause)
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent) && _Pause)
|
||||
{
|
||||
if (Buttons[_ButtonContinue].Selected && _Pause)
|
||||
if (_Buttons[_ButtonContinue].Selected && _Pause)
|
||||
_TogglePause();
|
||||
|
||||
if (Buttons[_ButtonCancel].Selected && _Pause)
|
||||
if (_Buttons[_ButtonCancel].Selected && _Pause)
|
||||
_Stop();
|
||||
|
||||
if (Buttons[_ButtonSkip].Selected && _Pause)
|
||||
if (_Buttons[_ButtonSkip].Selected && _Pause)
|
||||
{
|
||||
_LoadNextSong();
|
||||
_TogglePause();
|
||||
@@ -339,48 +339,48 @@ namespace Vocaluxe.Screens
|
||||
float[] alpha = _CalcFadingAlpha();
|
||||
if (alpha != null)
|
||||
{
|
||||
Lyrics[_LyricMain].Alpha = alpha[0];
|
||||
Lyrics[_LyricSub].Alpha = alpha[1];
|
||||
_Lyrics[_LyricMain].Alpha = alpha[0];
|
||||
_Lyrics[_LyricSub].Alpha = alpha[1];
|
||||
|
||||
Lyrics[_LyricMainTop].Alpha = alpha[0];
|
||||
Lyrics[_LyricSubTop].Alpha = alpha[1];
|
||||
_Lyrics[_LyricMainTop].Alpha = alpha[0];
|
||||
_Lyrics[_LyricSubTop].Alpha = alpha[1];
|
||||
|
||||
Statics[_StaticLyrics].Alpha = alpha[0];
|
||||
Statics[_StaticLyricsTop].Alpha = alpha[0];
|
||||
_Statics[_StaticLyrics].Alpha = alpha[0];
|
||||
_Statics[_StaticLyricsTop].Alpha = alpha[0];
|
||||
|
||||
Statics[_StaticLyricHelper].Alpha = alpha[0];
|
||||
Statics[_StaticLyricHelperTop].Alpha = alpha[0];
|
||||
_Statics[_StaticLyricHelper].Alpha = alpha[0];
|
||||
_Statics[_StaticLyricHelperTop].Alpha = alpha[0];
|
||||
|
||||
for (int p = 0; p < CGame.NumPlayer; p++)
|
||||
{
|
||||
SingNotes[_SingBars].SetAlpha(_NoteLines[p], alpha[CGame.Player[p].LineNr * 2]);
|
||||
_SingNotes[_SingBars].SetAlpha(_NoteLines[p], alpha[CGame.Player[p].LineNr * 2]);
|
||||
if (CConfig.FadePlayerInfo == EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_INFO || CConfig.FadePlayerInfo == EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_ALL)
|
||||
{
|
||||
Statics[_StaticAvatars[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2];
|
||||
Texts[_TextNames[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2];
|
||||
_Statics[_StaticAvatars[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2];
|
||||
_Texts[_TextNames[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2];
|
||||
}
|
||||
if (CConfig.FadePlayerInfo == EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_ALL)
|
||||
{
|
||||
Statics[_StaticScores[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2];
|
||||
Statics[_StaticAvatars[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2];
|
||||
Texts[_TextNames[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2];
|
||||
Texts[_TextScores[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2];
|
||||
_Statics[_StaticScores[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2];
|
||||
_Statics[_StaticAvatars[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2];
|
||||
_Texts[_TextNames[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2];
|
||||
_Texts[_TextScores[p, CGame.NumPlayer - 1]].Alpha = alpha[CGame.Player[p].LineNr * 2];
|
||||
}
|
||||
}
|
||||
|
||||
if (alpha.Length > 2)
|
||||
{
|
||||
Lyrics[_LyricMainDuet].Alpha = alpha[0];
|
||||
Lyrics[_LyricSubDuet].Alpha = alpha[1];
|
||||
_Lyrics[_LyricMainDuet].Alpha = alpha[0];
|
||||
_Lyrics[_LyricSubDuet].Alpha = alpha[1];
|
||||
|
||||
Statics[_StaticLyricsDuet].Alpha = alpha[0];
|
||||
Statics[_StaticLyricHelperDuet].Alpha = alpha[0];
|
||||
_Statics[_StaticLyricsDuet].Alpha = alpha[0];
|
||||
_Statics[_StaticLyricHelperDuet].Alpha = alpha[0];
|
||||
|
||||
Lyrics[_LyricMain].Alpha = alpha[2];
|
||||
Lyrics[_LyricSub].Alpha = alpha[3];
|
||||
_Lyrics[_LyricMain].Alpha = alpha[2];
|
||||
_Lyrics[_LyricSub].Alpha = alpha[3];
|
||||
|
||||
Statics[_StaticLyrics].Alpha = alpha[2];
|
||||
Statics[_StaticLyricHelper].Alpha = alpha[2];
|
||||
_Statics[_StaticLyrics].Alpha = alpha[2];
|
||||
_Statics[_StaticLyricHelper].Alpha = alpha[2];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -388,15 +388,15 @@ namespace Vocaluxe.Screens
|
||||
for (int p = 0; p < CGame.NumPlayer; p++)
|
||||
{
|
||||
if (CGame.Player[p].Points < 10000)
|
||||
Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = CGame.Player[p].Points.ToString("0000");
|
||||
_Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = CGame.Player[p].Points.ToString("0000");
|
||||
else
|
||||
Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = CGame.Player[p].Points.ToString("00000");
|
||||
_Texts[_TextScores[p, CGame.NumPlayer - 1]].Text = CGame.Player[p].Points.ToString("00000");
|
||||
}
|
||||
|
||||
if (_CurrentVideo != -1 && !_FadeOut && CConfig.VideosInSongs == EOffOn.TR_CONFIG_ON)
|
||||
{
|
||||
float vtime = 0f;
|
||||
CVideo.VdGetFrame(_CurrentVideo, ref _CurrentVideoTexture, _CurrentTime, ref vtime);
|
||||
float vtime;
|
||||
CVideo.VdGetFrame(_CurrentVideo, ref _CurrentVideoTexture, _CurrentTime, out vtime);
|
||||
}
|
||||
|
||||
if (_Webcam)
|
||||
@@ -423,15 +423,15 @@ namespace Vocaluxe.Screens
|
||||
|
||||
_TimeRects.Clear();
|
||||
|
||||
SingNotes[_SingBars].Reset();
|
||||
_SingNotes[_SingBars].Reset();
|
||||
for (int i = 0; i < CSettings.MaxNumPlayer; i++)
|
||||
_NoteLines[i] = -1;
|
||||
|
||||
foreach (CLyric lyric in Lyrics)
|
||||
foreach (CLyric lyric in _Lyrics)
|
||||
lyric.LyricStyle = CConfig.LyricStyle;
|
||||
|
||||
for (int p = 0; p < CGame.NumPlayer; p++)
|
||||
Statics[_StaticAvatars[p, CGame.NumPlayer - 1]].Aspect = EAspect.Crop;
|
||||
_Statics[_StaticAvatars[p, CGame.NumPlayer - 1]].Aspect = EAspect.Crop;
|
||||
_SetVisibility();
|
||||
|
||||
_UpdateAvatars();
|
||||
@@ -458,7 +458,7 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
RectangleF bounds = new RectangleF(0, 0, CSettings.RenderW, CSettings.RenderH);
|
||||
RectangleF rect = new RectangleF(0f, 0f, _CurrentVideoTexture.Width, _CurrentVideoTexture.Height);
|
||||
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, _VideoAspect);
|
||||
CHelper.SetRect(bounds, out rect, rect.Width / rect.Height, _VideoAspect);
|
||||
|
||||
CDraw.DrawTexture(_CurrentVideoTexture, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, 0f),
|
||||
_CurrentVideoTexture.Color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), false);
|
||||
@@ -467,7 +467,7 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
RectangleF bounds = new RectangleF(0, 0, CSettings.RenderW, CSettings.RenderH);
|
||||
RectangleF rect = new RectangleF(0f, 0f, _CurrentWebcamFrameTexture.Width, _CurrentWebcamFrameTexture.Height);
|
||||
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, _VideoAspect);
|
||||
CHelper.SetRect(bounds, out rect, rect.Width / rect.Height, _VideoAspect);
|
||||
|
||||
CDraw.DrawTexture(_CurrentWebcamFrameTexture, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, 0f),
|
||||
_CurrentVideoTexture.Color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), false);
|
||||
@@ -477,56 +477,56 @@ namespace Vocaluxe.Screens
|
||||
// Draw Background
|
||||
RectangleF bounds = new RectangleF(0, 0, CSettings.RenderW, CSettings.RenderH);
|
||||
RectangleF rect = new RectangleF(0f, 0f, _Background.Width, _Background.Height);
|
||||
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, EAspect.Crop);
|
||||
CHelper.SetRect(bounds, out rect, rect.Width / rect.Height, EAspect.Crop);
|
||||
|
||||
CDraw.DrawTexture(_Background, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, 0f),
|
||||
_Background.Color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), false);
|
||||
}
|
||||
}
|
||||
|
||||
DrawBG();
|
||||
_DrawBG();
|
||||
|
||||
foreach (CStatic stat in Statics)
|
||||
foreach (CStatic stat in _Statics)
|
||||
stat.Draw();
|
||||
|
||||
foreach (CText text in Texts)
|
||||
foreach (CText text in _Texts)
|
||||
text.Draw();
|
||||
|
||||
switch (CConfig.TimerLook)
|
||||
{
|
||||
case ETimerLook.TR_CONFIG_TIMERLOOK_NORMAL:
|
||||
CDraw.DrawTexture(Statics[_StaticTimeLine].Texture, Statics[_StaticTimeLine].Rect, new SColorF(1, 1, 1, 1), _TimeLineRect);
|
||||
CDraw.DrawTexture(_Statics[_StaticTimeLine].Texture, _Statics[_StaticTimeLine].Rect, new SColorF(1, 1, 1, 1), _TimeLineRect);
|
||||
break;
|
||||
case ETimerLook.TR_CONFIG_TIMERLOOK_EXPANDED:
|
||||
for (int i = 0; i < _TimeRects.Count; i++)
|
||||
CDraw.DrawTexture(_TimeRects[i].Rect.Texture, Statics[_StaticTimeLine].Rect, _TimeRects[i].Rect.Color, _TimeRects[i].Rect.Rect);
|
||||
CDraw.DrawTexture(_TimeRects[i].Rect.Texture, _Statics[_StaticTimeLine].Rect, _TimeRects[i].Rect.Color, _TimeRects[i].Rect.Rect);
|
||||
break;
|
||||
}
|
||||
|
||||
Lyrics[_LyricSub].Draw(-100);
|
||||
Lyrics[_LyricMain].Draw(CGame.Beat);
|
||||
_Lyrics[_LyricSub].Draw(-100);
|
||||
_Lyrics[_LyricMain].Draw(CGame.Beat);
|
||||
|
||||
Lyrics[_LyricSubDuet].Draw(-100);
|
||||
Lyrics[_LyricMainDuet].Draw(CGame.Beat);
|
||||
_Lyrics[_LyricSubDuet].Draw(-100);
|
||||
_Lyrics[_LyricMainDuet].Draw(CGame.Beat);
|
||||
|
||||
Lyrics[_LyricSubTop].Draw(-100);
|
||||
Lyrics[_LyricMainTop].Draw(CGame.Beat);
|
||||
_Lyrics[_LyricSubTop].Draw(-100);
|
||||
_Lyrics[_LyricMainTop].Draw(CGame.Beat);
|
||||
|
||||
|
||||
for (int i = 0; i < CGame.NumPlayer; i++)
|
||||
SingNotes[_SingBars].Draw(_NoteLines[i], CGame.Player[i].SingLine, i);
|
||||
_SingNotes[_SingBars].Draw(_NoteLines[i], CGame.Player[i].SingLine, i);
|
||||
|
||||
_DrawLyricHelper();
|
||||
|
||||
if (_Pause)
|
||||
{
|
||||
Statics[_StaticPauseBG].ForceDraw();
|
||||
Texts[_TextPause].ForceDraw();
|
||||
_Statics[_StaticPauseBG].ForceDraw();
|
||||
_Texts[_TextPause].ForceDraw();
|
||||
|
||||
foreach (CButton button in Buttons)
|
||||
foreach (CButton button in _Buttons)
|
||||
button.Draw();
|
||||
|
||||
foreach (CSelectSlide slide in SelectSlides)
|
||||
foreach (CSelectSlide slide in _SelectSlides)
|
||||
slide.Draw();
|
||||
}
|
||||
|
||||
@@ -557,15 +557,15 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
CDraw.RemoveTexture(ref _Background);
|
||||
|
||||
Lyrics[_LyricMain].Clear();
|
||||
Lyrics[_LyricSub].Clear();
|
||||
Lyrics[_LyricMainDuet].Clear();
|
||||
Lyrics[_LyricSubDuet].Clear();
|
||||
Lyrics[_LyricMainTop].Clear();
|
||||
Lyrics[_LyricSubTop].Clear();
|
||||
Texts[_TextSongName].Text = String.Empty;
|
||||
Texts[_TextDuetName1].Text = String.Empty;
|
||||
Texts[_TextDuetName2].Text = String.Empty;
|
||||
_Lyrics[_LyricMain].Clear();
|
||||
_Lyrics[_LyricSub].Clear();
|
||||
_Lyrics[_LyricMainDuet].Clear();
|
||||
_Lyrics[_LyricSubDuet].Clear();
|
||||
_Lyrics[_LyricMainTop].Clear();
|
||||
_Lyrics[_LyricSubTop].Clear();
|
||||
_Texts[_TextSongName].Text = String.Empty;
|
||||
_Texts[_TextDuetName1].Text = String.Empty;
|
||||
_Texts[_TextDuetName2].Text = String.Empty;
|
||||
GC.Collect();
|
||||
}
|
||||
|
||||
@@ -592,8 +592,8 @@ namespace Vocaluxe.Screens
|
||||
string songname = song.Artist + " - " + song.Title;
|
||||
int rounds = CGame.GetNumSongs();
|
||||
if (rounds > 1)
|
||||
songname += " (" + CGame.RoundNr + "/" + rounds.ToString() + ")";
|
||||
Texts[_TextSongName].Text = songname;
|
||||
songname += " (" + CGame.RoundNr + "/" + rounds + ")";
|
||||
_Texts[_TextSongName].Text = songname;
|
||||
|
||||
_CurrentStream = CSound.Load(song.GetMP3(), true);
|
||||
CSound.SetStreamVolumeMax(_CurrentStream, CConfig.GameMusicVolume);
|
||||
@@ -625,13 +625,13 @@ namespace Vocaluxe.Screens
|
||||
if (song.BackgroundFileName.Length > 0)
|
||||
_Background = CDraw.AddTexture(Path.Combine(song.Folder, song.BackgroundFileName));
|
||||
|
||||
SingNotes[_SingBars].Reset();
|
||||
_SingNotes[_SingBars].Reset();
|
||||
|
||||
|
||||
if (song.IsDuet)
|
||||
{
|
||||
Texts[_TextDuetName1].Text = song.DuetPart1;
|
||||
Texts[_TextDuetName2].Text = song.DuetPart2;
|
||||
_Texts[_TextDuetName1].Text = song.DuetPart1;
|
||||
_Texts[_TextDuetName2].Text = song.DuetPart2;
|
||||
//More than one song: Player is not assigned to line by user
|
||||
//Otherwise, this is done by CScreenNames
|
||||
if (CGame.GetNumSongs() > 1)
|
||||
@@ -654,8 +654,8 @@ namespace Vocaluxe.Screens
|
||||
|
||||
for (int p = 0; p < CGame.NumPlayer; p++)
|
||||
{
|
||||
_NoteLines[p] = SingNotes[_SingBars].AddPlayer(
|
||||
SingNotes[_SingBars].BarPos[p, CGame.NumPlayer - 1],
|
||||
_NoteLines[p] = _SingNotes[_SingBars].AddPlayer(
|
||||
_SingNotes[_SingBars].BarPos[p, CGame.NumPlayer - 1],
|
||||
CTheme.GetPlayerColor(p + 1),
|
||||
p);
|
||||
}
|
||||
@@ -683,22 +683,22 @@ namespace Vocaluxe.Screens
|
||||
|
||||
private void _SetDuetLyricsVisibility(bool isDuet)
|
||||
{
|
||||
Statics[_StaticLyricsDuet].Visible = isDuet;
|
||||
Lyrics[_LyricMainDuet].Visible = isDuet;
|
||||
Lyrics[_LyricSubDuet].Visible = isDuet;
|
||||
_Statics[_StaticLyricsDuet].Visible = isDuet;
|
||||
_Lyrics[_LyricMainDuet].Visible = isDuet;
|
||||
_Lyrics[_LyricSubDuet].Visible = isDuet;
|
||||
|
||||
if (isDuet)
|
||||
{
|
||||
Lyrics[_LyricMainTop].Visible = false;
|
||||
Lyrics[_LyricSubTop].Visible = false;
|
||||
Statics[_StaticLyricsTop].Visible = false;
|
||||
_Lyrics[_LyricMainTop].Visible = false;
|
||||
_Lyrics[_LyricSubTop].Visible = false;
|
||||
_Statics[_StaticLyricsTop].Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
bool lyricsOnTop = (CGame.NumPlayer != 1) && CConfig.LyricsOnTop == EOffOn.TR_CONFIG_ON;
|
||||
Lyrics[_LyricMainTop].Visible = lyricsOnTop;
|
||||
Lyrics[_LyricSubTop].Visible = lyricsOnTop;
|
||||
Statics[_StaticLyricsTop].Visible = lyricsOnTop;
|
||||
_Lyrics[_LyricMainTop].Visible = lyricsOnTop;
|
||||
_Lyrics[_LyricSubTop].Visible = lyricsOnTop;
|
||||
_Statics[_StaticLyricsTop].Visible = lyricsOnTop;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -781,54 +781,54 @@ namespace Vocaluxe.Screens
|
||||
for (int j = 0; j < CGame.NumPlayer; j++)
|
||||
{
|
||||
if (CGame.Player[j].LineNr == i)
|
||||
SingNotes[_SingBars].AddLine(_NoteLines[j], line, nr, j);
|
||||
_SingNotes[_SingBars].AddLine(_NoteLines[j], line, nr, j);
|
||||
}
|
||||
|
||||
if (i == 0 && !song.IsDuet || i == 1 && song.IsDuet)
|
||||
{
|
||||
Lyrics[_LyricMain].SetLine(line[nr]);
|
||||
Lyrics[_LyricMainTop].SetLine(line[nr]);
|
||||
_Lyrics[_LyricMain].SetLine(line[nr]);
|
||||
_Lyrics[_LyricMainTop].SetLine(line[nr]);
|
||||
_TimeToFirstNote = CGame.GetTimeFromBeats(line[nr].FirstNoteBeat - line[nr].StartBeat, song.BPM);
|
||||
_RemainingTimeToFirstNote = CGame.GetTimeFromBeats(line[nr].FirstNoteBeat - CGame.GetBeatFromTime(_CurrentTime, song.BPM, song.Gap), song.BPM);
|
||||
|
||||
if (line.Length >= nr + 2)
|
||||
{
|
||||
Lyrics[_LyricSub].SetLine(line[nr + 1]);
|
||||
Lyrics[_LyricSubTop].SetLine(line[nr + 1]);
|
||||
_Lyrics[_LyricSub].SetLine(line[nr + 1]);
|
||||
_Lyrics[_LyricSubTop].SetLine(line[nr + 1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
Lyrics[_LyricSub].Clear();
|
||||
Lyrics[_LyricSubTop].Clear();
|
||||
_Lyrics[_LyricSub].Clear();
|
||||
_Lyrics[_LyricSubTop].Clear();
|
||||
}
|
||||
}
|
||||
if (i == 0 && song.IsDuet)
|
||||
{
|
||||
Lyrics[_LyricMainDuet].SetLine(line[nr]);
|
||||
_Lyrics[_LyricMainDuet].SetLine(line[nr]);
|
||||
_TimeToFirstNoteDuet = CGame.GetTimeFromBeats(line[nr].FirstNoteBeat - line[nr].StartBeat, song.BPM);
|
||||
_RemainingTimeToFirstNoteDuet = CGame.GetTimeFromBeats(line[nr].FirstNoteBeat - CGame.GetBeatFromTime(_CurrentTime, song.BPM, song.Gap), song.BPM);
|
||||
|
||||
if (line.Length >= nr + 2)
|
||||
Lyrics[_LyricSubDuet].SetLine(line[nr + 1]);
|
||||
_Lyrics[_LyricSubDuet].SetLine(line[nr + 1]);
|
||||
else
|
||||
Lyrics[_LyricSubDuet].Clear();
|
||||
_Lyrics[_LyricSubDuet].Clear();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (i == 0 && !song.IsDuet || i == 1 && song.IsDuet)
|
||||
{
|
||||
Lyrics[_LyricMain].Clear();
|
||||
Lyrics[_LyricSub].Clear();
|
||||
Lyrics[_LyricMainTop].Clear();
|
||||
Lyrics[_LyricSubTop].Clear();
|
||||
_Lyrics[_LyricMain].Clear();
|
||||
_Lyrics[_LyricSub].Clear();
|
||||
_Lyrics[_LyricMainTop].Clear();
|
||||
_Lyrics[_LyricSubTop].Clear();
|
||||
_TimeToFirstNote = 0f;
|
||||
}
|
||||
|
||||
if (i == 0 && song.IsDuet)
|
||||
{
|
||||
Lyrics[_LyricMainDuet].Clear();
|
||||
Lyrics[_LyricSubDuet].Clear();
|
||||
_Lyrics[_LyricMainDuet].Clear();
|
||||
_Lyrics[_LyricSubDuet].Clear();
|
||||
_TimeToFirstNoteDuet = 0f;
|
||||
}
|
||||
}
|
||||
@@ -840,19 +840,19 @@ namespace Vocaluxe.Screens
|
||||
_Pause = !_Pause;
|
||||
if (_Pause)
|
||||
{
|
||||
Buttons[_ButtonCancel].Visible = true;
|
||||
Buttons[_ButtonContinue].Visible = true;
|
||||
_Buttons[_ButtonCancel].Visible = true;
|
||||
_Buttons[_ButtonContinue].Visible = true;
|
||||
if (CGame.NumRounds > CGame.RoundNr && CGame.NumRounds > 1)
|
||||
Buttons[_ButtonSkip].Visible = true;
|
||||
_Buttons[_ButtonSkip].Visible = true;
|
||||
else
|
||||
Buttons[_ButtonSkip].Visible = false;
|
||||
_Buttons[_ButtonSkip].Visible = false;
|
||||
CSound.Pause(_CurrentStream);
|
||||
}
|
||||
else
|
||||
{
|
||||
Buttons[_ButtonCancel].Visible = false;
|
||||
Buttons[_ButtonContinue].Visible = false;
|
||||
Buttons[_ButtonSkip].Visible = false;
|
||||
_Buttons[_ButtonCancel].Visible = false;
|
||||
_Buttons[_ButtonContinue].Visible = false;
|
||||
_Buttons[_ButtonSkip].Visible = false;
|
||||
CSound.Play(_CurrentStream);
|
||||
CWebcam.Start();
|
||||
}
|
||||
@@ -869,7 +869,7 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (player <= numplayer)
|
||||
{
|
||||
string target = "P" + (player + 1).ToString() + "N" + (numplayer + 1).ToString();
|
||||
string target = "P" + (player + 1) + "N" + (numplayer + 1);
|
||||
_TextScores[player, numplayer] = "TextScore" + target;
|
||||
_TextNames[player, numplayer] = "TextName" + target;
|
||||
|
||||
@@ -891,7 +891,7 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (player <= numplayer)
|
||||
{
|
||||
string target = "P" + (player + 1).ToString() + "N" + (numplayer + 1).ToString();
|
||||
string target = "P" + (player + 1) + "N" + (numplayer + 1);
|
||||
_StaticScores[player, numplayer] = "StaticScore" + target;
|
||||
_StaticAvatars[player, numplayer] = "StaticAvatar" + target;
|
||||
|
||||
@@ -904,17 +904,17 @@ namespace Vocaluxe.Screens
|
||||
|
||||
private void _SetVisibility()
|
||||
{
|
||||
Statics[_StaticLyricsDuet].Visible = false;
|
||||
Statics[_StaticLyricHelper].Visible = false;
|
||||
Statics[_StaticLyricHelperDuet].Visible = false;
|
||||
Statics[_StaticLyricHelperTop].Visible = false;
|
||||
Lyrics[_LyricMainDuet].Visible = false;
|
||||
Lyrics[_LyricSubDuet].Visible = false;
|
||||
_Statics[_StaticLyricsDuet].Visible = false;
|
||||
_Statics[_StaticLyricHelper].Visible = false;
|
||||
_Statics[_StaticLyricHelperDuet].Visible = false;
|
||||
_Statics[_StaticLyricHelperTop].Visible = false;
|
||||
_Lyrics[_LyricMainDuet].Visible = false;
|
||||
_Lyrics[_LyricSubDuet].Visible = false;
|
||||
|
||||
Statics[_StaticSongText].Visible = false;
|
||||
Texts[_TextSongName].Visible = false;
|
||||
Texts[_TextDuetName1].Visible = false;
|
||||
Texts[_TextDuetName2].Visible = false;
|
||||
_Statics[_StaticSongText].Visible = false;
|
||||
_Texts[_TextSongName].Visible = false;
|
||||
_Texts[_TextDuetName1].Visible = false;
|
||||
_Texts[_TextDuetName2].Visible = false;
|
||||
|
||||
for (int numplayer = 0; numplayer < CSettings.MaxNumPlayer; numplayer++)
|
||||
{
|
||||
@@ -922,13 +922,13 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (player <= numplayer)
|
||||
{
|
||||
Texts[_TextScores[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
Texts[_TextNames[player, numplayer]].Visible = (numplayer + 1 == CGame.NumPlayer)
|
||||
_Texts[_TextScores[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
_Texts[_TextNames[player, numplayer]].Visible = (numplayer + 1 == CGame.NumPlayer)
|
||||
&&
|
||||
(CConfig.PlayerInfo == EPlayerInfo.TR_CONFIG_PLAYERINFO_BOTH ||
|
||||
CConfig.PlayerInfo == EPlayerInfo.TR_CONFIG_PLAYERINFO_NAME);
|
||||
Statics[_StaticScores[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
Statics[_StaticAvatars[player, numplayer]].Visible = (numplayer + 1 == CGame.NumPlayer)
|
||||
_Statics[_StaticScores[player, numplayer]].Visible = numplayer + 1 == CGame.NumPlayer;
|
||||
_Statics[_StaticAvatars[player, numplayer]].Visible = (numplayer + 1 == CGame.NumPlayer)
|
||||
&&
|
||||
(CConfig.PlayerInfo == EPlayerInfo.TR_CONFIG_PLAYERINFO_BOTH ||
|
||||
CConfig.PlayerInfo == EPlayerInfo.TR_CONFIG_PLAYERINFO_AVATAR);
|
||||
@@ -936,23 +936,23 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
}
|
||||
|
||||
Lyrics[_LyricMain].Alpha = 0f;
|
||||
Lyrics[_LyricSub].Alpha = 0f;
|
||||
_Lyrics[_LyricMain].Alpha = 0f;
|
||||
_Lyrics[_LyricSub].Alpha = 0f;
|
||||
|
||||
Lyrics[_LyricMainTop].Alpha = 0f;
|
||||
Lyrics[_LyricSubTop].Alpha = 0f;
|
||||
_Lyrics[_LyricMainTop].Alpha = 0f;
|
||||
_Lyrics[_LyricSubTop].Alpha = 0f;
|
||||
|
||||
Statics[_StaticLyrics].Alpha = 0f;
|
||||
Statics[_StaticLyricsTop].Alpha = 0f;
|
||||
_Statics[_StaticLyrics].Alpha = 0f;
|
||||
_Statics[_StaticLyricsTop].Alpha = 0f;
|
||||
|
||||
Statics[_StaticLyricHelper].Alpha = 0f;
|
||||
Statics[_StaticLyricHelperTop].Alpha = 0f;
|
||||
_Statics[_StaticLyricHelper].Alpha = 0f;
|
||||
_Statics[_StaticLyricHelperTop].Alpha = 0f;
|
||||
|
||||
Lyrics[_LyricMainDuet].Alpha = 0f;
|
||||
Lyrics[_LyricSubDuet].Alpha = 0f;
|
||||
_Lyrics[_LyricMainDuet].Alpha = 0f;
|
||||
_Lyrics[_LyricSubDuet].Alpha = 0f;
|
||||
|
||||
Statics[_StaticLyricsDuet].Alpha = 0f;
|
||||
Statics[_StaticLyricHelperDuet].Alpha = 0f;
|
||||
_Statics[_StaticLyricsDuet].Alpha = 0f;
|
||||
_Statics[_StaticLyricHelperDuet].Alpha = 0f;
|
||||
}
|
||||
|
||||
private void _DrawLyricHelper()
|
||||
@@ -981,28 +981,28 @@ namespace Vocaluxe.Screens
|
||||
if (time > totaltime)
|
||||
time = totaltime;
|
||||
|
||||
SRectF rect = Statics[_StaticLyricHelper].Rect;
|
||||
SRectF rect = _Statics[_StaticLyricHelper].Rect;
|
||||
SColorF color = new SColorF(
|
||||
Statics[_StaticLyricHelper].Color.R,
|
||||
Statics[_StaticLyricHelper].Color.G,
|
||||
Statics[_StaticLyricHelper].Color.B,
|
||||
Statics[_StaticLyricHelper].Color.A * Statics[_StaticLyricHelper].Alpha * alpha);
|
||||
_Statics[_StaticLyricHelper].Color.R,
|
||||
_Statics[_StaticLyricHelper].Color.G,
|
||||
_Statics[_StaticLyricHelper].Color.B,
|
||||
_Statics[_StaticLyricHelper].Color.A * _Statics[_StaticLyricHelper].Alpha * alpha);
|
||||
|
||||
float distance = Lyrics[_LyricMain].GetCurrentLyricPosX() - rect.X - rect.W;
|
||||
CDraw.DrawTexture(Statics[_StaticLyricHelper].Texture,
|
||||
float distance = _Lyrics[_LyricMain].GetCurrentLyricPosX() - rect.X - rect.W;
|
||||
CDraw.DrawTexture(_Statics[_StaticLyricHelper].Texture,
|
||||
new SRectF(rect.X + distance * (1f - time / totaltime), rect.Y, rect.W, rect.H, rect.Z), color);
|
||||
|
||||
if (Statics[_StaticLyricsTop].Visible)
|
||||
if (_Statics[_StaticLyricsTop].Visible)
|
||||
{
|
||||
rect = Statics[_StaticLyricHelperTop].Rect;
|
||||
rect = _Statics[_StaticLyricHelperTop].Rect;
|
||||
color = new SColorF(
|
||||
Statics[_StaticLyricHelperTop].Color.R,
|
||||
Statics[_StaticLyricHelperTop].Color.G,
|
||||
Statics[_StaticLyricHelperTop].Color.B,
|
||||
Statics[_StaticLyricHelperTop].Color.A * Statics[_StaticLyricHelper].Alpha * alpha);
|
||||
_Statics[_StaticLyricHelperTop].Color.R,
|
||||
_Statics[_StaticLyricHelperTop].Color.G,
|
||||
_Statics[_StaticLyricHelperTop].Color.B,
|
||||
_Statics[_StaticLyricHelperTop].Color.A * _Statics[_StaticLyricHelper].Alpha * alpha);
|
||||
|
||||
distance = Lyrics[_LyricMainTop].GetCurrentLyricPosX() - rect.X - rect.W;
|
||||
CDraw.DrawTexture(Statics[_StaticLyricHelperTop].Texture,
|
||||
distance = _Lyrics[_LyricMainTop].GetCurrentLyricPosX() - rect.X - rect.W;
|
||||
CDraw.DrawTexture(_Statics[_StaticLyricHelperTop].Texture,
|
||||
new SRectF(rect.X + distance * (1f - time / totaltime), rect.Y, rect.W, rect.H, rect.Z), color);
|
||||
}
|
||||
}
|
||||
@@ -1020,16 +1020,16 @@ namespace Vocaluxe.Screens
|
||||
if (time > totaltime)
|
||||
time = totaltime;
|
||||
|
||||
SRectF rect = Statics[_StaticLyricHelperDuet].Rect;
|
||||
SRectF rect = _Statics[_StaticLyricHelperDuet].Rect;
|
||||
|
||||
SColorF color = new SColorF(
|
||||
Statics[_StaticLyricHelperDuet].Color.R,
|
||||
Statics[_StaticLyricHelperDuet].Color.G,
|
||||
Statics[_StaticLyricHelperDuet].Color.B,
|
||||
Statics[_StaticLyricHelperDuet].Color.A * Statics[_StaticLyricHelperDuet].Alpha * alpha);
|
||||
_Statics[_StaticLyricHelperDuet].Color.R,
|
||||
_Statics[_StaticLyricHelperDuet].Color.G,
|
||||
_Statics[_StaticLyricHelperDuet].Color.B,
|
||||
_Statics[_StaticLyricHelperDuet].Color.A * _Statics[_StaticLyricHelperDuet].Alpha * alpha);
|
||||
|
||||
float distance = Lyrics[_LyricMainDuet].GetCurrentLyricPosX() - rect.X - rect.W;
|
||||
CDraw.DrawTexture(Statics[_StaticLyricHelperDuet].Texture,
|
||||
float distance = _Lyrics[_LyricMainDuet].GetCurrentLyricPosX() - rect.X - rect.W;
|
||||
CDraw.DrawTexture(_Statics[_StaticLyricHelperDuet].Texture,
|
||||
new SRectF(rect.X + distance * (1f - time / totaltime), rect.Y, rect.W, rect.H, rect.Z),
|
||||
color);
|
||||
}
|
||||
@@ -1121,8 +1121,7 @@ namespace Vocaluxe.Screens
|
||||
// sub
|
||||
if (currentLineSub < line.Length - 2)
|
||||
{
|
||||
float diff = 0f;
|
||||
diff = CGame.GetTimeFromBeats(line[currentLineSub + 1].FirstNoteBeat, song.BPM) - currentTime;
|
||||
float diff = CGame.GetTimeFromBeats(line[currentLineSub + 1].FirstNoteBeat, song.BPM) - currentTime;
|
||||
|
||||
if (diff > dt)
|
||||
alpha[i * 2 + 1] = 1f - (diff - dt) / rt;
|
||||
@@ -1140,36 +1139,36 @@ namespace Vocaluxe.Screens
|
||||
|
||||
private void _UpdateSongText()
|
||||
{
|
||||
if (_TimerSongText.IsRunning && !Lyrics[_LyricMainDuet].Visible && !Lyrics[_LyricMainTop].Visible)
|
||||
if (_TimerSongText.IsRunning && !_Lyrics[_LyricMainDuet].Visible && !_Lyrics[_LyricMainTop].Visible)
|
||||
{
|
||||
float t = _TimerSongText.ElapsedMilliseconds / 1000f;
|
||||
if (t < 10f)
|
||||
{
|
||||
Statics[_StaticSongText].Visible = true;
|
||||
Texts[_TextSongName].Visible = true;
|
||||
_Statics[_StaticSongText].Visible = true;
|
||||
_Texts[_TextSongName].Visible = true;
|
||||
|
||||
if (t < 7f)
|
||||
{
|
||||
Statics[_StaticSongText].Color.A = 1f;
|
||||
Texts[_TextSongName].Color.A = 1f;
|
||||
_Statics[_StaticSongText].Color.A = 1f;
|
||||
_Texts[_TextSongName].Color.A = 1f;
|
||||
}
|
||||
else
|
||||
{
|
||||
Statics[_StaticSongText].Color.A = (3f - (t - 7f)) / 3f;
|
||||
Texts[_TextSongName].Color.A = (3f - (t - 7f)) / 3f;
|
||||
_Statics[_StaticSongText].Color.A = (3f - (t - 7f)) / 3f;
|
||||
_Texts[_TextSongName].Color.A = (3f - (t - 7f)) / 3f;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Statics[_StaticSongText].Visible = false;
|
||||
Texts[_TextSongName].Visible = false;
|
||||
_Statics[_StaticSongText].Visible = false;
|
||||
_Texts[_TextSongName].Visible = false;
|
||||
_TimerSongText.Stop();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Statics[_StaticSongText].Visible = false;
|
||||
Texts[_TextSongName].Visible = false;
|
||||
_Statics[_StaticSongText].Visible = false;
|
||||
_Texts[_TextSongName].Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1183,50 +1182,50 @@ namespace Vocaluxe.Screens
|
||||
float t = _TimerDuetText1.ElapsedMilliseconds / 1000f;
|
||||
if (t < 10f)
|
||||
{
|
||||
Texts[_TextDuetName1].Visible = true;
|
||||
_Texts[_TextDuetName1].Visible = true;
|
||||
|
||||
if (t < 3f)
|
||||
Texts[_TextDuetName1].Color.A = (3f - (3f - t)) / 3f;
|
||||
_Texts[_TextDuetName1].Color.A = (3f - (3f - t)) / 3f;
|
||||
else if (t < 7f)
|
||||
Texts[_TextDuetName1].Color.A = 1f;
|
||||
_Texts[_TextDuetName1].Color.A = 1f;
|
||||
else
|
||||
Texts[_TextDuetName1].Color.A = (3f - (t - 7f)) / 3f;
|
||||
_Texts[_TextDuetName1].Color.A = (3f - (t - 7f)) / 3f;
|
||||
}
|
||||
else
|
||||
{
|
||||
Texts[_TextDuetName1].Visible = false;
|
||||
_Texts[_TextDuetName1].Visible = false;
|
||||
_TimerDuetText1.Stop();
|
||||
}
|
||||
}
|
||||
else if (!_TimerDuetText1.IsRunning && _TimerDuetText1.ElapsedMilliseconds == 0 && Lyrics[_LyricMainDuet].Alpha > 0 && CGame.GetSong().IsDuet)
|
||||
else if (!_TimerDuetText1.IsRunning && _TimerDuetText1.ElapsedMilliseconds == 0 && _Lyrics[_LyricMainDuet].Alpha > 0 && CGame.GetSong().IsDuet)
|
||||
_TimerDuetText1.Start();
|
||||
else
|
||||
Texts[_TextDuetName1].Visible = false;
|
||||
_Texts[_TextDuetName1].Visible = false;
|
||||
//Timer for second duet-part
|
||||
if (_TimerDuetText2.IsRunning)
|
||||
{
|
||||
float t = _TimerDuetText2.ElapsedMilliseconds / 1000f;
|
||||
if (t < 10f)
|
||||
{
|
||||
Texts[_TextDuetName2].Visible = true;
|
||||
_Texts[_TextDuetName2].Visible = true;
|
||||
|
||||
if (t < 3f)
|
||||
Texts[_TextDuetName2].Color.A = (3f - (3f - t)) / 3f;
|
||||
_Texts[_TextDuetName2].Color.A = (3f - (3f - t)) / 3f;
|
||||
else if (t < 7f)
|
||||
Texts[_TextDuetName2].Color.A = 1f;
|
||||
_Texts[_TextDuetName2].Color.A = 1f;
|
||||
else
|
||||
Texts[_TextDuetName2].Color.A = (3f - (t - 7f)) / 3f;
|
||||
_Texts[_TextDuetName2].Color.A = (3f - (t - 7f)) / 3f;
|
||||
}
|
||||
else
|
||||
{
|
||||
Texts[_TextDuetName2].Visible = false;
|
||||
_Texts[_TextDuetName2].Visible = false;
|
||||
_TimerDuetText2.Stop();
|
||||
}
|
||||
}
|
||||
else if (!_TimerDuetText2.IsRunning && _TimerDuetText2.ElapsedMilliseconds == 0 && Lyrics[_LyricMain].Alpha > 0 && CGame.GetSong().IsDuet)
|
||||
else if (!_TimerDuetText2.IsRunning && _TimerDuetText2.ElapsedMilliseconds == 0 && _Lyrics[_LyricMain].Alpha > 0 && CGame.GetSong().IsDuet)
|
||||
_TimerDuetText2.Start();
|
||||
else
|
||||
Texts[_TextDuetName2].Visible = false;
|
||||
_Texts[_TextDuetName2].Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1253,19 +1252,19 @@ namespace Vocaluxe.Screens
|
||||
case ETimerMode.TR_CONFIG_TIMERMODE_CURRENT:
|
||||
int min = (int)Math.Floor(currentTime / 60f);
|
||||
int sec = (int)(currentTime - min * 60f);
|
||||
Texts[_TextTime].Text = min.ToString("00") + ":" + sec.ToString("00");
|
||||
_Texts[_TextTime].Text = min.ToString("00") + ":" + sec.ToString("00");
|
||||
break;
|
||||
|
||||
case ETimerMode.TR_CONFIG_TIMERMODE_REMAINING:
|
||||
min = (int)Math.Floor(remainingTime / 60f);
|
||||
sec = (int)(remainingTime - min * 60f);
|
||||
Texts[_TextTime].Text = "-" + min.ToString("00") + ":" + sec.ToString("00");
|
||||
_Texts[_TextTime].Text = "-" + min.ToString("00") + ":" + sec.ToString("00");
|
||||
break;
|
||||
|
||||
case ETimerMode.TR_CONFIG_TIMERMODE_TOTAL:
|
||||
min = (int)Math.Floor(totalTime / 60f);
|
||||
sec = (int)(totalTime - min * 60f);
|
||||
Texts[_TextTime].Text = "#" + min.ToString("00") + ":" + sec.ToString("00");
|
||||
_Texts[_TextTime].Text = "#" + min.ToString("00") + ":" + sec.ToString("00");
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1273,43 +1272,43 @@ namespace Vocaluxe.Screens
|
||||
switch (CConfig.TimerLook)
|
||||
{
|
||||
case ETimerLook.TR_CONFIG_TIMERLOOK_NORMAL:
|
||||
_TimeLineRect.W = Statics[_StaticTimeLine].Rect.W * (currentTime / totalTime);
|
||||
_TimeLineRect.W = _Statics[_StaticTimeLine].Rect.W * (currentTime / totalTime);
|
||||
break;
|
||||
|
||||
case ETimerLook.TR_CONFIG_TIMERLOOK_EXPANDED:
|
||||
CStatic stat = Statics[_StaticTimeLine];
|
||||
CStatic stat = _Statics[_StaticTimeLine];
|
||||
int currentBeat = CGame.CurrentBeat;
|
||||
for (int i = 0; i < _TimeRects.Count; i++)
|
||||
{
|
||||
if (currentBeat >= _TimeRects[i].StartBeat && currentBeat <= _TimeRects[i].EndBeat)
|
||||
{
|
||||
_TimeRects[i].Rect.Texture = Statics[_StaticTimeLineExpandedHighlighted].Texture;
|
||||
_TimeRects[i].Rect.Color = Statics[_StaticTimeLineExpandedHighlighted].Color;
|
||||
_TimeRects[i].Rect.Texture = _Statics[_StaticTimeLineExpandedHighlighted].Texture;
|
||||
_TimeRects[i].Rect.Color = _Statics[_StaticTimeLineExpandedHighlighted].Color;
|
||||
}
|
||||
else
|
||||
{
|
||||
_TimeRects[i].Rect.Texture = Statics[_StaticTimeLineExpandedNormal].Texture;
|
||||
_TimeRects[i].Rect.Color = Statics[_StaticTimeLineExpandedNormal].Color;
|
||||
_TimeRects[i].Rect.Texture = _Statics[_StaticTimeLineExpandedNormal].Texture;
|
||||
_TimeRects[i].Rect.Color = _Statics[_StaticTimeLineExpandedNormal].Color;
|
||||
}
|
||||
}
|
||||
Statics[_StaticTimePointer].Rect.X = stat.Rect.X + stat.Rect.W * (currentTime / totalTime);
|
||||
_Statics[_StaticTimePointer].Rect.X = stat.Rect.X + stat.Rect.W * (currentTime / totalTime);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void _PrepareTimeLine()
|
||||
{
|
||||
CStatic stat = Statics[_StaticTimeLine];
|
||||
CStatic stat = _Statics[_StaticTimeLine];
|
||||
switch (CConfig.TimerLook)
|
||||
{
|
||||
case ETimerLook.TR_CONFIG_TIMERLOOK_NORMAL:
|
||||
_TimeLineRect = new SRectF(stat.Rect.X, stat.Rect.Y, 0f, stat.Rect.H, stat.Rect.Z);
|
||||
Statics[_StaticTimePointer].Visible = false;
|
||||
_Statics[_StaticTimePointer].Visible = false;
|
||||
break;
|
||||
|
||||
case ETimerLook.TR_CONFIG_TIMERLOOK_EXPANDED:
|
||||
_TimeRects.Clear();
|
||||
Statics[_StaticTimePointer].Visible = true;
|
||||
_Statics[_StaticTimePointer].Visible = true;
|
||||
|
||||
CSong song = CGame.GetSong();
|
||||
|
||||
@@ -1325,18 +1324,14 @@ namespace Vocaluxe.Screens
|
||||
if (totalTime <= 0f)
|
||||
return;
|
||||
|
||||
CLines[] lines = new CLines[song.Notes.Lines.Length];
|
||||
lines = song.Notes.Lines;
|
||||
for (int i = 0; i < lines.Length; i++)
|
||||
{
|
||||
CLine[] line = lines[i].Line;
|
||||
CLines[] partLines = song.Notes.Lines;
|
||||
foreach (CLines partLine in partLines) {
|
||||
CLine[] line = partLine.Line;
|
||||
for (int j = 0; j < line.Length; j++)
|
||||
{
|
||||
if (line[j].VisibleInTimeLine)
|
||||
{
|
||||
STimeRect trect = new STimeRect();
|
||||
trect.StartBeat = line[j].FirstNoteBeat;
|
||||
trect.EndBeat = line[j].EndBeat;
|
||||
STimeRect trect = new STimeRect {StartBeat = line[j].FirstNoteBeat, EndBeat = line[j].EndBeat};
|
||||
trect.Rect = GetNewStatic(new STexture(-1),
|
||||
new SColorF(1f, 1f, 1f, 1f),
|
||||
new SRectF(
|
||||
@@ -1359,9 +1354,9 @@ namespace Vocaluxe.Screens
|
||||
for (int i = 0; i < CGame.NumPlayer; i++)
|
||||
{
|
||||
if (CGame.Player[i].ProfileID > -1 && CProfiles.NumProfiles > CGame.Player[i].ProfileID)
|
||||
Statics[_StaticAvatars[i, CGame.NumPlayer - 1]].Texture = CProfiles.Profiles[CGame.Player[i].ProfileID].Avatar.Texture;
|
||||
_Statics[_StaticAvatars[i, CGame.NumPlayer - 1]].Texture = CProfiles.Profiles[CGame.Player[i].ProfileID].Avatar.Texture;
|
||||
else
|
||||
Statics[_StaticAvatars[i, CGame.NumPlayer - 1]].Visible = false;
|
||||
_Statics[_StaticAvatars[i, CGame.NumPlayer - 1]].Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1370,9 +1365,9 @@ namespace Vocaluxe.Screens
|
||||
for (int i = 0; i < CGame.NumPlayer; i++)
|
||||
{
|
||||
if (CGame.Player[i].ProfileID > -1 && CProfiles.NumProfiles > CGame.Player[i].ProfileID)
|
||||
Texts[_TextNames[i, CGame.NumPlayer - 1]].Text = CProfiles.Profiles[CGame.Player[i].ProfileID].PlayerName;
|
||||
_Texts[_TextNames[i, CGame.NumPlayer - 1]].Text = CProfiles.Profiles[CGame.Player[i].ProfileID].PlayerName;
|
||||
else
|
||||
Texts[_TextNames[i, CGame.NumPlayer - 1]].Visible = false;
|
||||
_Texts[_TextNames[i, CGame.NumPlayer - 1]].Visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+216
-216
@@ -140,11 +140,11 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
base.LoadTheme(xmlPath);
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
Playlists[_Playlist].Visible = false;
|
||||
_Playlists[_Playlist].Visible = false;
|
||||
|
||||
_DragAndDropCover = GetNewStatic();
|
||||
|
||||
Playlists[_Playlist].Init();
|
||||
_Playlists[_Playlist].Init();
|
||||
|
||||
_AvailableGameModes.Clear();
|
||||
|
||||
@@ -159,7 +159,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
if (_PlaylistActive)
|
||||
{
|
||||
Playlists[_Playlist].HandleInput(keyEvent);
|
||||
_Playlists[_Playlist].HandleInput(keyEvent);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -177,7 +177,7 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
else
|
||||
{
|
||||
SongMenus[_SongMenu].HandleInput(ref keyEvent, _Sso);
|
||||
_SongMenus[_SongMenu].HandleInput(ref keyEvent, _Sso);
|
||||
_UpdatePartyModeOptions();
|
||||
|
||||
if (keyEvent.Handled)
|
||||
@@ -203,19 +203,19 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (i < _Sso.Selection.NumJokers.Length)
|
||||
{
|
||||
if (Buttons[_ButtonsJoker[i]].Selected)
|
||||
if (_Buttons[_ButtonsJoker[i]].Selected)
|
||||
{
|
||||
_SelectNextRandom(i);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (Buttons[_ButtonStart].Selected)
|
||||
_HandlePartySongSelection(SongMenus[_SongMenu].GetSelectedSong());
|
||||
if (_Buttons[_ButtonStart].Selected)
|
||||
_HandlePartySongSelection(_SongMenus[_SongMenu].GetSelectedSong());
|
||||
}
|
||||
if (CSongs.NumVisibleSongs > 0 && !_Sso.Selection.PartyMode)
|
||||
{
|
||||
if (SongMenus[_SongMenu].GetSelectedSong() != -1 && !_SongOptionsActive)
|
||||
if (_SongMenus[_SongMenu].GetSelectedSong() != -1 && !_SongOptionsActive)
|
||||
{
|
||||
if (!_Sso.Selection.PartyMode)
|
||||
_ToggleSongOptions(ESongOptionsView.Song);
|
||||
@@ -224,11 +224,11 @@ namespace Vocaluxe.Screens
|
||||
break;
|
||||
|
||||
case Keys.Tab:
|
||||
if (Playlists[_Playlist].Visible)
|
||||
if (_Playlists[_Playlist].Visible)
|
||||
{
|
||||
_PlaylistActive = !_PlaylistActive;
|
||||
Playlists[_Playlist].Selected = _PlaylistActive;
|
||||
SongMenus[_SongMenu].SetActive(!_PlaylistActive);
|
||||
_Playlists[_Playlist].Selected = _PlaylistActive;
|
||||
_SongMenus[_SongMenu].SetActive(!_PlaylistActive);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -277,7 +277,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
case Keys.S:
|
||||
if (keyEvent.Mod == EModifier.Ctrl && CSongs.NumVisibleSongs > 0 && !_Sso.Selection.PartyMode)
|
||||
_StartMedleySong(SongMenus[_SongMenu].GetSelectedSong());
|
||||
_StartMedleySong(_SongMenus[_SongMenu].GetSelectedSong());
|
||||
break;
|
||||
|
||||
case Keys.D1:
|
||||
@@ -312,39 +312,39 @@ namespace Vocaluxe.Screens
|
||||
switch (keyEvent.Key)
|
||||
{
|
||||
case Keys.Enter:
|
||||
if (Buttons[_ButtonOptionsClose].Selected)
|
||||
if (_Buttons[_ButtonOptionsClose].Selected)
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
else if (Buttons[_ButtonOptionsSing].Selected)
|
||||
else if (_Buttons[_ButtonOptionsSing].Selected)
|
||||
{
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
_StartSong(SongMenus[_SongMenu].GetSelectedSong());
|
||||
_StartSong(_SongMenus[_SongMenu].GetSelectedSong());
|
||||
}
|
||||
else if (Buttons[_ButtonOptionsPlaylist].Selected)
|
||||
else if (_Buttons[_ButtonOptionsPlaylist].Selected)
|
||||
{
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
_OpenAndAddPlaylistAction();
|
||||
}
|
||||
else if (Buttons[_ButtonOptionsRandom].Selected)
|
||||
else if (_Buttons[_ButtonOptionsRandom].Selected)
|
||||
{
|
||||
if (CSongs.IsInCategory)
|
||||
SongMenus[_SongMenu].SetSelectedSong(CSongs.GetRandomSong());
|
||||
_SongMenus[_SongMenu].SetSelectedSong(CSongs.GetRandomSong());
|
||||
else
|
||||
SongMenus[_SongMenu].SetSelectedCategory(CSongs.GetRandomCategory());
|
||||
_SongMenus[_SongMenu].SetSelectedCategory(CSongs.GetRandomCategory());
|
||||
}
|
||||
else if (Buttons[_ButtonOptionsSingAll].Selected)
|
||||
else if (_Buttons[_ButtonOptionsSingAll].Selected)
|
||||
_StartRandomAllSongs();
|
||||
else if (Buttons[_ButtonOptionsSingAllVisible].Selected)
|
||||
else if (_Buttons[_ButtonOptionsSingAllVisible].Selected)
|
||||
_StartRandomVisibleSongs();
|
||||
else if (Buttons[_ButtonOptionsOpenSelectedItem].Selected)
|
||||
else if (_Buttons[_ButtonOptionsOpenSelectedItem].Selected)
|
||||
_HandleSelectButton();
|
||||
else if (SelectSlides[_SelectSlideOptionsPlaylistOpen].Selected)
|
||||
else if (_SelectSlides[_SelectSlideOptionsPlaylistOpen].Selected)
|
||||
_OpenPlaylistAction();
|
||||
else if (Buttons[_ButtonOptionsRandomMedley].Selected)
|
||||
else if (_Buttons[_ButtonOptionsRandomMedley].Selected)
|
||||
_ToggleSongOptions(ESongOptionsView.Medley);
|
||||
else if (Buttons[_ButtonOptionsStartMedley].Selected)
|
||||
else if (_Buttons[_ButtonOptionsStartMedley].Selected)
|
||||
{
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
_StartRandomMedley(SelectSlides[_SelectSlideOptionsNumMedleySongs].Selection + 1, !CSongs.IsInCategory);
|
||||
_StartRandomMedley(_SelectSlides[_SelectSlideOptionsNumMedleySongs].Selection + 1, !CSongs.IsInCategory);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -388,24 +388,24 @@ namespace Vocaluxe.Screens
|
||||
_OldMousePosX = mouseEvent.X;
|
||||
_OldMousePosY = mouseEvent.Y;
|
||||
|
||||
if (Playlists[_Playlist].Visible && Playlists[_Playlist].IsMouseOver(mouseEvent))
|
||||
if (_Playlists[_Playlist].Visible && _Playlists[_Playlist].IsMouseOver(mouseEvent))
|
||||
{
|
||||
_PlaylistActive = true;
|
||||
Playlists[_Playlist].Selected = _PlaylistActive;
|
||||
SongMenus[_SongMenu].SetActive(!_PlaylistActive);
|
||||
_Playlists[_Playlist].Selected = _PlaylistActive;
|
||||
_SongMenus[_SongMenu].SetActive(!_PlaylistActive);
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
}
|
||||
else if (CHelper.IsInBounds(SongMenus[_SongMenu].Rect, mouseEvent.X, mouseEvent.Y))
|
||||
else if (CHelper.IsInBounds(_SongMenus[_SongMenu].Rect, mouseEvent.X, mouseEvent.Y))
|
||||
{
|
||||
_PlaylistActive = false;
|
||||
Playlists[_Playlist].Selected = _PlaylistActive;
|
||||
SongMenus[_SongMenu].SetActive(!_PlaylistActive);
|
||||
_Playlists[_Playlist].Selected = _PlaylistActive;
|
||||
_SongMenus[_SongMenu].SetActive(!_PlaylistActive);
|
||||
}
|
||||
|
||||
|
||||
if (Playlists[_Playlist].Visible && _PlaylistActive)
|
||||
if (_Playlists[_Playlist].Visible && _PlaylistActive)
|
||||
{
|
||||
if (Playlists[_Playlist].HandleMouse(mouseEvent))
|
||||
if (_Playlists[_Playlist].HandleMouse(mouseEvent))
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -440,15 +440,15 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
//TODO: Causes Bug if you select a song (e.g. with Select random song) and double click a normal button.
|
||||
//E.g. clicking to fast on Select random song starts the next random song. is this OK?
|
||||
if (CSongs.NumVisibleSongs > 0 && SongMenus[_SongMenu].GetActualSelection() != -1)
|
||||
if (CSongs.NumVisibleSongs > 0 && _SongMenus[_SongMenu].GetActualSelection() != -1)
|
||||
{
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
_StartVisibleSong(SongMenus[_SongMenu].GetActualSelection());
|
||||
_StartVisibleSong(_SongMenus[_SongMenu].GetActualSelection());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
SongMenus[_SongMenu].HandleMouse(ref mouseEvent, _Sso);
|
||||
_SongMenus[_SongMenu].HandleMouse(ref mouseEvent, _Sso);
|
||||
_UpdatePartyModeOptions();
|
||||
|
||||
if (mouseEvent.Handled)
|
||||
@@ -456,84 +456,84 @@ namespace Vocaluxe.Screens
|
||||
|
||||
if (mouseEvent.LB)
|
||||
{
|
||||
if (IsMouseOver(mouseEvent))
|
||||
if (_IsMouseOver(mouseEvent))
|
||||
{
|
||||
if (Buttons[_ButtonOpenOptions].Selected)
|
||||
if (_Buttons[_ButtonOpenOptions].Selected)
|
||||
{
|
||||
_ToggleSongOptions(ESongOptionsView.General);
|
||||
return true;
|
||||
}
|
||||
else if (Buttons[_ButtonOptionsClose].Selected)
|
||||
else if (_Buttons[_ButtonOptionsClose].Selected)
|
||||
{
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
return true;
|
||||
}
|
||||
else if (Buttons[_ButtonOptionsSing].Selected)
|
||||
else if (_Buttons[_ButtonOptionsSing].Selected)
|
||||
{
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
_StartSong(SongMenus[_SongMenu].GetSelectedSong());
|
||||
_StartSong(_SongMenus[_SongMenu].GetSelectedSong());
|
||||
return true;
|
||||
}
|
||||
else if (Buttons[_ButtonOptionsPlaylist].Selected)
|
||||
else if (_Buttons[_ButtonOptionsPlaylist].Selected)
|
||||
{
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
_OpenAndAddPlaylistAction();
|
||||
return true;
|
||||
}
|
||||
else if (Buttons[_ButtonOptionsRandom].Selected)
|
||||
else if (_Buttons[_ButtonOptionsRandom].Selected)
|
||||
{
|
||||
if (CSongs.IsInCategory)
|
||||
{
|
||||
SongMenus[_SongMenu].SetSelectedSong(CSongs.GetRandomSong());
|
||||
_SongMenus[_SongMenu].SetSelectedSong(CSongs.GetRandomSong());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (Buttons[_ButtonOptionsRandomCategory].Selected)
|
||||
else if (_Buttons[_ButtonOptionsRandomCategory].Selected)
|
||||
{
|
||||
if (!CSongs.IsInCategory)
|
||||
{
|
||||
SongMenus[_SongMenu].SetSelectedCategory(CSongs.GetRandomCategory());
|
||||
_SongMenus[_SongMenu].SetSelectedCategory(CSongs.GetRandomCategory());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (Buttons[_ButtonOptionsSingAll].Selected)
|
||||
else if (_Buttons[_ButtonOptionsSingAll].Selected)
|
||||
{
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
_StartRandomAllSongs();
|
||||
return true;
|
||||
}
|
||||
else if (Buttons[_ButtonOptionsSingAllVisible].Selected)
|
||||
else if (_Buttons[_ButtonOptionsSingAllVisible].Selected)
|
||||
{
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
_StartRandomVisibleSongs();
|
||||
return true;
|
||||
}
|
||||
else if (Buttons[_ButtonOptionsOpenSelectedItem].Selected)
|
||||
else if (_Buttons[_ButtonOptionsOpenSelectedItem].Selected)
|
||||
{
|
||||
_HandleSelectButton();
|
||||
return true;
|
||||
}
|
||||
else if (SelectSlides[_SelectSlideOptionsPlaylistOpen].ValueSelected)
|
||||
else if (_SelectSlides[_SelectSlideOptionsPlaylistOpen].ValueSelected)
|
||||
{
|
||||
_OpenPlaylistAction();
|
||||
return true;
|
||||
}
|
||||
else if (Buttons[_ButtonOptionsRandomMedley].Selected)
|
||||
else if (_Buttons[_ButtonOptionsRandomMedley].Selected)
|
||||
{
|
||||
_ToggleSongOptions(ESongOptionsView.Medley);
|
||||
return true;
|
||||
}
|
||||
else if (Buttons[_ButtonOptionsStartMedley].Selected)
|
||||
else if (_Buttons[_ButtonOptionsStartMedley].Selected)
|
||||
{
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
_StartRandomMedley(SelectSlides[_SelectSlideOptionsNumMedleySongs].Selection + 1, !CSongs.IsInCategory);
|
||||
_StartRandomMedley(_SelectSlides[_SelectSlideOptionsNumMedleySongs].Selection + 1, !CSongs.IsInCategory);
|
||||
return true;
|
||||
}
|
||||
else if (_Sso.Selection.RandomOnly && _Sso.Selection.NumJokers != null)
|
||||
{
|
||||
if (Buttons[_ButtonStart].Selected)
|
||||
if (_Buttons[_ButtonStart].Selected)
|
||||
{
|
||||
_HandlePartySongSelection(SongMenus[_SongMenu].GetSelectedSong());
|
||||
_HandlePartySongSelection(_SongMenus[_SongMenu].GetSelectedSong());
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -541,7 +541,7 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (i < _Sso.Selection.NumJokers.Length)
|
||||
{
|
||||
if (Buttons[_ButtonsJoker[i]].Selected)
|
||||
if (_Buttons[_ButtonsJoker[i]].Selected)
|
||||
{
|
||||
_SelectNextRandom(i);
|
||||
return true;
|
||||
@@ -551,9 +551,9 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
}
|
||||
|
||||
if (CSongs.NumVisibleSongs > 0 && SongMenus[_SongMenu].GetActualSelection() != -1 && !_Sso.Selection.PartyMode)
|
||||
if (CSongs.NumVisibleSongs > 0 && _SongMenus[_SongMenu].GetActualSelection() != -1 && !_Sso.Selection.PartyMode)
|
||||
{
|
||||
if (SongMenus[_SongMenu].GetSelectedSong() != -1 && !_SongOptionsActive)
|
||||
if (_SongMenus[_SongMenu].GetSelectedSong() != -1 && !_SongOptionsActive)
|
||||
{
|
||||
_ToggleSongOptions(ESongOptionsView.Song);
|
||||
return true;
|
||||
@@ -568,11 +568,11 @@ namespace Vocaluxe.Screens
|
||||
|
||||
if (mouseEvent.LBH)
|
||||
{
|
||||
if (!_DragAndDropActive && Playlists[_Playlist].Visible && CSongs.NumVisibleSongs > 0 && SongMenus[_SongMenu].GetActualSelection() != -1)
|
||||
if (!_DragAndDropActive && _Playlists[_Playlist].Visible && CSongs.NumVisibleSongs > 0 && _SongMenus[_SongMenu].GetActualSelection() != -1)
|
||||
{
|
||||
_DragAndDropCover = SongMenus[_SongMenu].GetSelectedSongCover();
|
||||
_DragAndDropCover = _SongMenus[_SongMenu].GetSelectedSongCover();
|
||||
_DragAndDropCover.Rect.Z = CSettings.ZNear;
|
||||
Playlists[_Playlist].DragAndDropSongID = CSongs.VisibleSongs[SongMenus[_SongMenu].GetActualSelection()].ID;
|
||||
_Playlists[_Playlist].DragAndDropSongID = CSongs.VisibleSongs[_SongMenus[_SongMenu].GetActualSelection()].ID;
|
||||
_DragAndDropActive = true;
|
||||
return true;
|
||||
}
|
||||
@@ -582,7 +582,7 @@ namespace Vocaluxe.Screens
|
||||
if (!mouseEvent.LBH && _DragAndDropActive)
|
||||
{
|
||||
_DragAndDropActive = false;
|
||||
Playlists[_Playlist].DragAndDropSongID = -1;
|
||||
_Playlists[_Playlist].DragAndDropSongID = -1;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -599,7 +599,7 @@ namespace Vocaluxe.Screens
|
||||
else if (_Sso.Selection.CategoryChangeAllowed)
|
||||
{
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
SongMenus[_SongMenu].EnterCurrentCategory();
|
||||
_SongMenus[_SongMenu].EnterCurrentCategory();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -616,7 +616,7 @@ namespace Vocaluxe.Screens
|
||||
_SearchText = _Sso.Sorting.SearchString;
|
||||
|
||||
CGame.EnterNormalGame();
|
||||
SongMenus[_SongMenu].OnShow();
|
||||
_SongMenus[_SongMenu].OnShow();
|
||||
|
||||
if (_Sso.Selection.PartyMode)
|
||||
_PlaylistActive = false;
|
||||
@@ -624,52 +624,52 @@ namespace Vocaluxe.Screens
|
||||
if (_Sso.Selection.PartyMode)
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
|
||||
SongMenus[_SongMenu].SetActive(!_PlaylistActive);
|
||||
SongMenus[_SongMenu].SetSmallView(Playlists[_Playlist].Visible);
|
||||
_SongMenus[_SongMenu].SetActive(!_PlaylistActive);
|
||||
_SongMenus[_SongMenu].SetSmallView(_Playlists[_Playlist].Visible);
|
||||
|
||||
if (Playlists[_Playlist].ActivePlaylistID != -1)
|
||||
Playlists[_Playlist].LoadPlaylist(Playlists[_Playlist].ActivePlaylistID);
|
||||
if (_Playlists[_Playlist].ActivePlaylistID != -1)
|
||||
_Playlists[_Playlist].LoadPlaylist(_Playlists[_Playlist].ActivePlaylistID);
|
||||
|
||||
_DragAndDropActive = false;
|
||||
Playlists[_Playlist].DragAndDropSongID = -1;
|
||||
_Playlists[_Playlist].DragAndDropSongID = -1;
|
||||
|
||||
UpdateGame();
|
||||
}
|
||||
|
||||
public override bool UpdateGame()
|
||||
{
|
||||
if (SongMenus[_SongMenu].IsSmallView())
|
||||
if (_SongMenus[_SongMenu].IsSmallView())
|
||||
CheckPlaylist();
|
||||
|
||||
Texts[_TextCategory].Text = CSongs.GetCurrentCategoryName();
|
||||
_Texts[_TextCategory].Text = CSongs.GetCurrentCategoryName();
|
||||
|
||||
if (CSongs.Category > -1 || CConfig.Tabs == EOffOn.TR_CONFIG_OFF)
|
||||
CBackgroundMusic.Disabled = true;
|
||||
else
|
||||
CBackgroundMusic.Disabled = false;
|
||||
|
||||
int song = SongMenus[_SongMenu].GetActualSelection();
|
||||
int song = _SongMenus[_SongMenu].GetActualSelection();
|
||||
if ((CSongs.Category >= 0 || CConfig.Tabs == EOffOn.TR_CONFIG_OFF) && song >= 0 && song < CSongs.VisibleSongs.Length)
|
||||
Texts[_TextSelection].Text = CSongs.VisibleSongs[song].Artist + " - " + CSongs.VisibleSongs[song].Title;
|
||||
_Texts[_TextSelection].Text = CSongs.VisibleSongs[song].Artist + " - " + CSongs.VisibleSongs[song].Title;
|
||||
else if (!CSongs.IsInCategory && song >= 0 && song < CSongs.Categories.Length)
|
||||
Texts[_TextSelection].Text = CSongs.Categories[song].Name;
|
||||
_Texts[_TextSelection].Text = CSongs.Categories[song].Name;
|
||||
else
|
||||
Texts[_TextSelection].Text = String.Empty;
|
||||
_Texts[_TextSelection].Text = String.Empty;
|
||||
|
||||
Texts[_TextSearchBar].Text = _SearchText;
|
||||
_Texts[_TextSearchBar].Text = _SearchText;
|
||||
if (_SearchActive)
|
||||
{
|
||||
Texts[_TextSearchBar].Text += '|';
|
||||
_Texts[_TextSearchBar].Text += '|';
|
||||
|
||||
Texts[_TextSearchBar].Visible = true;
|
||||
Texts[_TextSearchBarTitle].Visible = true;
|
||||
Statics[_StaticSearchBar].Visible = true;
|
||||
_Texts[_TextSearchBar].Visible = true;
|
||||
_Texts[_TextSearchBarTitle].Visible = true;
|
||||
_Statics[_StaticSearchBar].Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Texts[_TextSearchBar].Visible = false;
|
||||
Texts[_TextSearchBarTitle].Visible = false;
|
||||
Statics[_StaticSearchBar].Visible = false;
|
||||
_Texts[_TextSearchBar].Visible = false;
|
||||
_Texts[_TextSearchBarTitle].Visible = false;
|
||||
_Statics[_StaticSearchBar].Visible = false;
|
||||
}
|
||||
|
||||
_UpdatePartyModeOptions();
|
||||
@@ -691,12 +691,12 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
base.OnClose();
|
||||
CBackgroundMusic.Disabled = false;
|
||||
SongMenus[_SongMenu].OnHide();
|
||||
_SongMenus[_SongMenu].OnHide();
|
||||
}
|
||||
|
||||
public override void ApplyVolume()
|
||||
{
|
||||
SongMenus[_SongMenu].ApplyVolume(CConfig.PreviewMusicVolume);
|
||||
_SongMenus[_SongMenu].ApplyVolume(CConfig.PreviewMusicVolume);
|
||||
}
|
||||
|
||||
private void _HandlePartySongSelection(int songNr)
|
||||
@@ -723,12 +723,12 @@ namespace Vocaluxe.Screens
|
||||
_SelectNextRandomSong();
|
||||
|
||||
if (_Sso.Selection.SongIndex != -1)
|
||||
SongMenus[_SongMenu].SetSelectedSong(_Sso.Selection.SongIndex);
|
||||
_SongMenus[_SongMenu].SetSelectedSong(_Sso.Selection.SongIndex);
|
||||
}
|
||||
|
||||
if (_SelectedSongID != SongMenus[_SongMenu].GetSelectedSong() && CSongs.Category > -1)
|
||||
if (_SelectedSongID != _SongMenus[_SongMenu].GetSelectedSong() && CSongs.Category > -1)
|
||||
{
|
||||
_SelectedSongID = SongMenus[_SongMenu].GetSelectedSong();
|
||||
_SelectedSongID = _SongMenus[_SongMenu].GetSelectedSong();
|
||||
CParty.OnSongChange(_SelectedSongID, ref _Sso);
|
||||
}
|
||||
|
||||
@@ -745,55 +745,55 @@ namespace Vocaluxe.Screens
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
}
|
||||
|
||||
SongMenus[_SongMenu].Update(_Sso);
|
||||
_SongMenus[_SongMenu].Update(_Sso);
|
||||
|
||||
if (_Sso.Selection.RandomOnly && _Sso.Selection.NumJokers != null)
|
||||
{
|
||||
Buttons[_ButtonStart].Visible = true;
|
||||
_Buttons[_ButtonStart].Visible = true;
|
||||
|
||||
if (!SongMenus[_SongMenu].IsSmallView())
|
||||
SongMenus[_SongMenu].SetSmallView(true);
|
||||
if (!_SongMenus[_SongMenu].IsSmallView())
|
||||
_SongMenus[_SongMenu].SetSmallView(true);
|
||||
|
||||
for (int i = 0; i < CMain.Settings.GetMaxNumPlayer(); i++)
|
||||
{
|
||||
if (i < _Sso.Selection.NumJokers.Length)
|
||||
{
|
||||
Buttons[_ButtonsJoker[i]].Visible = true;
|
||||
Buttons[_ButtonsJoker[i]].Text.Text = _Sso.Selection.NumJokers[i].ToString();
|
||||
Texts[_TextsPlayer[i]].Visible = true;
|
||||
_Buttons[_ButtonsJoker[i]].Visible = true;
|
||||
_Buttons[_ButtonsJoker[i]].Text.Text = _Sso.Selection.NumJokers[i].ToString();
|
||||
_Texts[_TextsPlayer[i]].Visible = true;
|
||||
|
||||
bool nameExists = false;
|
||||
if (_Sso.Selection.TeamNames != null)
|
||||
{
|
||||
if (_Sso.Selection.TeamNames.Length > i)
|
||||
{
|
||||
Texts[_TextsPlayer[i]].Text = _Sso.Selection.TeamNames[i];
|
||||
_Texts[_TextsPlayer[i]].Text = _Sso.Selection.TeamNames[i];
|
||||
nameExists = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!nameExists)
|
||||
Texts[_TextsPlayer[i]].Text = i.ToString();
|
||||
_Texts[_TextsPlayer[i]].Text = i.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
Buttons[_ButtonsJoker[i]].Visible = false;
|
||||
Texts[_TextsPlayer[i]].Visible = false;
|
||||
_Buttons[_ButtonsJoker[i]].Visible = false;
|
||||
_Texts[_TextsPlayer[i]].Visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_Sso.Selection.PartyMode && SongMenus[_SongMenu].IsSmallView())
|
||||
SongMenus[_SongMenu].SetSmallView(false);
|
||||
if (_Sso.Selection.PartyMode && _SongMenus[_SongMenu].IsSmallView())
|
||||
_SongMenus[_SongMenu].SetSmallView(false);
|
||||
|
||||
for (int i = 0; i < CMain.Settings.GetMaxNumPlayer(); i++)
|
||||
{
|
||||
Buttons[_ButtonsJoker[i]].Visible = false;
|
||||
Texts[_TextsPlayer[i]].Visible = false;
|
||||
_Buttons[_ButtonsJoker[i]].Visible = false;
|
||||
_Texts[_TextsPlayer[i]].Visible = false;
|
||||
}
|
||||
|
||||
Buttons[_ButtonStart].Visible = false;
|
||||
_Buttons[_ButtonStart].Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -802,8 +802,8 @@ namespace Vocaluxe.Screens
|
||||
if ((CSongs.Category >= 0) && (songNr >= 0))
|
||||
{
|
||||
EGameMode gm;
|
||||
if (_AvailableGameModes.Count >= SelectSlides[_SelectSlideOptionsMode].Selection)
|
||||
gm = _AvailableGameModes[SelectSlides[_SelectSlideOptionsMode].Selection];
|
||||
if (_AvailableGameModes.Count >= _SelectSlides[_SelectSlideOptionsMode].Selection)
|
||||
gm = _AvailableGameModes[_SelectSlides[_SelectSlideOptionsMode].Selection];
|
||||
else
|
||||
{
|
||||
if (CSongs.VisibleSongs[songNr].IsDuet)
|
||||
@@ -976,7 +976,7 @@ namespace Vocaluxe.Screens
|
||||
if (CSongs.IsInCategory)
|
||||
{
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
SongMenus[_SongMenu].SetSelectedSong(CSongs.GetRandomSong());
|
||||
_SongMenus[_SongMenu].SetSelectedSong(CSongs.GetRandomSong());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -987,7 +987,7 @@ namespace Vocaluxe.Screens
|
||||
if (!CSongs.IsInCategory)
|
||||
{
|
||||
_ToggleSongOptions(ESongOptionsView.None);
|
||||
SongMenus[_SongMenu].SetSelectedCategory(CSongs.GetRandomCategory());
|
||||
_SongMenus[_SongMenu].SetSelectedCategory(CSongs.GetRandomCategory());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -996,7 +996,7 @@ namespace Vocaluxe.Screens
|
||||
private void _JumpTo(char letter)
|
||||
{
|
||||
int start = 0;
|
||||
int curSelected = SongMenus[_SongMenu].GetActualSelection();
|
||||
int curSelected = _SongMenus[_SongMenu].GetActualSelection();
|
||||
if (CSongs.IsInCategory)
|
||||
{
|
||||
//TODO: Check and use sorting method
|
||||
@@ -1012,7 +1012,7 @@ namespace Vocaluxe.Screens
|
||||
if (visibleID < 0 && start > 1)
|
||||
visibleID = Array.FindIndex(songs, 0, start - 1, element => element.Artist.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase));
|
||||
if (visibleID > -1)
|
||||
SongMenus[_SongMenu].SetSelectedSong(visibleID);
|
||||
_SongMenus[_SongMenu].SetSelectedSong(visibleID);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1024,7 +1024,7 @@ namespace Vocaluxe.Screens
|
||||
if (visibleID < 0 && start > 1)
|
||||
visibleID = Array.FindIndex(categories, 0, start - 1, element => element.Name.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase));
|
||||
if (visibleID > -1)
|
||||
SongMenus[_SongMenu].SetSelectedCategory(visibleID);
|
||||
_SongMenus[_SongMenu].SetSelectedCategory(visibleID);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1036,7 +1036,7 @@ namespace Vocaluxe.Screens
|
||||
bool refresh = false;
|
||||
_SearchText = newFilterString;
|
||||
|
||||
int songIndex = SongMenus[_SongMenu].GetSelectedSong();
|
||||
int songIndex = _SongMenus[_SongMenu].GetSelectedSong();
|
||||
int songID = -1;
|
||||
if (songIndex != -1 && CSongs.NumVisibleSongs > 0 && CSongs.NumVisibleSongs > songIndex)
|
||||
songID = CSongs.VisibleSongs[songIndex].ID;
|
||||
@@ -1059,30 +1059,30 @@ namespace Vocaluxe.Screens
|
||||
refresh = true;
|
||||
|
||||
if (refresh)
|
||||
SongMenus[_SongMenu].OnHide();
|
||||
_SongMenus[_SongMenu].OnHide();
|
||||
|
||||
SongMenus[_SongMenu].OnShow();
|
||||
_SongMenus[_SongMenu].OnShow();
|
||||
}
|
||||
|
||||
private void _ToggleSongOptions(ESongOptionsView view)
|
||||
{
|
||||
SelectSlides[_SelectSlideOptionsMode].Visible = false;
|
||||
SelectSlides[_SelectSlideOptionsPlaylistAdd].Visible = false;
|
||||
SelectSlides[_SelectSlideOptionsPlaylistOpen].Visible = false;
|
||||
SelectSlides[_SelectSlideOptionsNumMedleySongs].Visible = false;
|
||||
Buttons[_ButtonOptionsClose].Visible = false;
|
||||
Buttons[_ButtonOptionsSing].Visible = false;
|
||||
Buttons[_ButtonOptionsPlaylist].Visible = false;
|
||||
Buttons[_ButtonOptionsRandom].Visible = false;
|
||||
Buttons[_ButtonOptionsRandomCategory].Visible = false;
|
||||
Buttons[_ButtonOptionsSingAll].Visible = false;
|
||||
Buttons[_ButtonOptionsSingAllVisible].Visible = false;
|
||||
Buttons[_ButtonOptionsOpenSelectedItem].Visible = false;
|
||||
Buttons[_ButtonOptionsRandomMedley].Visible = false;
|
||||
Buttons[_ButtonOptionsStartMedley].Visible = false;
|
||||
Texts[_TextOptionsTitle].Visible = false;
|
||||
Statics[_StaticOptionsBG].Visible = false;
|
||||
Buttons[_ButtonOpenOptions].Visible = true;
|
||||
_SelectSlides[_SelectSlideOptionsMode].Visible = false;
|
||||
_SelectSlides[_SelectSlideOptionsPlaylistAdd].Visible = false;
|
||||
_SelectSlides[_SelectSlideOptionsPlaylistOpen].Visible = false;
|
||||
_SelectSlides[_SelectSlideOptionsNumMedleySongs].Visible = false;
|
||||
_Buttons[_ButtonOptionsClose].Visible = false;
|
||||
_Buttons[_ButtonOptionsSing].Visible = false;
|
||||
_Buttons[_ButtonOptionsPlaylist].Visible = false;
|
||||
_Buttons[_ButtonOptionsRandom].Visible = false;
|
||||
_Buttons[_ButtonOptionsRandomCategory].Visible = false;
|
||||
_Buttons[_ButtonOptionsSingAll].Visible = false;
|
||||
_Buttons[_ButtonOptionsSingAllVisible].Visible = false;
|
||||
_Buttons[_ButtonOptionsOpenSelectedItem].Visible = false;
|
||||
_Buttons[_ButtonOptionsRandomMedley].Visible = false;
|
||||
_Buttons[_ButtonOptionsStartMedley].Visible = false;
|
||||
_Texts[_TextOptionsTitle].Visible = false;
|
||||
_Statics[_StaticOptionsBG].Visible = false;
|
||||
_Buttons[_ButtonOpenOptions].Visible = true;
|
||||
|
||||
_SongOptionsActive = view != ESongOptionsView.None;
|
||||
|
||||
@@ -1091,10 +1091,10 @@ namespace Vocaluxe.Screens
|
||||
//Has to be done here otherwhise changed playlist names will not appear until OnShow is called!
|
||||
_UpdatePlaylistNames();
|
||||
|
||||
Texts[_TextOptionsTitle].Visible = true;
|
||||
Buttons[_ButtonOptionsClose].Visible = true;
|
||||
Statics[_StaticOptionsBG].Visible = true;
|
||||
Buttons[_ButtonOpenOptions].Visible = false;
|
||||
_Texts[_TextOptionsTitle].Visible = true;
|
||||
_Buttons[_ButtonOptionsClose].Visible = true;
|
||||
_Statics[_StaticOptionsBG].Visible = true;
|
||||
_Buttons[_ButtonOpenOptions].Visible = false;
|
||||
if (view == ESongOptionsView.Song)
|
||||
_ShowSongOptionsSong();
|
||||
else if (view == ESongOptionsView.General)
|
||||
@@ -1108,88 +1108,88 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
EGameMode lastMode = EGameMode.TR_GAMEMODE_NORMAL;
|
||||
if (_AvailableGameModes.Count > 0)
|
||||
lastMode = _AvailableGameModes[SelectSlides[_SelectSlideOptionsMode].Selection];
|
||||
SetInteractionToButton(Buttons[_ButtonOptionsSing]);
|
||||
lastMode = _AvailableGameModes[_SelectSlides[_SelectSlideOptionsMode].Selection];
|
||||
_SetInteractionToButton(_Buttons[_ButtonOptionsSing]);
|
||||
_AvailableGameModes.Clear();
|
||||
SelectSlides[_SelectSlideOptionsMode].Clear();
|
||||
if (CSongs.VisibleSongs[SongMenus[_SongMenu].GetSelectedSong()].IsDuet)
|
||||
_SelectSlides[_SelectSlideOptionsMode].Clear();
|
||||
if (CSongs.VisibleSongs[_SongMenus[_SongMenu].GetSelectedSong()].IsDuet)
|
||||
{
|
||||
SelectSlides[_SelectSlideOptionsMode].AddValue(Enum.GetName(typeof(EGameMode), EGameMode.TR_GAMEMODE_DUET));
|
||||
_SelectSlides[_SelectSlideOptionsMode].AddValue(Enum.GetName(typeof(EGameMode), EGameMode.TR_GAMEMODE_DUET));
|
||||
_AvailableGameModes.Add(EGameMode.TR_GAMEMODE_DUET);
|
||||
}
|
||||
else
|
||||
{
|
||||
SelectSlides[_SelectSlideOptionsMode].AddValue(Enum.GetName(typeof(EGameMode), EGameMode.TR_GAMEMODE_NORMAL));
|
||||
_SelectSlides[_SelectSlideOptionsMode].AddValue(Enum.GetName(typeof(EGameMode), EGameMode.TR_GAMEMODE_NORMAL));
|
||||
_AvailableGameModes.Add(EGameMode.TR_GAMEMODE_NORMAL);
|
||||
SelectSlides[_SelectSlideOptionsMode].AddValue(Enum.GetName(typeof(EGameMode), EGameMode.TR_GAMEMODE_SHORTSONG));
|
||||
_SelectSlides[_SelectSlideOptionsMode].AddValue(Enum.GetName(typeof(EGameMode), EGameMode.TR_GAMEMODE_SHORTSONG));
|
||||
_AvailableGameModes.Add(EGameMode.TR_GAMEMODE_SHORTSONG);
|
||||
}
|
||||
if (CSongs.VisibleSongs[SongMenus[_SongMenu].GetSelectedSong()].Medley.Source != EMedleySource.None)
|
||||
if (CSongs.VisibleSongs[_SongMenus[_SongMenu].GetSelectedSong()].Medley.Source != EMedleySource.None)
|
||||
{
|
||||
SelectSlides[_SelectSlideOptionsMode].AddValue(Enum.GetName(typeof(EGameMode), EGameMode.TR_GAMEMODE_MEDLEY));
|
||||
_SelectSlides[_SelectSlideOptionsMode].AddValue(Enum.GetName(typeof(EGameMode), EGameMode.TR_GAMEMODE_MEDLEY));
|
||||
_AvailableGameModes.Add(EGameMode.TR_GAMEMODE_MEDLEY);
|
||||
}
|
||||
//Set SelectSlide-Selection to last selected game-mode if possible
|
||||
for (int i = 0; i < _AvailableGameModes.Count; i++)
|
||||
{
|
||||
if (_AvailableGameModes[i] == lastMode)
|
||||
SelectSlides[_SelectSlideOptionsMode].SetSelectionByValueIndex(i);
|
||||
_SelectSlides[_SelectSlideOptionsMode].SetSelectionByValueIndex(i);
|
||||
}
|
||||
SelectSlides[_SelectSlideOptionsMode].Visible = true;
|
||||
SelectSlides[_SelectSlideOptionsPlaylistAdd].Visible = true;
|
||||
Buttons[_ButtonOptionsSing].Visible = true;
|
||||
Buttons[_ButtonOptionsPlaylist].Visible = true;
|
||||
SetInteractionToButton(Buttons[_ButtonOptionsSing]);
|
||||
_SelectSlides[_SelectSlideOptionsMode].Visible = true;
|
||||
_SelectSlides[_SelectSlideOptionsPlaylistAdd].Visible = true;
|
||||
_Buttons[_ButtonOptionsSing].Visible = true;
|
||||
_Buttons[_ButtonOptionsPlaylist].Visible = true;
|
||||
_SetInteractionToButton(_Buttons[_ButtonOptionsSing]);
|
||||
}
|
||||
|
||||
private void _ShowSongOptionsGeneral()
|
||||
{
|
||||
if (CSongs.IsInCategory)
|
||||
{
|
||||
Buttons[_ButtonOptionsRandom].Visible = true;
|
||||
Buttons[_ButtonOptionsSingAllVisible].Visible = true;
|
||||
_Buttons[_ButtonOptionsRandom].Visible = true;
|
||||
_Buttons[_ButtonOptionsSingAllVisible].Visible = true;
|
||||
}
|
||||
else
|
||||
Buttons[_ButtonOptionsRandomCategory].Visible = true;
|
||||
Buttons[_ButtonOptionsSingAll].Visible = true;
|
||||
Buttons[_ButtonOptionsRandomMedley].Visible = true;
|
||||
Buttons[_ButtonOptionsOpenSelectedItem].Visible = true;
|
||||
_Buttons[_ButtonOptionsRandomCategory].Visible = true;
|
||||
_Buttons[_ButtonOptionsSingAll].Visible = true;
|
||||
_Buttons[_ButtonOptionsRandomMedley].Visible = true;
|
||||
_Buttons[_ButtonOptionsOpenSelectedItem].Visible = true;
|
||||
|
||||
if (SelectSlides[_SelectSlideOptionsPlaylistOpen].NumValues > 0)
|
||||
SelectSlides[_SelectSlideOptionsPlaylistOpen].Visible = true;
|
||||
if (_SelectSlides[_SelectSlideOptionsPlaylistOpen].NumValues > 0)
|
||||
_SelectSlides[_SelectSlideOptionsPlaylistOpen].Visible = true;
|
||||
|
||||
if (Buttons[_ButtonOptionsRandom].Visible)
|
||||
SetInteractionToButton(Buttons[_ButtonOptionsRandom]);
|
||||
if (_Buttons[_ButtonOptionsRandom].Visible)
|
||||
_SetInteractionToButton(_Buttons[_ButtonOptionsRandom]);
|
||||
else
|
||||
SetInteractionToButton(Buttons[_ButtonOptionsRandomCategory]);
|
||||
_SetInteractionToButton(_Buttons[_ButtonOptionsRandomCategory]);
|
||||
}
|
||||
|
||||
private void _ShowSongOptionsMedley()
|
||||
{
|
||||
Buttons[_ButtonOptionsStartMedley].Visible = true;
|
||||
SelectSlides[_SelectSlideOptionsNumMedleySongs].Visible = true;
|
||||
SelectSlides[_SelectSlideOptionsNumMedleySongs].Clear();
|
||||
_Buttons[_ButtonOptionsStartMedley].Visible = true;
|
||||
_SelectSlides[_SelectSlideOptionsNumMedleySongs].Visible = true;
|
||||
_SelectSlides[_SelectSlideOptionsNumMedleySongs].Clear();
|
||||
if (CSongs.IsInCategory)
|
||||
{
|
||||
for (int i = 1; i <= CSongs.VisibleSongs.Length; i++)
|
||||
SelectSlides[_SelectSlideOptionsNumMedleySongs].AddValue(i.ToString());
|
||||
_SelectSlides[_SelectSlideOptionsNumMedleySongs].AddValue(i.ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 1; i <= CSongs.AllSongs.Length; i++)
|
||||
SelectSlides[_SelectSlideOptionsNumMedleySongs].AddValue(i.ToString());
|
||||
_SelectSlides[_SelectSlideOptionsNumMedleySongs].AddValue(i.ToString());
|
||||
}
|
||||
if (SelectSlides[_SelectSlideOptionsNumMedleySongs].NumValues >= 5)
|
||||
SelectSlides[_SelectSlideOptionsNumMedleySongs].SetSelectionByValueIndex(4);
|
||||
if (_SelectSlides[_SelectSlideOptionsNumMedleySongs].NumValues >= 5)
|
||||
_SelectSlides[_SelectSlideOptionsNumMedleySongs].SetSelectionByValueIndex(4);
|
||||
else
|
||||
SelectSlides[_SelectSlideOptionsNumMedleySongs].SetSelectionByValueIndex(SelectSlides[_SelectSlideOptionsNumMedleySongs].NumValues - 1);
|
||||
SetInteractionToButton(Buttons[_ButtonOptionsStartMedley]);
|
||||
_SelectSlides[_SelectSlideOptionsNumMedleySongs].SetSelectionByValueIndex(_SelectSlides[_SelectSlideOptionsNumMedleySongs].NumValues - 1);
|
||||
_SetInteractionToButton(_Buttons[_ButtonOptionsStartMedley]);
|
||||
}
|
||||
|
||||
#region Playlist Actions
|
||||
public void CheckPlaylist()
|
||||
{
|
||||
if (Playlists[_Playlist].ActivePlaylistID == -1 && _PlaylistActive)
|
||||
if (_Playlists[_Playlist].ActivePlaylistID == -1 && _PlaylistActive)
|
||||
_ClosePlaylist();
|
||||
}
|
||||
|
||||
@@ -1197,100 +1197,100 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (CPlaylists.Playlists.Length > playlistID && playlistID > -1)
|
||||
{
|
||||
Playlists[_Playlist].LoadPlaylist(playlistID);
|
||||
SongMenus[_SongMenu].SetSmallView(true);
|
||||
Playlists[_Playlist].Visible = true;
|
||||
_Playlists[_Playlist].LoadPlaylist(playlistID);
|
||||
_SongMenus[_SongMenu].SetSmallView(true);
|
||||
_Playlists[_Playlist].Visible = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void _ClosePlaylist()
|
||||
{
|
||||
if (Playlists[_Playlist].Visible || _PlaylistActive)
|
||||
if (_Playlists[_Playlist].Visible || _PlaylistActive)
|
||||
{
|
||||
SongMenus[_SongMenu].SetSmallView(false);
|
||||
_SongMenus[_SongMenu].SetSmallView(false);
|
||||
_PlaylistActive = false;
|
||||
Playlists[_Playlist].Selected = _PlaylistActive;
|
||||
SongMenus[_SongMenu].SetActive(!_PlaylistActive);
|
||||
Playlists[_Playlist].ClosePlaylist();
|
||||
_Playlists[_Playlist].Selected = _PlaylistActive;
|
||||
_SongMenus[_SongMenu].SetActive(!_PlaylistActive);
|
||||
_Playlists[_Playlist].ClosePlaylist();
|
||||
}
|
||||
}
|
||||
|
||||
private void _UpdatePlaylistNames()
|
||||
{
|
||||
SelectSlides[_SelectSlideOptionsPlaylistAdd].Clear();
|
||||
SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValue("TR_SCREENSONG_NEWPLAYLIST");
|
||||
SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValues(CPlaylists.PlaylistNames);
|
||||
SelectSlides[_SelectSlideOptionsPlaylistOpen].Clear();
|
||||
SelectSlides[_SelectSlideOptionsPlaylistOpen].AddValues(CPlaylists.PlaylistNames);
|
||||
_SelectSlides[_SelectSlideOptionsPlaylistAdd].Clear();
|
||||
_SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValue("TR_SCREENSONG_NEWPLAYLIST");
|
||||
_SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValues(CPlaylists.PlaylistNames);
|
||||
_SelectSlides[_SelectSlideOptionsPlaylistOpen].Clear();
|
||||
_SelectSlides[_SelectSlideOptionsPlaylistOpen].AddValues(CPlaylists.PlaylistNames);
|
||||
}
|
||||
|
||||
private void _OpenPlaylistAction()
|
||||
{
|
||||
//Open a playlist
|
||||
if (Playlists[_Playlist].ActivePlaylistID != SelectSlides[_SelectSlideOptionsPlaylistOpen].Selection)
|
||||
if (_Playlists[_Playlist].ActivePlaylistID != _SelectSlides[_SelectSlideOptionsPlaylistOpen].Selection)
|
||||
{
|
||||
Playlists[_Playlist].ActivePlaylistID = SelectSlides[_SelectSlideOptionsPlaylistOpen].Selection;
|
||||
_Playlists[_Playlist].ActivePlaylistID = _SelectSlides[_SelectSlideOptionsPlaylistOpen].Selection;
|
||||
_SetSelectSlidePlaylistToCurrentPlaylist();
|
||||
|
||||
//Open playlist
|
||||
_OpenPlaylist(Playlists[_Playlist].ActivePlaylistID);
|
||||
_OpenPlaylist(_Playlists[_Playlist].ActivePlaylistID);
|
||||
}
|
||||
}
|
||||
|
||||
private void _OpenAndAddPlaylistAction()
|
||||
{
|
||||
//Open an existing playlist and add song
|
||||
if (Playlists[_Playlist].ActivePlaylistID != (SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1) &&
|
||||
(SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1) != -1)
|
||||
if (_Playlists[_Playlist].ActivePlaylistID != (_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1) &&
|
||||
(_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1) != -1)
|
||||
{
|
||||
//Check selected game-mode
|
||||
EGameMode gm;
|
||||
if (_AvailableGameModes.Count >= SelectSlides[_SelectSlideOptionsMode].Selection)
|
||||
gm = _AvailableGameModes[SelectSlides[_SelectSlideOptionsMode].Selection];
|
||||
else if (CSongs.VisibleSongs[SongMenus[_SongMenu].GetSelectedSong()].IsDuet)
|
||||
if (_AvailableGameModes.Count >= _SelectSlides[_SelectSlideOptionsMode].Selection)
|
||||
gm = _AvailableGameModes[_SelectSlides[_SelectSlideOptionsMode].Selection];
|
||||
else if (CSongs.VisibleSongs[_SongMenus[_SongMenu].GetSelectedSong()].IsDuet)
|
||||
gm = EGameMode.TR_GAMEMODE_DUET;
|
||||
else
|
||||
gm = EGameMode.TR_GAMEMODE_NORMAL;
|
||||
|
||||
//Check if Playlist really exists
|
||||
if (SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1 >= 0)
|
||||
if (_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1 >= 0)
|
||||
{
|
||||
Playlists[_Playlist].ActivePlaylistID = SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1;
|
||||
_Playlists[_Playlist].ActivePlaylistID = _SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1;
|
||||
|
||||
//Add song to playlist
|
||||
CPlaylists.Playlists[Playlists[_Playlist].ActivePlaylistID].AddSong(CSongs.VisibleSongs[SongMenus[_SongMenu].GetSelectedSong()].ID, gm);
|
||||
CPlaylists.Playlists[_Playlists[_Playlist].ActivePlaylistID].AddSong(CSongs.VisibleSongs[_SongMenus[_SongMenu].GetSelectedSong()].ID, gm);
|
||||
|
||||
//Open playlist
|
||||
_OpenPlaylist(Playlists[_Playlist].ActivePlaylistID);
|
||||
_OpenPlaylist(_Playlists[_Playlist].ActivePlaylistID);
|
||||
|
||||
_SetSelectSlidePlaylistToCurrentPlaylist();
|
||||
Playlists[_Playlist].ScrollToBottom();
|
||||
_Playlists[_Playlist].ScrollToBottom();
|
||||
}
|
||||
}
|
||||
//Create a new playlist and add song
|
||||
else if ((SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1) == -1)
|
||||
else if ((_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1) == -1)
|
||||
{
|
||||
//Check selected game-mode
|
||||
EGameMode gm;
|
||||
if (_AvailableGameModes.Count >= SelectSlides[_SelectSlideOptionsMode].Selection)
|
||||
gm = _AvailableGameModes[SelectSlides[_SelectSlideOptionsMode].Selection];
|
||||
else if (CSongs.VisibleSongs[SongMenus[_SongMenu].GetSelectedSong()].IsDuet)
|
||||
if (_AvailableGameModes.Count >= _SelectSlides[_SelectSlideOptionsMode].Selection)
|
||||
gm = _AvailableGameModes[_SelectSlides[_SelectSlideOptionsMode].Selection];
|
||||
else if (CSongs.VisibleSongs[_SongMenus[_SongMenu].GetSelectedSong()].IsDuet)
|
||||
gm = EGameMode.TR_GAMEMODE_DUET;
|
||||
else
|
||||
gm = EGameMode.TR_GAMEMODE_NORMAL;
|
||||
|
||||
//Create new playlist
|
||||
Playlists[_Playlist].ActivePlaylistID = CPlaylists.NewPlaylist();
|
||||
_Playlists[_Playlist].ActivePlaylistID = CPlaylists.NewPlaylist();
|
||||
|
||||
//Add song to playlist
|
||||
CPlaylists.Playlists[Playlists[_Playlist].ActivePlaylistID].AddSong(CSongs.VisibleSongs[SongMenus[_SongMenu].GetSelectedSong()].ID, gm);
|
||||
CPlaylists.Playlists[_Playlists[_Playlist].ActivePlaylistID].AddSong(CSongs.VisibleSongs[_SongMenus[_SongMenu].GetSelectedSong()].ID, gm);
|
||||
|
||||
//Open playlist
|
||||
_OpenPlaylist(Playlists[_Playlist].ActivePlaylistID);
|
||||
_OpenPlaylist(_Playlists[_Playlist].ActivePlaylistID);
|
||||
|
||||
//Add new playlist to select-slide
|
||||
SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValue(CPlaylists.Playlists[Playlists[_Playlist].ActivePlaylistID].PlaylistName);
|
||||
SelectSlides[_SelectSlideOptionsPlaylistOpen].AddValue(CPlaylists.Playlists[Playlists[_Playlist].ActivePlaylistID].PlaylistName);
|
||||
_SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValue(CPlaylists.Playlists[_Playlists[_Playlist].ActivePlaylistID].PlaylistName);
|
||||
_SelectSlides[_SelectSlideOptionsPlaylistOpen].AddValue(CPlaylists.Playlists[_Playlists[_Playlist].ActivePlaylistID].PlaylistName);
|
||||
|
||||
_SetSelectSlidePlaylistToCurrentPlaylist();
|
||||
}
|
||||
@@ -1299,24 +1299,24 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
//Check selected game-mode
|
||||
EGameMode gm;
|
||||
if (_AvailableGameModes.Count >= SelectSlides[_SelectSlideOptionsMode].Selection)
|
||||
gm = _AvailableGameModes[SelectSlides[_SelectSlideOptionsMode].Selection];
|
||||
else if (CSongs.VisibleSongs[SongMenus[_SongMenu].GetSelectedSong()].IsDuet)
|
||||
if (_AvailableGameModes.Count >= _SelectSlides[_SelectSlideOptionsMode].Selection)
|
||||
gm = _AvailableGameModes[_SelectSlides[_SelectSlideOptionsMode].Selection];
|
||||
else if (CSongs.VisibleSongs[_SongMenus[_SongMenu].GetSelectedSong()].IsDuet)
|
||||
gm = EGameMode.TR_GAMEMODE_DUET;
|
||||
else
|
||||
gm = EGameMode.TR_GAMEMODE_NORMAL;
|
||||
CPlaylists.Playlists[Playlists[_Playlist].ActivePlaylistID].AddSong(CSongs.VisibleSongs[SongMenus[_SongMenu].GetSelectedSong()].ID, gm);
|
||||
Playlists[_Playlist].UpdatePlaylist();
|
||||
Playlists[_Playlist].ScrollToBottom();
|
||||
CPlaylists.Playlists[_Playlists[_Playlist].ActivePlaylistID].AddSong(CSongs.VisibleSongs[_SongMenus[_SongMenu].GetSelectedSong()].ID, gm);
|
||||
_Playlists[_Playlist].UpdatePlaylist();
|
||||
_Playlists[_Playlist].ScrollToBottom();
|
||||
}
|
||||
}
|
||||
|
||||
private void _SetSelectSlidePlaylistToCurrentPlaylist()
|
||||
{
|
||||
if (Playlists[_Playlist].ActivePlaylistID > -1)
|
||||
SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection = Playlists[_Playlist].ActivePlaylistID + 1;
|
||||
if (_Playlists[_Playlist].ActivePlaylistID > -1)
|
||||
_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection = _Playlists[_Playlist].ActivePlaylistID + 1;
|
||||
else
|
||||
SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection = 0;
|
||||
_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection = 0;
|
||||
}
|
||||
#endregion Playlist Actions
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
public override bool HandleMouse(SMouseEvent mouseEvent)
|
||||
{
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent)) {}
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent)) {}
|
||||
|
||||
if (mouseEvent.LB)
|
||||
CGraphics.FadeTo(EScreens.ScreenMain);
|
||||
|
||||
@@ -264,8 +264,8 @@
|
||||
<None Include="app.config">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
<Compile Include="Lib\Sound\Portaudio\PortAudio.cs" />
|
||||
<Compile Include="Lib\Sound\Portaudio\PortAudioASIO.cs" />
|
||||
<Compile Include="Lib\Sound\PortAudio\PortAudio.cs" />
|
||||
<Compile Include="Lib\Sound\PortAudio\PortAudioASIO.cs" />
|
||||
<None Include="Doc\SQLite.NET.chm" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -75,11 +75,11 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Type", ref _Theme.Type);
|
||||
|
||||
bool vid = xmlReader.GetValue(item + "/Video", ref _Theme.VideoName, String.Empty);
|
||||
bool tex = xmlReader.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
|
||||
bool vid = xmlReader.GetValue(item + "/Video", out _Theme.VideoName, String.Empty);
|
||||
bool tex = xmlReader.GetValue(item + "/Skin", out _Theme.TextureName, String.Empty);
|
||||
_ThemeLoaded &= vid || tex || _Theme.Type == EBackgroundTypes.None;
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.ColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out Color);
|
||||
else
|
||||
{
|
||||
@@ -207,7 +207,7 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
RectangleF bounds = new RectangleF(0f, 0f, CBase.Settings.GetRenderW(), CBase.Settings.GetRenderH());
|
||||
RectangleF rect = new RectangleF(0f, 0f, texture.Width, texture.Height);
|
||||
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, EAspect.Crop);
|
||||
CHelper.SetRect(bounds, out rect, rect.Width / rect.Height, EAspect.Crop);
|
||||
|
||||
CBase.Drawing.DrawTexture(texture, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, CBase.Settings.GetZFar() / 4));
|
||||
return true;
|
||||
@@ -222,7 +222,7 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
RectangleF bounds = new RectangleF(0f, 0f, CBase.Settings.GetRenderW(), CBase.Settings.GetRenderH());
|
||||
RectangleF rect = new RectangleF(0f, 0f, videoTexture.Width, videoTexture.Height);
|
||||
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, EAspect.Crop);
|
||||
CHelper.SetRect(bounds, out rect, rect.Width / rect.Height, EAspect.Crop);
|
||||
|
||||
CBase.Drawing.DrawTexture(videoTexture, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, CBase.Settings.GetZFar() / 4));
|
||||
return true;
|
||||
@@ -237,7 +237,7 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
RectangleF bounds = new RectangleF(0f, 0f, CBase.Settings.GetRenderW(), CBase.Settings.GetRenderH());
|
||||
RectangleF rect = new RectangleF(0f, 0f, videoTexture.Width, videoTexture.Height);
|
||||
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, EAspect.Crop);
|
||||
CHelper.SetRect(bounds, out rect, rect.Width / rect.Height, EAspect.Crop);
|
||||
|
||||
CBase.Drawing.DrawTexture(videoTexture, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, CBase.Settings.GetZFar() / 4));
|
||||
return true;
|
||||
|
||||
@@ -152,8 +152,8 @@ namespace VocaluxeLib.Menu
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinSelected", ref _Theme.SelTextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", out _Theme.TextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinSelected", out _Theme.SelTextureName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
|
||||
@@ -161,7 +161,7 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref Rect.H);
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.ColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out Color);
|
||||
else
|
||||
{
|
||||
@@ -171,7 +171,7 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/SColor", ref _Theme.SelColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/SColor", out _Theme.SelColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.SelColorName, skinIndex, out SelColor);
|
||||
else
|
||||
{
|
||||
@@ -309,7 +309,7 @@ namespace VocaluxeLib.Menu
|
||||
if (!Visible && CBase.Settings.GetGameState() != EGameState.EditTheme && !forceDraw)
|
||||
return;
|
||||
|
||||
STexture texture = new STexture(-1);
|
||||
STexture texture;
|
||||
|
||||
if (!Selected && !Pressed || !Enabled)
|
||||
{
|
||||
|
||||
@@ -91,7 +91,7 @@ namespace VocaluxeLib.Menu
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", out _Theme.TextureName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
|
||||
@@ -107,7 +107,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/DrawNegative", ref _Theme.DrawNegative);
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.ColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out Color);
|
||||
else
|
||||
{
|
||||
@@ -117,7 +117,7 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/MaxColor", ref _Theme.MaxColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/MaxColor", out _Theme.MaxColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out Color);
|
||||
else
|
||||
{
|
||||
|
||||
@@ -68,7 +68,6 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public static int TryReadInt(StreamReader sr)
|
||||
{
|
||||
char chr = '0';
|
||||
string value = String.Empty;
|
||||
|
||||
try
|
||||
@@ -77,7 +76,7 @@ namespace VocaluxeLib.Menu
|
||||
//Check for ' ', ?, ?, \n, \r
|
||||
while (tmp != 32 && tmp != 19 && tmp != 16 && tmp != 13 && tmp != 10)
|
||||
{
|
||||
chr = (char)sr.Read();
|
||||
char chr = (char)sr.Read();
|
||||
value += chr.ToString();
|
||||
tmp = sr.Peek();
|
||||
}
|
||||
@@ -86,20 +85,18 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
int result = 0;
|
||||
if (int.TryParse(value, out result))
|
||||
return result;
|
||||
return 0;
|
||||
int result;
|
||||
return int.TryParse(value, out result) ? result : 0;
|
||||
}
|
||||
|
||||
public static void SetRect(RectangleF bounds, ref RectangleF rect, float rectAspect, EAspect aspect)
|
||||
public static void SetRect(RectangleF bounds, out RectangleF rect, float rectAspect, EAspect aspect)
|
||||
{
|
||||
float rW = bounds.Right - bounds.Left;
|
||||
float rH = bounds.Bottom - bounds.Top;
|
||||
float rA = rW / rH;
|
||||
|
||||
float scaledWidth = rW;
|
||||
float scaledHeight = rH;
|
||||
float scaledWidth;
|
||||
float scaledHeight;
|
||||
|
||||
switch (aspect)
|
||||
{
|
||||
@@ -161,16 +158,13 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
foreach (FileInfo file in dir.GetFiles(cast))
|
||||
{
|
||||
if (!fullpath)
|
||||
files.Add(file.Name);
|
||||
else
|
||||
files.Add(file.FullName);
|
||||
files.Add(!fullpath ? file.Name : file.FullName);
|
||||
}
|
||||
|
||||
if (recursive)
|
||||
{
|
||||
foreach (DirectoryInfo di in dir.GetDirectories())
|
||||
files.AddRange(ListFiles(di.FullName, cast, recursive, fullpath));
|
||||
files.AddRange(ListFiles(di.FullName, cast, true, fullpath));
|
||||
}
|
||||
}
|
||||
catch (Exception) {}
|
||||
|
||||
+74
-100
@@ -58,7 +58,6 @@ namespace VocaluxeLib.Menu
|
||||
private float _H;
|
||||
|
||||
private float _Width;
|
||||
private ELyricStyle _Style;
|
||||
|
||||
private float _Alpha = 1f;
|
||||
|
||||
@@ -70,7 +69,7 @@ namespace VocaluxeLib.Menu
|
||||
public SRectF Rect
|
||||
{
|
||||
get { return new SRectF(_X, _Y, _MaxW, _H, _Z); }
|
||||
set
|
||||
private set
|
||||
{
|
||||
_X = value.X;
|
||||
_Y = value.Y;
|
||||
@@ -80,8 +79,8 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
}
|
||||
|
||||
public SColorF Color;
|
||||
public SColorF ColorProcessed;
|
||||
private SColorF _Color;
|
||||
private SColorF _ColorProcessed;
|
||||
|
||||
public bool Selected;
|
||||
public bool Visible = true;
|
||||
@@ -96,19 +95,15 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
}
|
||||
|
||||
public ELyricStyle LyricStyle
|
||||
{
|
||||
get { return _Style; }
|
||||
set { _Style = value; }
|
||||
}
|
||||
public ELyricStyle LyricStyle { get; set; }
|
||||
|
||||
public CLyric(int partyModeID)
|
||||
{
|
||||
_PartyModeID = partyModeID;
|
||||
_Theme = new SThemeLyrics();
|
||||
_ThemeLoaded = false;
|
||||
Color = new SColorF();
|
||||
ColorProcessed = new SColorF();
|
||||
_Color = new SColorF();
|
||||
_ColorProcessed = new SColorF();
|
||||
|
||||
_X = 0f;
|
||||
_Y = 0f;
|
||||
@@ -119,7 +114,7 @@ namespace VocaluxeLib.Menu
|
||||
_Notes = new List<SNote>();
|
||||
_Text = new CText(_PartyModeID);
|
||||
|
||||
_Style = ELyricStyle.Fill;
|
||||
LyricStyle = ELyricStyle.Fill;
|
||||
}
|
||||
|
||||
public bool LoadTheme(string xmlPath, string elementName, CXMLReader xmlReader, int skinIndex)
|
||||
@@ -133,31 +128,31 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _MaxW);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _H);
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out Color);
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.ColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out _Color);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref _Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref _Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref _Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref _Color.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/SColor", ref _Theme.SelColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.SelColorName, skinIndex, out ColorProcessed);
|
||||
if (xmlReader.GetValue(item + "/SColor", out _Theme.SelColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.SelColorName, skinIndex, out _ColorProcessed);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SR", ref ColorProcessed.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref ColorProcessed.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref ColorProcessed.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref ColorProcessed.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SR", ref _ColorProcessed.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref _ColorProcessed.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref _ColorProcessed.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref _ColorProcessed.A);
|
||||
}
|
||||
|
||||
if (_ThemeLoaded)
|
||||
{
|
||||
_Theme.Name = elementName;
|
||||
LoadTextures();
|
||||
_Text = new CText(_X, _Y, _Z, _H, _MaxW, EAlignment.Left, EStyle.Bold, "Normal", Color, String.Empty);
|
||||
_Text = new CText(_X, _Y, _Z, _H, _MaxW, EAlignment.Left, EStyle.Bold, "Normal", _Color, String.Empty);
|
||||
}
|
||||
return _ThemeLoaded;
|
||||
}
|
||||
@@ -181,10 +176,10 @@ namespace VocaluxeLib.Menu
|
||||
writer.WriteElementString("Color", _Theme.ColorName);
|
||||
else
|
||||
{
|
||||
writer.WriteElementString("R", Color.R.ToString("#0.00"));
|
||||
writer.WriteElementString("G", Color.G.ToString("#0.00"));
|
||||
writer.WriteElementString("B", Color.B.ToString("#0.00"));
|
||||
writer.WriteElementString("A", Color.A.ToString("#0.00"));
|
||||
writer.WriteElementString("R", _Color.R.ToString("#0.00"));
|
||||
writer.WriteElementString("G", _Color.G.ToString("#0.00"));
|
||||
writer.WriteElementString("B", _Color.B.ToString("#0.00"));
|
||||
writer.WriteElementString("A", _Color.A.ToString("#0.00"));
|
||||
}
|
||||
|
||||
writer.WriteComment("<SColor>: Highlighted lyric color from ColorScheme (high priority)");
|
||||
@@ -193,10 +188,10 @@ namespace VocaluxeLib.Menu
|
||||
writer.WriteElementString("SColor", _Theme.SelColorName);
|
||||
else
|
||||
{
|
||||
writer.WriteElementString("SR", ColorProcessed.R.ToString("#0.00"));
|
||||
writer.WriteElementString("SG", ColorProcessed.G.ToString("#0.00"));
|
||||
writer.WriteElementString("SB", ColorProcessed.B.ToString("#0.00"));
|
||||
writer.WriteElementString("SA", ColorProcessed.A.ToString("#0.00"));
|
||||
writer.WriteElementString("SR", _ColorProcessed.R.ToString("#0.00"));
|
||||
writer.WriteElementString("SG", _ColorProcessed.G.ToString("#0.00"));
|
||||
writer.WriteElementString("SB", _ColorProcessed.B.ToString("#0.00"));
|
||||
writer.WriteElementString("SA", _ColorProcessed.A.ToString("#0.00"));
|
||||
}
|
||||
|
||||
writer.WriteEndElement();
|
||||
@@ -213,13 +208,7 @@ namespace VocaluxeLib.Menu
|
||||
_Width = 0f;
|
||||
foreach (CNote note in line.Notes)
|
||||
{
|
||||
SNote n = new SNote();
|
||||
|
||||
n.Text = note.Text;
|
||||
n.StartBeat = note.StartBeat;
|
||||
n.EndBeat = note.EndBeat;
|
||||
n.Duration = note.Duration;
|
||||
n.Type = note.NoteType;
|
||||
SNote n = new SNote {Text = note.Text, StartBeat = note.StartBeat, EndBeat = note.EndBeat, Duration = note.Duration, Type = note.NoteType};
|
||||
|
||||
_Text.Text = note.Text;
|
||||
_Text.Style = EStyle.Bold;
|
||||
@@ -248,7 +237,7 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
if (Visible || CBase.Settings.GetGameState() == EGameState.EditTheme)
|
||||
{
|
||||
switch (_Style)
|
||||
switch (LyricStyle)
|
||||
{
|
||||
case ELyricStyle.Fill:
|
||||
_DrawFill(actualBeat);
|
||||
@@ -287,28 +276,28 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
if (currentBeat <= note.EndBeat)
|
||||
{
|
||||
_Text.Color = ColorProcessed;
|
||||
_Text.Color = _ColorProcessed;
|
||||
|
||||
|
||||
float diff = note.EndBeat - note.StartBeat;
|
||||
if (diff == 0)
|
||||
if (Math.Abs(diff) < float.Epsilon)
|
||||
_Text.Draw(0f, 1f);
|
||||
else
|
||||
{
|
||||
_Text.Draw(0f, (currentBeat - note.StartBeat) / diff);
|
||||
_Text.Color = Color;
|
||||
_Text.Color = _Color;
|
||||
_Text.Draw((currentBeat - note.StartBeat) / diff, 1f);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_Text.Color = ColorProcessed;
|
||||
_Text.Color = _ColorProcessed;
|
||||
_Text.Draw();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_Text.Color = Color;
|
||||
_Text.Color = _Color;
|
||||
_Text.Draw();
|
||||
}
|
||||
|
||||
@@ -344,7 +333,6 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
if (currentBeat >= _Notes[note].StartBeat)
|
||||
{
|
||||
bool last = note == _Notes.Count - 1;
|
||||
int endbeat = _Notes[note].EndBeat;
|
||||
if (note < _Notes.Count - 1)
|
||||
endbeat = _Notes[note + 1].StartBeat - 1;
|
||||
@@ -358,10 +346,7 @@ namespace VocaluxeLib.Menu
|
||||
else
|
||||
{
|
||||
// already passed
|
||||
if (note == lastNote)
|
||||
_Text.Color = ColorProcessed;
|
||||
else
|
||||
_Text.Color = Color;
|
||||
_Text.Color = note == lastNote ? _ColorProcessed : _Color;
|
||||
|
||||
_Text.Draw();
|
||||
}
|
||||
@@ -369,7 +354,7 @@ namespace VocaluxeLib.Menu
|
||||
else
|
||||
{
|
||||
// not passed
|
||||
_Text.Color = Color;
|
||||
_Text.Color = _Color;
|
||||
_Text.Draw();
|
||||
}
|
||||
|
||||
@@ -383,7 +368,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
_Text.X = zoomx;
|
||||
_Text.Text = _Notes[zoomNote].Text;
|
||||
_Text.Color = ColorProcessed;
|
||||
_Text.Color = _ColorProcessed;
|
||||
_Text.Style = EStyle.Bold;
|
||||
|
||||
if (_Notes[zoomNote].Type == ENoteType.Freestyle)
|
||||
@@ -437,13 +422,13 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
if (currentBeat >= note.StartBeat)
|
||||
{
|
||||
_Text.Color = ColorProcessed;
|
||||
_Text.Color = _ColorProcessed;
|
||||
_Text.Draw();
|
||||
}
|
||||
else
|
||||
{
|
||||
// not passed
|
||||
_Text.Color = Color;
|
||||
_Text.Color = _Color;
|
||||
_Text.Draw();
|
||||
}
|
||||
|
||||
@@ -464,7 +449,6 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
|
||||
int jumpNote = -1;
|
||||
int endBeat = -1;
|
||||
float jumpx = 0f;
|
||||
|
||||
for (int note = 0; note < _Notes.Count; note++)
|
||||
@@ -479,24 +463,15 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
if (currentBeat >= _Notes[note].StartBeat)
|
||||
{
|
||||
bool last = note == _Notes.Count - 1;
|
||||
int endbeat = _Notes[note].EndBeat;
|
||||
if (note < _Notes.Count - 1)
|
||||
endbeat = _Notes[note + 1].StartBeat - 1;
|
||||
|
||||
if (currentBeat <= _Notes[note].EndBeat)
|
||||
{
|
||||
jumpNote = note;
|
||||
endBeat = endbeat;
|
||||
jumpx = _Text.X;
|
||||
}
|
||||
else
|
||||
{
|
||||
// already passed
|
||||
if (note == lastNote)
|
||||
_Text.Color = ColorProcessed;
|
||||
else
|
||||
_Text.Color = Color;
|
||||
_Text.Color = note == lastNote ? _ColorProcessed : _Color;
|
||||
|
||||
_Text.Draw();
|
||||
}
|
||||
@@ -504,45 +479,44 @@ namespace VocaluxeLib.Menu
|
||||
else
|
||||
{
|
||||
// not passed
|
||||
_Text.Color = Color;
|
||||
_Text.Color = _Color;
|
||||
_Text.Draw();
|
||||
}
|
||||
|
||||
x += rect.Width;
|
||||
}
|
||||
|
||||
if (jumpNote > -1)
|
||||
if (jumpNote < 0)
|
||||
return;
|
||||
if (_Notes[jumpNote].Duration == 0)
|
||||
return;
|
||||
|
||||
_Text.X = jumpx;
|
||||
_Text.Text = _Notes[jumpNote].Text;
|
||||
_Text.Color = _ColorProcessed;
|
||||
_Text.Style = EStyle.Bold;
|
||||
|
||||
if (_Notes[jumpNote].Type == ENoteType.Freestyle)
|
||||
_Text.Style = EStyle.BoldItalic;
|
||||
|
||||
float diff = _Notes[jumpNote].EndBeat - _Notes[jumpNote].StartBeat;
|
||||
if (diff <= 0f)
|
||||
diff = 1f;
|
||||
|
||||
float p = (currentBeat - _Notes[jumpNote].StartBeat) / diff;
|
||||
if (p > 1f)
|
||||
p = 1f;
|
||||
|
||||
p = 1f - p;
|
||||
|
||||
if (Math.Abs(diff - 1) < float.Epsilon)
|
||||
_Text.Draw();
|
||||
else
|
||||
{
|
||||
if (_Notes[jumpNote].Duration == 0)
|
||||
return;
|
||||
|
||||
_Text.X = jumpx;
|
||||
_Text.Text = _Notes[jumpNote].Text;
|
||||
_Text.Color = ColorProcessed;
|
||||
_Text.Style = EStyle.Bold;
|
||||
|
||||
if (_Notes[jumpNote].Type == ENoteType.Freestyle)
|
||||
_Text.Style = EStyle.BoldItalic;
|
||||
|
||||
float diff = _Notes[jumpNote].EndBeat - _Notes[jumpNote].StartBeat;
|
||||
if (diff <= 0f)
|
||||
diff = 1f;
|
||||
|
||||
float p = (currentBeat - _Notes[jumpNote].StartBeat) / diff;
|
||||
if (p > 1f)
|
||||
p = 1f;
|
||||
|
||||
p = 1f - p;
|
||||
|
||||
if (diff == 1)
|
||||
_Text.Draw();
|
||||
else
|
||||
{
|
||||
float y = _Text.Y;
|
||||
_Text.Y -= _Text.Height * 0.1f * p;
|
||||
_Text.Draw();
|
||||
_Text.Y = y;
|
||||
}
|
||||
float y = _Text.Y;
|
||||
_Text.Y -= _Text.Height * 0.1f * p;
|
||||
_Text.Draw();
|
||||
_Text.Y = y;
|
||||
}
|
||||
}
|
||||
#endregion draw
|
||||
@@ -552,10 +526,10 @@ namespace VocaluxeLib.Menu
|
||||
public void LoadTextures()
|
||||
{
|
||||
if (_Theme.ColorName.Length > 0)
|
||||
Color = CBase.Theme.GetColor(_Theme.ColorName, _PartyModeID);
|
||||
_Color = CBase.Theme.GetColor(_Theme.ColorName, _PartyModeID);
|
||||
|
||||
if (_Theme.SelColorName.Length > 0)
|
||||
ColorProcessed = CBase.Theme.GetColor(_Theme.SelColorName, _PartyModeID);
|
||||
_ColorProcessed = CBase.Theme.GetColor(_Theme.SelColorName, _PartyModeID);
|
||||
}
|
||||
|
||||
public void ReloadTextures()
|
||||
|
||||
+122
-292
@@ -42,35 +42,18 @@ namespace VocaluxeLib.Menu
|
||||
private string _ThemePath = String.Empty;
|
||||
protected int _PartyModeID = -1;
|
||||
|
||||
private COrderedDictionaryLite<CBackground> _Backgrounds;
|
||||
private COrderedDictionaryLite<CButton> _Buttons;
|
||||
private COrderedDictionaryLite<CText> _Texts;
|
||||
private COrderedDictionaryLite<CStatic> _Statics;
|
||||
private COrderedDictionaryLite<CSelectSlide> _SelectSlides;
|
||||
private COrderedDictionaryLite<CSongMenu> _SongMenus;
|
||||
private COrderedDictionaryLite<CLyric> _Lyrics;
|
||||
private COrderedDictionaryLite<CSingNotes> _SingNotes;
|
||||
private COrderedDictionaryLite<CNameSelection> _NameSelections;
|
||||
private COrderedDictionaryLite<CEqualizer> _Equalizers;
|
||||
private COrderedDictionaryLite<CPlaylist> _Playlists;
|
||||
private COrderedDictionaryLite<CParticleEffect> _ParticleEffects;
|
||||
private COrderedDictionaryLite<CScreenSetting> _ScreenSettings;
|
||||
|
||||
private int _PrevMouseX;
|
||||
private int _PrevMouseY;
|
||||
|
||||
protected int _MouseDX;
|
||||
protected int _MouseDY;
|
||||
private int _MouseDX;
|
||||
private int _MouseDY;
|
||||
|
||||
protected bool _Active;
|
||||
|
||||
protected abstract int _ScreenVersion { get; }
|
||||
private string _ThemeName;
|
||||
public string ThemeName
|
||||
{
|
||||
get { return _ThemeName; }
|
||||
}
|
||||
public string ThemeName { get; private set; }
|
||||
|
||||
// ReSharper disable MemberCanBePrivate.Global
|
||||
protected string[] _ThemeBackgrounds;
|
||||
protected string[] _ThemeStatics;
|
||||
protected string[] _ThemeTexts;
|
||||
@@ -85,22 +68,32 @@ namespace VocaluxeLib.Menu
|
||||
protected string[] _ThemeParticleEffects;
|
||||
protected string[] _ThemeScreenSettings;
|
||||
|
||||
protected COrderedDictionaryLite<CButton> _Buttons { get; private set; }
|
||||
protected COrderedDictionaryLite<CText> _Texts { get; private set; }
|
||||
protected COrderedDictionaryLite<CBackground> _Backgrounds { get; private set; }
|
||||
protected COrderedDictionaryLite<CStatic> _Statics { get; private set; }
|
||||
protected COrderedDictionaryLite<CSelectSlide> _SelectSlides { get; private set; }
|
||||
protected COrderedDictionaryLite<CSongMenu> _SongMenus { get; private set; }
|
||||
protected COrderedDictionaryLite<CLyric> _Lyrics { get; private set; }
|
||||
protected COrderedDictionaryLite<CSingNotes> _SingNotes { get; private set; }
|
||||
protected COrderedDictionaryLite<CNameSelection> _NameSelections { get; private set; }
|
||||
protected COrderedDictionaryLite<CEqualizer> _Equalizers { get; private set; }
|
||||
protected COrderedDictionaryLite<CPlaylist> _Playlists { get; private set; }
|
||||
protected COrderedDictionaryLite<CParticleEffect> _ParticleEffects { get; private set; }
|
||||
protected COrderedDictionaryLite<CScreenSetting> _ScreenSettings { get; private set; }
|
||||
// ReSharper restore MemberCanBePrivate.Global
|
||||
|
||||
protected SRectF _ScreenArea;
|
||||
public SRectF ScreenArea
|
||||
{
|
||||
get { return _ScreenArea; }
|
||||
}
|
||||
|
||||
public int ThemeScreenVersion
|
||||
{
|
||||
get { return _ScreenVersion; }
|
||||
}
|
||||
|
||||
public virtual void Init()
|
||||
{
|
||||
_ThemeName = GetType().Name;
|
||||
if (_ThemeName[0] == 'C' && Char.IsUpper(_ThemeName[1]))
|
||||
_ThemeName = _ThemeName.Remove(0, 1);
|
||||
ThemeName = GetType().Name;
|
||||
if (ThemeName[0] == 'C' && Char.IsUpper(ThemeName[1]))
|
||||
ThemeName = ThemeName.Remove(0, 1);
|
||||
|
||||
_Interactions = new List<CInteraction>();
|
||||
_Selection = 0;
|
||||
@@ -149,7 +142,7 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
|
||||
#region ThemeHandler
|
||||
protected delegate void AddElementHandler<T>(T element, String key);
|
||||
private delegate void AddElementHandler<in T>(T element, String key);
|
||||
|
||||
private void _LoadThemeElement<T>(string[] elements, AddElementHandler<T> addElementHandler, CXMLReader xmlReader, int skinIndex) where T : IMenuElement
|
||||
{
|
||||
@@ -174,8 +167,7 @@ namespace VocaluxeLib.Menu
|
||||
if (xmlReader == null)
|
||||
return;
|
||||
|
||||
bool versionCheck = false;
|
||||
versionCheck = _CheckVersion(_ScreenVersion, xmlReader);
|
||||
bool versionCheck = _CheckVersion(_ScreenVersion, xmlReader);
|
||||
|
||||
int skinIndex = CBase.Theme.GetSkinIndex(_PartyModeID);
|
||||
|
||||
@@ -184,19 +176,19 @@ namespace VocaluxeLib.Menu
|
||||
_ThemePath = xmlPath;
|
||||
_LoadThemeBasics(xmlReader, skinIndex);
|
||||
|
||||
_LoadThemeElement<CBackground>(_ThemeBackgrounds, AddBackground, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CStatic>(_ThemeStatics, AddStatic, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CText>(_ThemeTexts, AddText, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CButton>(_ThemeButtons, AddButton, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CSelectSlide>(_ThemeSelectSlides, AddSelectSlide, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CSongMenu>(_ThemeSongMenus, AddSongMenu, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CLyric>(_ThemeLyrics, AddLyric, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CSingNotesClassic>(_ThemeSingNotes, AddSingNote, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CNameSelection>(_ThemeNameSelections, AddNameSelection, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CEqualizer>(_ThemeEqualizers, AddEqualizer, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CPlaylist>(_ThemePlaylists, AddPlaylist, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CParticleEffect>(_ThemeParticleEffects, AddParticleEffect, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CScreenSetting>(_ThemeScreenSettings, AddScreenSetting, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CBackground>(_ThemeBackgrounds, _AddBackground, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CStatic>(_ThemeStatics, _AddStatic, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CText>(_ThemeTexts, _AddText, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CButton>(_ThemeButtons, _AddButton, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CSelectSlide>(_ThemeSelectSlides, _AddSelectSlide, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CSongMenu>(_ThemeSongMenus, _AddSongMenu, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CLyric>(_ThemeLyrics, _AddLyric, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CSingNotesClassic>(_ThemeSingNotes, _AddSingNote, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CNameSelection>(_ThemeNameSelections, _AddNameSelection, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CEqualizer>(_ThemeEqualizers, _AddEqualizer, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CPlaylist>(_ThemePlaylists, _AddPlaylist, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CParticleEffect>(_ThemeParticleEffects, _AddParticleEffect, xmlReader, skinIndex);
|
||||
_LoadThemeElement<CScreenSetting>(_ThemeScreenSettings, _AddScreenSetting, xmlReader, skinIndex);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -205,10 +197,7 @@ namespace VocaluxeLib.Menu
|
||||
if (_ThemePath.Length == 0)
|
||||
return;
|
||||
|
||||
XmlWriterSettings settings = new XmlWriterSettings();
|
||||
settings.Indent = true;
|
||||
settings.Encoding = Encoding.UTF8;
|
||||
settings.ConformanceLevel = ConformanceLevel.Document;
|
||||
XmlWriterSettings settings = new XmlWriterSettings {Indent = true, Encoding = Encoding.UTF8, ConformanceLevel = ConformanceLevel.Document};
|
||||
|
||||
string file = Path.Combine(_ThemePath, ThemeName + ".xml");
|
||||
using (XmlWriter writer = XmlWriter.Create(file, settings))
|
||||
@@ -447,12 +436,14 @@ namespace VocaluxeLib.Menu
|
||||
#region ElementHandler
|
||||
|
||||
#region Create Elements
|
||||
// ReSharper disable UnusedMember.Global
|
||||
// ReSharper disable MemberCanBeProtected.Global
|
||||
public CButton GetNewButton()
|
||||
{
|
||||
return new CButton(_PartyModeID);
|
||||
}
|
||||
|
||||
public CButton GetNewButton(CButton button)
|
||||
public static CButton GetNewButton(CButton button)
|
||||
{
|
||||
return new CButton(button);
|
||||
}
|
||||
@@ -462,12 +453,12 @@ namespace VocaluxeLib.Menu
|
||||
return new CText(_PartyModeID);
|
||||
}
|
||||
|
||||
public CText GetNewText(CText text)
|
||||
public static CText GetNewText(CText text)
|
||||
{
|
||||
return new CText(text);
|
||||
}
|
||||
|
||||
public CText GetNewText(float x, float y, float z, float h, float mw, EAlignment align, EStyle style, string font, SColorF col, string text)
|
||||
public static CText GetNewText(float x, float y, float z, float h, float mw, EAlignment align, EStyle style, string font, SColorF col, string text)
|
||||
{
|
||||
return new CText(x, y, z, h, mw, align, style, font, col, text);
|
||||
}
|
||||
@@ -482,7 +473,7 @@ namespace VocaluxeLib.Menu
|
||||
return new CStatic(_PartyModeID);
|
||||
}
|
||||
|
||||
public CStatic GetNewStatic(CStatic oldStatic)
|
||||
public static CStatic GetNewStatic(CStatic oldStatic)
|
||||
{
|
||||
return new CStatic(oldStatic);
|
||||
}
|
||||
@@ -497,7 +488,7 @@ namespace VocaluxeLib.Menu
|
||||
return new CSelectSlide(_PartyModeID);
|
||||
}
|
||||
|
||||
public CSelectSlide GetNewSelectSlide(CSelectSlide slide)
|
||||
public static CSelectSlide GetNewSelectSlide(CSelectSlide slide)
|
||||
{
|
||||
return new CSelectSlide(slide);
|
||||
}
|
||||
@@ -536,75 +527,10 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
return new CParticleEffect(_PartyModeID, maxNumber, color, area, texture, size, type);
|
||||
}
|
||||
// ReSharper restore MemberCanBeProtected.Global
|
||||
// ReSharper restore UnusedMember.Global
|
||||
#endregion Create Elements
|
||||
|
||||
#region Get Elements
|
||||
public COrderedDictionaryLite<CButton> Buttons
|
||||
{
|
||||
get { return _Buttons; }
|
||||
}
|
||||
|
||||
public COrderedDictionaryLite<CText> Texts
|
||||
{
|
||||
get { return _Texts; }
|
||||
}
|
||||
|
||||
public COrderedDictionaryLite<CBackground> Backgrounds
|
||||
{
|
||||
get { return _Backgrounds; }
|
||||
}
|
||||
|
||||
public COrderedDictionaryLite<CStatic> Statics
|
||||
{
|
||||
get { return _Statics; }
|
||||
}
|
||||
|
||||
public COrderedDictionaryLite<CSelectSlide> SelectSlides
|
||||
{
|
||||
get { return _SelectSlides; }
|
||||
}
|
||||
|
||||
public COrderedDictionaryLite<CSongMenu> SongMenus
|
||||
{
|
||||
get { return _SongMenus; }
|
||||
}
|
||||
|
||||
public COrderedDictionaryLite<CLyric> Lyrics
|
||||
{
|
||||
get { return _Lyrics; }
|
||||
}
|
||||
|
||||
public COrderedDictionaryLite<CSingNotes> SingNotes
|
||||
{
|
||||
get { return _SingNotes; }
|
||||
}
|
||||
|
||||
public COrderedDictionaryLite<CNameSelection> NameSelections
|
||||
{
|
||||
get { return _NameSelections; }
|
||||
}
|
||||
|
||||
public COrderedDictionaryLite<CEqualizer> Equalizers
|
||||
{
|
||||
get { return _Equalizers; }
|
||||
}
|
||||
|
||||
public COrderedDictionaryLite<CPlaylist> Playlists
|
||||
{
|
||||
get { return _Playlists; }
|
||||
}
|
||||
|
||||
public COrderedDictionaryLite<CParticleEffect> ParticleEffects
|
||||
{
|
||||
get { return _ParticleEffects; }
|
||||
}
|
||||
|
||||
public COrderedDictionaryLite<CScreenSetting> ScreenSettings
|
||||
{
|
||||
get { return _ScreenSettings; }
|
||||
}
|
||||
#endregion Get Arrays
|
||||
|
||||
#endregion ElementHandler
|
||||
|
||||
#region MenuHandler
|
||||
@@ -826,18 +752,18 @@ namespace VocaluxeLib.Menu
|
||||
#region Drawing
|
||||
public virtual bool Draw()
|
||||
{
|
||||
DrawBG();
|
||||
DrawFG();
|
||||
_DrawBG();
|
||||
_DrawFG();
|
||||
return true;
|
||||
}
|
||||
|
||||
public void DrawBG()
|
||||
protected void _DrawBG()
|
||||
{
|
||||
foreach (CBackground bg in _Backgrounds)
|
||||
bg.Draw();
|
||||
}
|
||||
|
||||
public void DrawFG()
|
||||
protected void _DrawFG()
|
||||
{
|
||||
if (_Interactions.Count <= 0)
|
||||
return;
|
||||
@@ -846,29 +772,20 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
for (int i = 0; i < _Interactions.Count; i++)
|
||||
{
|
||||
if (_IsVisible(i) && (
|
||||
_Interactions[i].Type == EType.Button ||
|
||||
_Interactions[i].Type == EType.SelectSlide ||
|
||||
_Interactions[i].Type == EType.Static ||
|
||||
_Interactions[i].Type == EType.NameSelection ||
|
||||
_Interactions[i].Type == EType.Text ||
|
||||
_Interactions[i].Type == EType.SongMenu ||
|
||||
_Interactions[i].Type == EType.Equalizer ||
|
||||
_Interactions[i].Type == EType.Playlist ||
|
||||
_Interactions[i].Type == EType.ParticleEffect))
|
||||
{
|
||||
SZSort zs = new SZSort();
|
||||
zs.ID = i;
|
||||
zs.Z = _GetZValue(i);
|
||||
items.Add(zs);
|
||||
}
|
||||
if (!_IsVisible(i) ||
|
||||
(_Interactions[i].Type != EType.Button && _Interactions[i].Type != EType.SelectSlide && _Interactions[i].Type != EType.Static &&
|
||||
_Interactions[i].Type != EType.NameSelection && _Interactions[i].Type != EType.Text && _Interactions[i].Type != EType.SongMenu &&
|
||||
_Interactions[i].Type != EType.Equalizer && _Interactions[i].Type != EType.Playlist && _Interactions[i].Type != EType.ParticleEffect))
|
||||
continue;
|
||||
SZSort zs = new SZSort {ID = i, Z = _GetZValue(i)};
|
||||
items.Add(zs);
|
||||
}
|
||||
|
||||
if (items.Count <= 0)
|
||||
return;
|
||||
|
||||
|
||||
items.Sort(delegate(SZSort s1, SZSort s2) { return s2.Z.CompareTo(s1.Z); });
|
||||
items.Sort((s1, s2) => s2.Z.CompareTo(s1.Z));
|
||||
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
_DrawInteraction(items[i].ID);
|
||||
@@ -876,139 +793,76 @@ namespace VocaluxeLib.Menu
|
||||
#endregion Drawing
|
||||
|
||||
#region Elements
|
||||
public void AddBackground(CBackground bg)
|
||||
{
|
||||
AddBackground(bg, null);
|
||||
}
|
||||
|
||||
public void AddButton(CButton button)
|
||||
{
|
||||
AddButton(button, null);
|
||||
}
|
||||
|
||||
public void AddSelectSlide(CSelectSlide slide)
|
||||
{
|
||||
AddSelectSlide(slide, null);
|
||||
}
|
||||
|
||||
public void AddStatic(CStatic stat)
|
||||
{
|
||||
AddStatic(stat, null);
|
||||
}
|
||||
|
||||
public void AddText(CText text)
|
||||
{
|
||||
AddText(text, null);
|
||||
}
|
||||
|
||||
public void AddSongMenu(CSongMenu songmenu)
|
||||
{
|
||||
AddSongMenu(songmenu, null);
|
||||
}
|
||||
|
||||
public void AddLyric(CLyric lyric)
|
||||
{
|
||||
AddLyric(lyric, null);
|
||||
}
|
||||
|
||||
public void AddSingNote(CSingNotes sn)
|
||||
{
|
||||
AddSingNote(sn, null);
|
||||
}
|
||||
|
||||
public void AddNameSelection(CNameSelection ns)
|
||||
{
|
||||
AddNameSelection(ns, null);
|
||||
}
|
||||
|
||||
public void AddEqualizer(CEqualizer eq)
|
||||
{
|
||||
AddEqualizer(eq, null);
|
||||
}
|
||||
|
||||
public void AddPlaylist(CPlaylist pls)
|
||||
{
|
||||
AddPlaylist(pls, null);
|
||||
}
|
||||
|
||||
public void AddParticleEffect(CParticleEffect pe)
|
||||
{
|
||||
AddParticleEffect(pe, null);
|
||||
}
|
||||
|
||||
public void AddScreenSetting(CScreenSetting se)
|
||||
{
|
||||
AddScreenSetting(se, null);
|
||||
}
|
||||
|
||||
public void AddBackground(CBackground bg, String key)
|
||||
// ReSharper disable MemberCanBePrivate.Global
|
||||
protected void _AddBackground(CBackground bg, String key = null)
|
||||
{
|
||||
_AddInteraction(_Backgrounds.Add(bg, key), EType.Background);
|
||||
}
|
||||
|
||||
public void AddButton(CButton button, String key)
|
||||
protected void _AddButton(CButton button, String key = null)
|
||||
{
|
||||
_AddInteraction(_Buttons.Add(button, key), EType.Button);
|
||||
}
|
||||
|
||||
public void AddSelectSlide(CSelectSlide slide, String key)
|
||||
protected void _AddSelectSlide(CSelectSlide slide, String key = null)
|
||||
{
|
||||
_AddInteraction(_SelectSlides.Add(slide, key), EType.SelectSlide);
|
||||
}
|
||||
|
||||
public void AddStatic(CStatic stat, String key)
|
||||
protected void _AddStatic(CStatic stat, String key = null)
|
||||
{
|
||||
_AddInteraction(_Statics.Add(stat, key), EType.Static);
|
||||
}
|
||||
|
||||
public void AddText(CText text, String key)
|
||||
protected void _AddText(CText text, String key = null)
|
||||
{
|
||||
_AddInteraction(_Texts.Add(text, key), EType.Text);
|
||||
}
|
||||
|
||||
public void AddSongMenu(CSongMenu songmenu, String key)
|
||||
protected void _AddSongMenu(CSongMenu songmenu, String key = null)
|
||||
{
|
||||
_AddInteraction(_SongMenus.Add(songmenu, key), EType.SongMenu);
|
||||
}
|
||||
|
||||
public void AddLyric(CLyric lyric, String key)
|
||||
protected void _AddLyric(CLyric lyric, String key = null)
|
||||
{
|
||||
_AddInteraction(_Lyrics.Add(lyric, key), EType.Lyric);
|
||||
}
|
||||
|
||||
public void AddSingNote(CSingNotes sn, String key)
|
||||
protected void _AddSingNote(CSingNotes sn, String key = null)
|
||||
{
|
||||
_AddInteraction(_SingNotes.Add(sn, key), EType.SingNote);
|
||||
}
|
||||
|
||||
public void AddNameSelection(CNameSelection ns, String key)
|
||||
protected void _AddNameSelection(CNameSelection ns, String key = null)
|
||||
{
|
||||
_AddInteraction(_NameSelections.Add(ns, key), EType.NameSelection);
|
||||
}
|
||||
|
||||
public void AddEqualizer(CEqualizer eq, String key)
|
||||
protected void _AddEqualizer(CEqualizer eq, String key = null)
|
||||
{
|
||||
_AddInteraction(_Equalizers.Add(eq, key), EType.Equalizer);
|
||||
}
|
||||
|
||||
public void AddPlaylist(CPlaylist pls, String key)
|
||||
protected void _AddPlaylist(CPlaylist pls, String key = null)
|
||||
{
|
||||
_AddInteraction(_Playlists.Add(pls, key), EType.Playlist);
|
||||
}
|
||||
|
||||
public void AddParticleEffect(CParticleEffect pe, String key)
|
||||
protected void _AddParticleEffect(CParticleEffect pe, String key = null)
|
||||
{
|
||||
_AddInteraction(_ParticleEffects.Add(pe, key), EType.ParticleEffect);
|
||||
}
|
||||
|
||||
public void AddScreenSetting(CScreenSetting se, String key)
|
||||
protected void _AddScreenSetting(CScreenSetting se, String key = null)
|
||||
{
|
||||
_ScreenSettings.Add(se, key);
|
||||
}
|
||||
// ReSharper restore MemberCanBePrivate.Global
|
||||
#endregion Elements
|
||||
|
||||
#region InteractionHandling
|
||||
public void CheckInteraction()
|
||||
protected void _CheckInteraction()
|
||||
{
|
||||
if (!_IsEnabled(_Selection) || !_IsVisible(_Selection))
|
||||
PrevInteraction();
|
||||
@@ -1050,26 +904,23 @@ namespace VocaluxeLib.Menu
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool SetInteractionToButton(CButton button)
|
||||
protected void _SetInteractionToButton(CButton button)
|
||||
{
|
||||
for (int i = 0; i < _Interactions.Count; i++)
|
||||
{
|
||||
if (_Interactions[i].Type == EType.Button)
|
||||
{
|
||||
if (_Buttons[_Interactions[i].Num] == button)
|
||||
{
|
||||
_UnsetSelected();
|
||||
_UnsetHighlighted(_Selection);
|
||||
_Selection = i;
|
||||
_SetSelected();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (_Interactions[i].Type != EType.Button)
|
||||
continue;
|
||||
if (_Buttons[_Interactions[i].Num] != button)
|
||||
continue;
|
||||
_UnsetSelected();
|
||||
_UnsetHighlighted(_Selection);
|
||||
_Selection = i;
|
||||
_SetSelected();
|
||||
return;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool SetInteractionToSelectSlide(CSelectSlide slide)
|
||||
protected void _SetInteractionToSelectSlide(CSelectSlide slide)
|
||||
{
|
||||
for (int i = 0; i < _Interactions.Count; i++)
|
||||
{
|
||||
@@ -1081,11 +932,10 @@ namespace VocaluxeLib.Menu
|
||||
_UnsetHighlighted(_Selection);
|
||||
_Selection = i;
|
||||
_SetSelected();
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void ProcessMouseClick(int x, int y)
|
||||
@@ -1102,7 +952,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public void ProcessMouseMove(int x, int y)
|
||||
{
|
||||
SelectByMouse(x, y);
|
||||
_SelectByMouse(x, y);
|
||||
|
||||
if (_Selection >= _Interactions.Count || _Selection < 0)
|
||||
return;
|
||||
@@ -1114,41 +964,35 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
}
|
||||
|
||||
public void SelectByMouse(int x, int y)
|
||||
private void _SelectByMouse(int x, int y)
|
||||
{
|
||||
float z = CBase.Settings.GetZFar();
|
||||
for (int i = 0; i < _Interactions.Count; i++)
|
||||
{
|
||||
if ((CBase.Settings.GetGameState() == EGameState.EditTheme) || (!_Interactions[i].ThemeEditorOnly && _IsVisible(i) && _IsEnabled(i)))
|
||||
{
|
||||
if (_IsMouseOver(x, y, _Interactions[i]))
|
||||
{
|
||||
if (_GetZValue(_Interactions[i]) <= z)
|
||||
{
|
||||
z = _GetZValue(_Interactions[i]);
|
||||
_UnsetSelected();
|
||||
_Selection = i;
|
||||
_SetSelected();
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((CBase.Settings.GetGameState() != EGameState.EditTheme) && (_Interactions[i].ThemeEditorOnly || !_IsVisible(i) || !_IsEnabled(i)))
|
||||
continue;
|
||||
if (!_IsMouseOver(x, y, _Interactions[i]))
|
||||
continue;
|
||||
if (_GetZValue(_Interactions[i]) > z)
|
||||
continue;
|
||||
z = _GetZValue(_Interactions[i]);
|
||||
_UnsetSelected();
|
||||
_Selection = i;
|
||||
_SetSelected();
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsMouseOver(SMouseEvent mouseEvent)
|
||||
protected bool _IsMouseOver(SMouseEvent mouseEvent)
|
||||
{
|
||||
return IsMouseOver(mouseEvent.X, mouseEvent.Y);
|
||||
return _IsMouseOver(mouseEvent.X, mouseEvent.Y);
|
||||
}
|
||||
|
||||
public bool IsMouseOver(int x, int y)
|
||||
private bool _IsMouseOver(int x, int y)
|
||||
{
|
||||
if (_Selection >= _Interactions.Count || _Selection < 0)
|
||||
return false;
|
||||
|
||||
if (_Interactions.Count > 0)
|
||||
return _IsMouseOver(x, y, _Interactions[_Selection]);
|
||||
else
|
||||
return false;
|
||||
return _Interactions.Count > 0 && _IsMouseOver(x, y, _Interactions[_Selection]);
|
||||
}
|
||||
|
||||
private bool _IsMouseOver(int x, int y, CInteraction interact)
|
||||
@@ -1314,7 +1158,6 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
int element = _Selection;
|
||||
int stage = int.MaxValue;
|
||||
float distance = float.MaxValue;
|
||||
int direction = -1;
|
||||
|
||||
int mute = -1;
|
||||
@@ -1340,7 +1183,6 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
stage = stages[i];
|
||||
element = elements[i];
|
||||
distance = distances[i];
|
||||
direction = i;
|
||||
}
|
||||
}
|
||||
@@ -1469,10 +1311,7 @@ namespace VocaluxeLib.Menu
|
||||
inDirection = true;
|
||||
break;
|
||||
}
|
||||
if (!inDirection)
|
||||
return float.MaxValue;
|
||||
else
|
||||
return distance;
|
||||
return !inDirection ? float.MaxValue : distance;
|
||||
}
|
||||
|
||||
private float _GetDistance180(SKeyEvent key, SRectF actualRect, SRectF targetRect)
|
||||
@@ -1505,10 +1344,7 @@ namespace VocaluxeLib.Menu
|
||||
inDirection = true;
|
||||
break;
|
||||
}
|
||||
if (!inDirection)
|
||||
return float.MaxValue;
|
||||
else
|
||||
return distance;
|
||||
return !inDirection ? float.MaxValue : distance;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1679,6 +1515,7 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
}
|
||||
|
||||
// ReSharper disable UnusedMember.Local
|
||||
private void _ToggleHighlighted()
|
||||
{
|
||||
if (_Selection >= _Interactions.Count || _Selection < 0)
|
||||
@@ -1693,11 +1530,9 @@ namespace VocaluxeLib.Menu
|
||||
if (_Selection >= _Interactions.Count || _Selection < 0)
|
||||
return false;
|
||||
|
||||
if (_Interactions[_Selection].Type == EType.SelectSlide)
|
||||
return _SelectSlides[_Interactions[_Selection].Num].Highlighted;
|
||||
|
||||
return false;
|
||||
return _Interactions[_Selection].Type == EType.SelectSlide && _SelectSlides[_Interactions[_Selection].Num].Highlighted;
|
||||
}
|
||||
// ReSharper restore UnusedMember.Local
|
||||
|
||||
private bool _IsVisible(int interaction)
|
||||
{
|
||||
@@ -1988,30 +1823,25 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
if (actualVersion == reqVersion)
|
||||
return true;
|
||||
string msg = "Can't load screen file of screen \"" + ThemeName + "\", ";
|
||||
if (actualVersion < reqVersion)
|
||||
msg += "the file ist outdated! ";
|
||||
else
|
||||
{
|
||||
string msg = "Can't load screen file of screen \"" + ThemeName + "\", ";
|
||||
if (actualVersion < reqVersion)
|
||||
msg += "the file ist outdated! ";
|
||||
else
|
||||
msg += "the file is for newer program versions! ";
|
||||
msg += "the file is for newer program versions! ";
|
||||
|
||||
msg += "Current screen version is " + reqVersion.ToString();
|
||||
CBase.Log.LogError(msg);
|
||||
}
|
||||
msg += "Current screen version is " + reqVersion;
|
||||
CBase.Log.LogError(msg);
|
||||
return false;
|
||||
}
|
||||
|
||||
private void _LoadThemeBasics(CXMLReader xmlReader, int skinIndex)
|
||||
{
|
||||
string value = String.Empty;
|
||||
|
||||
// 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, xmlReader, skinIndex))
|
||||
{
|
||||
AddBackground(background);
|
||||
_AddBackground(background);
|
||||
background = new CBackground(_PartyModeID);
|
||||
i++;
|
||||
}
|
||||
@@ -2019,9 +1849,9 @@ namespace VocaluxeLib.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, xmlReader, skinIndex))
|
||||
{
|
||||
AddStatic(stat);
|
||||
_AddStatic(stat);
|
||||
stat = new CStatic(_PartyModeID);
|
||||
i++;
|
||||
}
|
||||
@@ -2029,9 +1859,9 @@ namespace VocaluxeLib.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, xmlReader, skinIndex))
|
||||
{
|
||||
AddText(text);
|
||||
_AddText(text);
|
||||
text = new CText(_PartyModeID);
|
||||
i++;
|
||||
}
|
||||
@@ -2039,9 +1869,9 @@ namespace VocaluxeLib.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, xmlReader, skinIndex))
|
||||
{
|
||||
AddParticleEffect(partef);
|
||||
_AddParticleEffect(partef);
|
||||
partef = new CParticleEffect(_PartyModeID);
|
||||
i++;
|
||||
}
|
||||
|
||||
@@ -46,8 +46,6 @@ namespace VocaluxeLib.Menu
|
||||
public readonly CStatic Avatar;
|
||||
public readonly CText Name;
|
||||
|
||||
public CTile() {}
|
||||
|
||||
public CTile(CStatic av, CText tex, int pl)
|
||||
{
|
||||
Avatar = av;
|
||||
@@ -65,7 +63,7 @@ namespace VocaluxeLib.Menu
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool Selected = false;
|
||||
public bool Selected;
|
||||
public bool Visible = true;
|
||||
|
||||
public SRectF Rect;
|
||||
@@ -85,7 +83,7 @@ namespace VocaluxeLib.Menu
|
||||
private int _TileW;
|
||||
private int _TileH;
|
||||
|
||||
public int Offset = 0;
|
||||
public int Offset;
|
||||
private int _ActualSelection = -1;
|
||||
public int Selection = -1;
|
||||
|
||||
@@ -129,9 +127,9 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref Rect.H);
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinEmptyTile", ref _Theme.TextureEmptyTileName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinEmptyTile", out _Theme.TextureEmptyTileName, String.Empty);
|
||||
|
||||
if (xmlReader.GetValue(item + "/ColorEmptyTile", ref _Theme.ColorEmptyTileName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/ColorEmptyTile", out _Theme.ColorEmptyTileName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorEmptyTileName, skinIndex, out ColorEmptyTile);
|
||||
else
|
||||
{
|
||||
@@ -141,7 +139,7 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref ColorEmptyTile.A);
|
||||
}
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinTileSelected", ref _Theme.TextureTileSelectedName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinTileSelected", out _Theme.TextureTileSelectedName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/W", ref _TileW);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/H", ref _TileH);
|
||||
@@ -151,9 +149,9 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/SpaceH", ref _SpaceH);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/Space", ref _Theme.NameSpace);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/H", ref _Theme.NameHeight);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Tiles/Name/Font", ref _Theme.NameFont, "Normal");
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Tiles/Name/Font", out _Theme.NameFont, "Normal");
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Tiles/Name/Style", ref _Theme.NameStyle);
|
||||
if (xmlReader.GetValue(item + "/Tiles/Name/Color", ref _Theme.NameColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Tiles/Name/Color", out _Theme.NameColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.NameColorName, skinIndex, out _Theme.NameColor);
|
||||
else
|
||||
{
|
||||
@@ -493,10 +491,8 @@ namespace VocaluxeLib.Menu
|
||||
_VisibleProfiles.Clear();
|
||||
for (int i = 0; i < CBase.Profiles.GetProfiles().Length; i++)
|
||||
{
|
||||
bool visible = false;
|
||||
bool visible = CBase.Profiles.GetProfiles()[i].Active == EOffOn.TR_CONFIG_ON;
|
||||
//Show profile only if active
|
||||
if (CBase.Profiles.GetProfiles()[i].Active == EOffOn.TR_CONFIG_ON)
|
||||
visible = true;
|
||||
for (int p = 0; p < CBase.Game.GetNumPlayer(); p++)
|
||||
{
|
||||
//Don't show profile if is selected, but if selected and guest
|
||||
|
||||
@@ -636,7 +636,6 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
int element = _Selection;
|
||||
int stage = int.MaxValue;
|
||||
float distance = float.MaxValue;
|
||||
int direction = -1;
|
||||
|
||||
int mute = -1;
|
||||
@@ -662,7 +661,6 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
stage = stages[i];
|
||||
element = elements[i];
|
||||
distance = distances[i];
|
||||
direction = i;
|
||||
}
|
||||
}
|
||||
@@ -1039,7 +1037,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
private void _DrawInteraction(int interaction)
|
||||
{
|
||||
bool sel = false;
|
||||
bool sel;
|
||||
switch (_Interactions[interaction].Type)
|
||||
{
|
||||
case EType.Static:
|
||||
|
||||
@@ -385,7 +385,7 @@ namespace VocaluxeLib.Menu
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", out _Theme.TextureName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
|
||||
@@ -393,7 +393,7 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref Rect.H);
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.ColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out Color);
|
||||
else
|
||||
{
|
||||
|
||||
@@ -189,7 +189,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public EEditMode EditMode;
|
||||
public int ActivePlaylistID = -1;
|
||||
public int Offset = 0;
|
||||
public int Offset;
|
||||
public int CurrentPlaylistElement = -1;
|
||||
|
||||
private CPlaylistElement _ChangeOrderElement;
|
||||
@@ -249,15 +249,15 @@ namespace VocaluxeLib.Menu
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackground", ref _Theme.TextureBackgroundName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundSelected", ref _Theme.SelTextureBackgroundName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackground", out _Theme.TextureBackgroundName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundSelected", out _Theme.SelTextureBackgroundName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref Rect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref Rect.H);
|
||||
if (xmlReader.GetValue(item + "/ColorBackground", ref _Theme.ColorBackgroundName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/ColorBackground", out _Theme.ColorBackgroundName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorBackgroundName, skinIndex, out BackgroundColor);
|
||||
else
|
||||
{
|
||||
@@ -266,7 +266,7 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundB", ref BackgroundColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundA", ref BackgroundColor.A);
|
||||
}
|
||||
if (xmlReader.GetValue(item + "/SColorBackground", ref _Theme.SelColorBackgroundName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/SColorBackground", out _Theme.SelColorBackgroundName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.SelColorBackgroundName, skinIndex, out BackgroundSelColor);
|
||||
else
|
||||
{
|
||||
@@ -1227,7 +1227,7 @@ namespace VocaluxeLib.Menu
|
||||
CSong song = CBase.Songs.GetSongByID(pec.SongID);
|
||||
_PlaylistElements[i].Cover.Texture = song.CoverTextureSmall;
|
||||
string t1 = _Theme.Text1.Text.Replace("%a", song.Artist).Replace("%t", song.Title);
|
||||
_PlaylistElements[i].Text1.Text = /*(Offset + i + 1).ToString() + ") " + */ song.Artist + " - " + song.Title; //TODO: Add text field for the number
|
||||
_PlaylistElements[i].Text1.Text = /*(Offset + i + 1) + ") " + */ song.Artist + " - " + song.Title; //TODO: Add text field for the number
|
||||
_PlaylistElements[i].SelectSlide.Clear();
|
||||
for (int g = 0; g < pec.Modes.Length; g++)
|
||||
{
|
||||
|
||||
@@ -18,8 +18,6 @@
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace VocaluxeLib.Menu
|
||||
{
|
||||
|
||||
@@ -68,7 +68,7 @@ namespace VocaluxeLib.Menu
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Value", ref _Theme.Value, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Value", out _Theme.Value, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Type", ref _Theme.Type);
|
||||
|
||||
if (_ThemeLoaded)
|
||||
|
||||
@@ -103,7 +103,7 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
|
||||
public bool Visible = true;
|
||||
public bool Highlighted = false;
|
||||
public bool Highlighted;
|
||||
|
||||
private bool _ArrowLeftSelected;
|
||||
private bool _ArrowRightSelected;
|
||||
@@ -115,7 +115,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
private readonly List<SRectF> _ValueBounds = new List<SRectF>();
|
||||
|
||||
public bool WithTextures = false;
|
||||
public bool WithTextures;
|
||||
|
||||
private int _Selection = -1;
|
||||
public int Selection
|
||||
@@ -249,15 +249,15 @@ namespace VocaluxeLib.Menu
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowLeft", ref _Theme.TextureArrowLeftName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowRight", ref _Theme.TextureArrowRightName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", out _Theme.TextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowLeft", out _Theme.TextureArrowLeftName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowRight", out _Theme.TextureArrowRightName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinSelected", ref _Theme.SelTextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowLeftSelected", ref _Theme.SelTextureArrowLeftName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowRightSelected", ref _Theme.SelTextureArrowRightName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinSelected", out _Theme.SelTextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowLeftSelected", out _Theme.SelTextureArrowLeftName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowRightSelected", out _Theme.SelTextureArrowRightName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinHighlighted", ref _Theme.HighlightTextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinHighlighted", out _Theme.HighlightTextureName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
|
||||
@@ -265,7 +265,7 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref Rect.H);
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.ColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out Color);
|
||||
else
|
||||
{
|
||||
@@ -275,7 +275,7 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/SColor", ref _Theme.SelColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/SColor", out _Theme.SelColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.SelColorName, skinIndex, out SelColor);
|
||||
else
|
||||
{
|
||||
@@ -285,7 +285,7 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref SelColor.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/HColor", ref _Theme.HighlightColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/HColor", out _Theme.HighlightColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.HighlightColorName, skinIndex, out HighlightColor);
|
||||
else
|
||||
{
|
||||
@@ -307,7 +307,7 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightW", ref RectArrowRight.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightH", ref RectArrowRight.H);
|
||||
|
||||
if (xmlReader.GetValue(item + "/ArrowColor", ref _Theme.ArrowColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/ArrowColor", out _Theme.ArrowColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.ArrowColorName, skinIndex, out ColorArrow);
|
||||
else
|
||||
{
|
||||
@@ -317,7 +317,7 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowA", ref ColorArrow.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/ArrowSColor", ref _Theme.SelArrowColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/ArrowSColor", out _Theme.SelArrowColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.SelArrowColorName, skinIndex, out SelColorArrow);
|
||||
else
|
||||
{
|
||||
@@ -327,7 +327,7 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowSA", ref SelColorArrow.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/TextColor", ref _Theme.TextColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/TextColor", out _Theme.TextColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.TextColorName, skinIndex, out TextColor);
|
||||
else
|
||||
{
|
||||
@@ -337,7 +337,7 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextA", ref TextColor.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/TextSColor", ref _Theme.SelTextColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/TextSColor", out _Theme.SelTextColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.SelTextColorName, skinIndex, out SelTextColor);
|
||||
else
|
||||
{
|
||||
@@ -353,7 +353,7 @@ namespace VocaluxeLib.Menu
|
||||
if (xmlReader.TryGetFloatValue(item + "/TextRelativeY", ref TextRelativeY))
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextRelativeY", ref TextRelativeY);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextMaxW", ref MaxW);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/TextFont", ref _Theme.TextFont, "Normal");
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/TextFont", out _Theme.TextFont, "Normal");
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/TextStyle", ref _Theme.TextStyle);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/NumVisible", ref _NumVisible);
|
||||
|
||||
@@ -148,7 +148,7 @@ namespace VocaluxeLib.Menu
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", out _Theme.TextureName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
|
||||
@@ -156,7 +156,7 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref Rect.H);
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.ColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out Color);
|
||||
else
|
||||
{
|
||||
@@ -268,8 +268,8 @@ namespace VocaluxeLib.Menu
|
||||
if (aspect != EAspect.Stretch)
|
||||
{
|
||||
RectangleF bounds2 = new RectangleF(bounds.X, bounds.Y, bounds.W, bounds.H);
|
||||
RectangleF rect2 = new RectangleF(0f, 0f, texture.Width, texture.Height);
|
||||
CHelper.SetRect(bounds2, ref rect2, texture.Width / texture.Height, aspect);
|
||||
RectangleF rect2;
|
||||
CHelper.SetRect(bounds2, out rect2, texture.Width / texture.Height, aspect);
|
||||
|
||||
rect.X = rect2.X;
|
||||
rect.Y = rect2.Y;
|
||||
|
||||
@@ -210,7 +210,7 @@ namespace VocaluxeLib.Menu
|
||||
public SColorF Color; //normal Color
|
||||
public SColorF SelColor; //selected Color for Buttons
|
||||
|
||||
public bool Reflection = false;
|
||||
public bool Reflection;
|
||||
public float ReflectionSpace;
|
||||
public float ReflectionHeight;
|
||||
|
||||
@@ -249,7 +249,7 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
}
|
||||
|
||||
public bool Selected = false;
|
||||
public bool Selected;
|
||||
public bool Visible = true;
|
||||
private bool _EditMode;
|
||||
public bool EditMode
|
||||
@@ -461,7 +461,7 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Height);
|
||||
xmlReader.TryGetFloatValue(item + "/MaxW", ref _MaxWidth);
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.ColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out Color);
|
||||
else
|
||||
{
|
||||
@@ -471,7 +471,7 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/SColor", ref _Theme.SelColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/SColor", out _Theme.SelColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.SelColorName, skinIndex, out SelColor);
|
||||
else
|
||||
{
|
||||
@@ -486,9 +486,9 @@ namespace VocaluxeLib.Menu
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Align", ref _Align);
|
||||
xmlReader.TryGetEnumValue(item + "/HAlign", ref _HAlign);
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Style", ref _Style);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Font", ref _Font, "Normal");
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Font", out _Font, "Normal");
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Text", ref _Theme.Text, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Text", out _Theme.Text, String.Empty);
|
||||
|
||||
if (xmlReader.ItemExists(item + "/Reflection") && !buttonText)
|
||||
{
|
||||
|
||||
@@ -62,8 +62,8 @@ namespace VocaluxeLib.Menu
|
||||
public bool TryGetEnumValue<T>(string cast, ref T value)
|
||||
where T : struct
|
||||
{
|
||||
string val = String.Empty;
|
||||
if (GetValue(cast, ref val, Enum.GetName(typeof(T), value)))
|
||||
string val;
|
||||
if (GetValue(cast, out val, Enum.GetName(typeof(T), value)))
|
||||
{
|
||||
CHelper.TryParse(val, out value, true);
|
||||
return true;
|
||||
@@ -73,8 +73,8 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public bool TryGetIntValue(string cast, ref int value)
|
||||
{
|
||||
string val = String.Empty;
|
||||
if (GetValue(cast, ref val, value.ToString()))
|
||||
string val;
|
||||
if (GetValue(cast, out val, value.ToString()))
|
||||
return int.TryParse(val, out value);
|
||||
return false;
|
||||
}
|
||||
@@ -94,37 +94,31 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public bool TryGetFloatValue(string cast, ref float value)
|
||||
{
|
||||
string val = String.Empty;
|
||||
if (GetValue(cast, ref val, value.ToString()))
|
||||
return CHelper.TryParse(val, out value);
|
||||
return false;
|
||||
string val;
|
||||
return GetValue(cast, out val, value.ToString()) && CHelper.TryParse(val, out value);
|
||||
}
|
||||
|
||||
public bool GetValue(string cast, ref string value, string defaultValue)
|
||||
public bool GetValue(string cast, out string value, string defaultValue)
|
||||
{
|
||||
XPathNodeIterator iterator;
|
||||
int results = 0;
|
||||
int resultCt = 0;
|
||||
string val = string.Empty;
|
||||
|
||||
_Navigator.MoveToFirstChild();
|
||||
iterator = _Navigator.Select(cast);
|
||||
XPathNodeIterator iterator = _Navigator.Select(cast);
|
||||
|
||||
while (iterator.MoveNext())
|
||||
{
|
||||
val = iterator.Current.Value;
|
||||
results++;
|
||||
resultCt++;
|
||||
}
|
||||
|
||||
if ((results == 0) || (results > 1))
|
||||
if (resultCt!=1)
|
||||
{
|
||||
value = defaultValue;
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
value = val;
|
||||
return true;
|
||||
}
|
||||
value = val;
|
||||
return true;
|
||||
}
|
||||
|
||||
public List<string> GetValues(string cast)
|
||||
|
||||
@@ -94,7 +94,7 @@ namespace VocaluxeLib.Menu
|
||||
X32 = 32
|
||||
}
|
||||
|
||||
public enum EColorDeep
|
||||
public enum EColorDepth
|
||||
{
|
||||
Bit8 = 8,
|
||||
Bit16 = 16,
|
||||
@@ -136,6 +136,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public enum EBufferSize
|
||||
{
|
||||
// ReSharper disable UnusedMember.Global
|
||||
B0 = 0,
|
||||
B512 = 512,
|
||||
B1024 = 1024,
|
||||
@@ -145,6 +146,7 @@ namespace VocaluxeLib.Menu
|
||||
B3072 = 3072,
|
||||
B3584 = 3584,
|
||||
B4096 = 4096
|
||||
// ReSharper restore UnusedMember.Global
|
||||
}
|
||||
|
||||
public enum EPlaybackLib
|
||||
|
||||
@@ -20,8 +20,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using VocaluxeLib.Menu.SingNotes;
|
||||
using VocaluxeLib.Menu.SongMenu;
|
||||
using VocaluxeLib.PartyModes;
|
||||
|
||||
@@ -273,7 +271,7 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
int Load(string videoFileName);
|
||||
bool Skip(int videoStream, float startPosition, float videoGap);
|
||||
bool GetFrame(int videoStream, ref STexture videoTexture, float time, ref float videoTime);
|
||||
bool GetFrame(int videoStream, ref STexture videoTexture, float time, out float videoTime);
|
||||
bool IsFinished(int videoStream);
|
||||
bool Close(int videoStream);
|
||||
}
|
||||
|
||||
@@ -258,10 +258,7 @@ namespace VocaluxeLib.Menu.SingNotes
|
||||
#region Methods
|
||||
public bool IsPerfect(CNote compareNote)
|
||||
{
|
||||
bool result = true;
|
||||
|
||||
if (!Hit)
|
||||
result = false;
|
||||
bool result = Hit;
|
||||
|
||||
if (StartBeat != compareNote.StartBeat)
|
||||
result = false;
|
||||
|
||||
@@ -100,17 +100,17 @@ namespace VocaluxeLib.Menu.SingNotes
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinLeft", ref _Theme.SkinLeftName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinMiddle", ref _Theme.SkinMiddleName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinRight", ref _Theme.SkinRightName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinLeft", out _Theme.SkinLeftName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinMiddle", out _Theme.SkinMiddleName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinRight", out _Theme.SkinRightName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundLeft", ref _Theme.SkinBackgroundLeftName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundMiddle", ref _Theme.SkinBackgroundMiddleName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundRight", ref _Theme.SkinBackgroundRightName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundLeft", out _Theme.SkinBackgroundLeftName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundMiddle", out _Theme.SkinBackgroundMiddleName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundRight", out _Theme.SkinBackgroundRightName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinGoldenStar", ref _Theme.SkinGoldenStarName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinToneHelper", ref _Theme.SkinToneHelperName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinPerfectNoteStar", ref _Theme.SkinPerfectNoteStarName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinGoldenStar", out _Theme.SkinGoldenStarName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinToneHelper", out _Theme.SkinToneHelperName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinPerfectNoteStar", out _Theme.SkinPerfectNoteStarName, String.Empty);
|
||||
|
||||
_BarPos = new SRectF[CBase.Settings.GetMaxNumPlayer(),CBase.Settings.GetMaxNumPlayer()];
|
||||
for (int numplayer = 0; numplayer < CBase.Settings.GetMaxNumPlayer(); numplayer++)
|
||||
@@ -120,7 +120,7 @@ namespace VocaluxeLib.Menu.SingNotes
|
||||
if (player <= numplayer)
|
||||
{
|
||||
_BarPos[player, numplayer] = new SRectF();
|
||||
string target = "/BarPositions/P" + (player + 1).ToString() + "N" + (numplayer + 1).ToString();
|
||||
string target = "/BarPositions/P" + (player + 1) + "N" + (numplayer + 1);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "X", ref _BarPos[player, numplayer].X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "Y", ref _BarPos[player, numplayer].Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "Z", ref _BarPos[player, numplayer].Z);
|
||||
@@ -182,7 +182,7 @@ namespace VocaluxeLib.Menu.SingNotes
|
||||
{
|
||||
if (player <= numplayer)
|
||||
{
|
||||
string target = "P" + (player + 1).ToString() + "N" + (numplayer + 1).ToString();
|
||||
string target = "P" + (player + 1) + "N" + (numplayer + 1);
|
||||
|
||||
writer.WriteElementString(target + "X", _BarPos[player, numplayer].X.ToString("#0"));
|
||||
writer.WriteElementString(target + "Y", _BarPos[player, numplayer].Y.ToString("#0"));
|
||||
|
||||
+217
-238
@@ -127,9 +127,9 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
public SMedley Medley = new SMedley(0);
|
||||
|
||||
public bool CalculateMedley = true;
|
||||
public float PreviewStart = 0f;
|
||||
public float PreviewStart;
|
||||
|
||||
public int ShortEnd = 0;
|
||||
public int ShortEnd;
|
||||
|
||||
public Encoding Encoding = Encoding.Default;
|
||||
public string Folder = String.Empty;
|
||||
@@ -179,8 +179,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
{
|
||||
if (_CoverBigLoaded)
|
||||
return _CoverTextureBig;
|
||||
else
|
||||
return _CoverTextureSmall;
|
||||
return _CoverTextureSmall;
|
||||
}
|
||||
set
|
||||
{
|
||||
@@ -195,23 +194,23 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
public string TitleSorting = String.Empty;
|
||||
public string ArtistSorting = String.Empty;
|
||||
|
||||
public float Start = 0f;
|
||||
public float Finish = 0f;
|
||||
public float Start;
|
||||
public float Finish;
|
||||
|
||||
public float BPM = 1f;
|
||||
public float Gap = 0f;
|
||||
public float VideoGap = 0f;
|
||||
public float Gap;
|
||||
public float VideoGap;
|
||||
|
||||
public string DuetPart1 = String.Empty;
|
||||
public string DuetPart2 = String.Empty;
|
||||
|
||||
public List<string> Comment = new List<string>();
|
||||
private readonly List<string> _Comment = new List<string>();
|
||||
|
||||
// Sorting
|
||||
public int ID;
|
||||
public bool Visible = true;
|
||||
public int CatIndex = -1;
|
||||
public bool Selected = false;
|
||||
private readonly bool _Visible = true;
|
||||
private readonly int _CatIndex = -1;
|
||||
private readonly bool _Selected;
|
||||
public bool IsDuet
|
||||
{
|
||||
get { return Notes.Lines.Length > 1; }
|
||||
@@ -297,14 +296,14 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
Gap = song.Gap;
|
||||
VideoGap = song.VideoGap;
|
||||
|
||||
Comment = new List<string>();
|
||||
foreach (string value in song.Comment)
|
||||
Comment.Add(value);
|
||||
_Comment = new List<string>();
|
||||
foreach (string value in song._Comment)
|
||||
_Comment.Add(value);
|
||||
|
||||
ID = song.ID;
|
||||
Visible = song.Visible;
|
||||
CatIndex = song.CatIndex;
|
||||
Selected = song.Selected;
|
||||
_Visible = song._Visible;
|
||||
_CatIndex = song._CatIndex;
|
||||
_Selected = song._Selected;
|
||||
|
||||
Edition = new List<string>();
|
||||
foreach (string value in song.Edition)
|
||||
@@ -339,23 +338,24 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
return false;
|
||||
|
||||
Folder = Path.GetDirectoryName(filePath);
|
||||
if (Folder == null)
|
||||
return false;
|
||||
|
||||
foreach (string folder in CBase.Config.GetSongFolder())
|
||||
{
|
||||
if (Folder.Contains(folder))
|
||||
if (!Folder.Contains(folder))
|
||||
continue;
|
||||
if (Folder.Length == folder.Length)
|
||||
FolderName = "Songs";
|
||||
else
|
||||
{
|
||||
if (Folder.Length == folder.Length)
|
||||
FolderName = "Songs";
|
||||
else
|
||||
{
|
||||
FolderName = Folder.Substring(folder.Length + 1, Folder.Length - folder.Length - 1);
|
||||
FolderName = Folder.Substring(folder.Length + 1, Folder.Length - folder.Length - 1);
|
||||
|
||||
int pos = FolderName.IndexOf("\\");
|
||||
if (pos >= 0)
|
||||
FolderName = FolderName.Substring(0, pos);
|
||||
}
|
||||
break;
|
||||
int pos = FolderName.IndexOf("\\", StringComparison.Ordinal);
|
||||
if (pos >= 0)
|
||||
FolderName = FolderName.Substring(0, pos);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
FileName = Path.GetFileName(filePath);
|
||||
@@ -366,184 +366,176 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
{
|
||||
sr = new StreamReader(filePath, Encoding.Default, true);
|
||||
|
||||
string line;
|
||||
|
||||
int pos = -1;
|
||||
string identifier = String.Empty;
|
||||
string value = String.Empty;
|
||||
|
||||
while (!sr.EndOfStream)
|
||||
{
|
||||
line = sr.ReadLine();
|
||||
string line = sr.ReadLine();
|
||||
if (line.Length == 0)
|
||||
continue;
|
||||
if (!line[0].ToString().Equals("#"))
|
||||
break;
|
||||
|
||||
pos = line.IndexOf(":");
|
||||
int pos = line.IndexOf(":", StringComparison.Ordinal);
|
||||
|
||||
if (pos > 0)
|
||||
if (pos <= 0)
|
||||
continue;
|
||||
string identifier = line.Substring(1, pos - 1).Trim().ToUpper();
|
||||
string value = line.Substring(pos + 1, line.Length - pos - 1).Trim();
|
||||
|
||||
if (value.Length > 0)
|
||||
{
|
||||
identifier = line.Substring(1, pos - 1).Trim().ToUpper();
|
||||
value = line.Substring(pos + 1, line.Length - pos - 1).Trim();
|
||||
|
||||
if (value.Length > 0)
|
||||
switch (identifier)
|
||||
{
|
||||
switch (identifier)
|
||||
{
|
||||
case "ENCODING":
|
||||
Encoding = CEncoding.GetEncoding(value);
|
||||
sr.Dispose();
|
||||
sr = null;
|
||||
sr = new StreamReader(filePath, Encoding);
|
||||
identifier = String.Empty;
|
||||
case "ENCODING":
|
||||
Encoding = CEncoding.GetEncoding(value);
|
||||
sr.Dispose();
|
||||
sr = null;
|
||||
sr = new StreamReader(filePath, Encoding);
|
||||
|
||||
//Scip everything till encoding
|
||||
while (!sr.EndOfStream)
|
||||
//Scip everything till encoding
|
||||
while (!sr.EndOfStream)
|
||||
{
|
||||
line = sr.ReadLine();
|
||||
if (line.Length == 0)
|
||||
continue;
|
||||
if (!line[0].ToString().Equals("#"))
|
||||
break;
|
||||
|
||||
pos = line.IndexOf(":", StringComparison.Ordinal);
|
||||
|
||||
if (pos > 0)
|
||||
{
|
||||
line = sr.ReadLine();
|
||||
if (line.Length == 0)
|
||||
continue;
|
||||
if (!line[0].ToString().Equals("#"))
|
||||
identifier = line.Substring(1, pos - 1).Trim().ToUpper();
|
||||
if (identifier == "ENCODING")
|
||||
break;
|
||||
|
||||
pos = line.IndexOf(":");
|
||||
|
||||
if (pos > 0)
|
||||
{
|
||||
identifier = line.Substring(1, pos - 1).Trim().ToUpper();
|
||||
if (identifier == "ENCODING")
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "TITLE":
|
||||
if (value.Length > 0)
|
||||
{
|
||||
Title = value;
|
||||
headerFlags |= EHeaderFlags.Title;
|
||||
}
|
||||
break;
|
||||
case "ARTIST":
|
||||
if (value.Length > 0)
|
||||
{
|
||||
Artist = value;
|
||||
headerFlags |= EHeaderFlags.Artist;
|
||||
}
|
||||
break;
|
||||
case "TITLE-ON-SORTING":
|
||||
if (value.Length > 0)
|
||||
TitleSorting = value;
|
||||
break;
|
||||
case "ARTIST-ON-SORTING":
|
||||
if (value.Length > 0)
|
||||
ArtistSorting = value;
|
||||
break;
|
||||
case "P1":
|
||||
if (value.Length > 0)
|
||||
DuetPart1 = value;
|
||||
break;
|
||||
case "P2":
|
||||
if (value.Length > 0)
|
||||
DuetPart2 = value;
|
||||
break;
|
||||
case "MP3":
|
||||
if (File.Exists(Path.Combine(Folder, value)))
|
||||
{
|
||||
MP3FileName = value;
|
||||
headerFlags |= EHeaderFlags.MP3;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "TITLE":
|
||||
if (value.Length > 0)
|
||||
{
|
||||
Title = value;
|
||||
headerFlags |= EHeaderFlags.Title;
|
||||
}
|
||||
break;
|
||||
case "ARTIST":
|
||||
if (value.Length > 0)
|
||||
{
|
||||
Artist = value;
|
||||
headerFlags |= EHeaderFlags.Artist;
|
||||
}
|
||||
break;
|
||||
case "TITLE-ON-SORTING":
|
||||
if (value.Length > 0)
|
||||
TitleSorting = value;
|
||||
break;
|
||||
case "ARTIST-ON-SORTING":
|
||||
if (value.Length > 0)
|
||||
ArtistSorting = value;
|
||||
break;
|
||||
case "P1":
|
||||
if (value.Length > 0)
|
||||
DuetPart1 = value;
|
||||
break;
|
||||
case "P2":
|
||||
if (value.Length > 0)
|
||||
DuetPart2 = value;
|
||||
break;
|
||||
case "MP3":
|
||||
if (File.Exists(Path.Combine(Folder, value)))
|
||||
{
|
||||
MP3FileName = value;
|
||||
headerFlags |= EHeaderFlags.MP3;
|
||||
}
|
||||
else
|
||||
{
|
||||
CBase.Log.LogError("Can't find audio file: " + Path.Combine(Folder, value));
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case "BPM":
|
||||
if (CHelper.TryParse(value, out BPM))
|
||||
{
|
||||
BPM *= 4;
|
||||
headerFlags |= EHeaderFlags.BPM;
|
||||
}
|
||||
break;
|
||||
case "EDITION":
|
||||
if (value.Length > 1)
|
||||
Edition.Add(value);
|
||||
break;
|
||||
case "GENRE":
|
||||
if (value.Length > 1)
|
||||
Genre.Add(value);
|
||||
break;
|
||||
case "YEAR":
|
||||
int num;
|
||||
if (value.Length == 4 && int.TryParse(value, out num) && num != 0)
|
||||
Year = value;
|
||||
break;
|
||||
case "LANGUAGE":
|
||||
if (value.Length > 1)
|
||||
Language.Add(value);
|
||||
break;
|
||||
case "COMMENT":
|
||||
if (value.Length > 1)
|
||||
_Comment.Add(value);
|
||||
break;
|
||||
case "GAP":
|
||||
if (CHelper.TryParse(value, out Gap))
|
||||
Gap /= 1000f;
|
||||
break;
|
||||
case "COVER":
|
||||
if (File.Exists(Path.Combine(Folder, value)))
|
||||
CoverFileName = value;
|
||||
break;
|
||||
case "BACKGROUND":
|
||||
if (File.Exists(Path.Combine(Folder, value)))
|
||||
BackgroundFileName = value;
|
||||
break;
|
||||
case "VIDEO":
|
||||
if (File.Exists(Path.Combine(Folder, value)))
|
||||
VideoFileName = value;
|
||||
else
|
||||
CBase.Log.LogError("Can't find video file: " + Path.Combine(Folder, value));
|
||||
break;
|
||||
case "VIDEOGAP":
|
||||
CHelper.TryParse(value, out VideoGap);
|
||||
break;
|
||||
case "VIDEOASPECT":
|
||||
CHelper.TryParse(value, out VideoAspect, true);
|
||||
break;
|
||||
case "START":
|
||||
CHelper.TryParse(value, out Start);
|
||||
break;
|
||||
case "END":
|
||||
if (CHelper.TryParse(value, out Finish))
|
||||
Finish /= 1000f;
|
||||
break;
|
||||
case "PREVIEWSTART":
|
||||
if (CHelper.TryParse(value, out PreviewStart))
|
||||
{
|
||||
if (PreviewStart < 0f)
|
||||
PreviewStart = 0f;
|
||||
else
|
||||
{
|
||||
CBase.Log.LogError("Can't find audio file: " + Path.Combine(Folder, value));
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case "BPM":
|
||||
if (CHelper.TryParse(value, out BPM))
|
||||
{
|
||||
BPM *= 4;
|
||||
headerFlags |= EHeaderFlags.BPM;
|
||||
}
|
||||
break;
|
||||
case "EDITION":
|
||||
if (value.Length > 1)
|
||||
Edition.Add(value);
|
||||
break;
|
||||
case "GENRE":
|
||||
if (value.Length > 1)
|
||||
Genre.Add(value);
|
||||
break;
|
||||
case "YEAR":
|
||||
int num = 0;
|
||||
if (value.Length == 4 && int.TryParse(value, out num) && num != 0)
|
||||
Year = value;
|
||||
break;
|
||||
case "LANGUAGE":
|
||||
if (value.Length > 1)
|
||||
Language.Add(value);
|
||||
break;
|
||||
case "COMMENT":
|
||||
if (value.Length > 1)
|
||||
Comment.Add(value);
|
||||
break;
|
||||
case "GAP":
|
||||
if (CHelper.TryParse(value, out Gap))
|
||||
Gap /= 1000f;
|
||||
break;
|
||||
case "COVER":
|
||||
if (File.Exists(Path.Combine(Folder, value)))
|
||||
CoverFileName = value;
|
||||
break;
|
||||
case "BACKGROUND":
|
||||
if (File.Exists(Path.Combine(Folder, value)))
|
||||
BackgroundFileName = value;
|
||||
break;
|
||||
case "VIDEO":
|
||||
if (File.Exists(Path.Combine(Folder, value)))
|
||||
VideoFileName = value;
|
||||
else
|
||||
CBase.Log.LogError("Can't find video file: " + Path.Combine(Folder, value));
|
||||
break;
|
||||
case "VIDEOGAP":
|
||||
CHelper.TryParse(value, out VideoGap);
|
||||
break;
|
||||
case "VIDEOASPECT":
|
||||
CHelper.TryParse(value, out VideoAspect, true);
|
||||
break;
|
||||
case "START":
|
||||
CHelper.TryParse(value, out Start);
|
||||
break;
|
||||
case "END":
|
||||
if (CHelper.TryParse(value, out Finish))
|
||||
Finish /= 1000f;
|
||||
break;
|
||||
case "PREVIEWSTART":
|
||||
if (CHelper.TryParse(value, out PreviewStart))
|
||||
{
|
||||
if (PreviewStart < 0f)
|
||||
PreviewStart = 0f;
|
||||
else
|
||||
headerFlags |= EHeaderFlags.PreviewStart;
|
||||
}
|
||||
break;
|
||||
case "MEDLEYSTARTBEAT":
|
||||
if (int.TryParse(value, out Medley.StartBeat))
|
||||
headerFlags |= EHeaderFlags.MedleyStartBeat;
|
||||
break;
|
||||
case "MEDLEYENDBEAT":
|
||||
if (int.TryParse(value, out Medley.EndBeat))
|
||||
headerFlags |= EHeaderFlags.MedleyEndBeat;
|
||||
break;
|
||||
case "CALCMEDLEY":
|
||||
if (value.ToUpper() == "OFF")
|
||||
CalculateMedley = false;
|
||||
break;
|
||||
case "RELATIVE":
|
||||
if (value.ToUpper() == "YES" && value.ToUpper() != "NO")
|
||||
Relative = EOffOn.TR_CONFIG_ON;
|
||||
break;
|
||||
}
|
||||
headerFlags |= EHeaderFlags.PreviewStart;
|
||||
}
|
||||
break;
|
||||
case "MEDLEYSTARTBEAT":
|
||||
if (int.TryParse(value, out Medley.StartBeat))
|
||||
headerFlags |= EHeaderFlags.MedleyStartBeat;
|
||||
break;
|
||||
case "MEDLEYENDBEAT":
|
||||
if (int.TryParse(value, out Medley.EndBeat))
|
||||
headerFlags |= EHeaderFlags.MedleyEndBeat;
|
||||
break;
|
||||
case "CALCMEDLEY":
|
||||
if (value.ToUpper() == "OFF")
|
||||
CalculateMedley = false;
|
||||
break;
|
||||
case "RELATIVE":
|
||||
if (value.ToUpper() == "YES" && value.ToUpper() != "NO")
|
||||
Relative = EOffOn.TR_CONFIG_ON;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} //end of while
|
||||
@@ -589,15 +581,10 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
}
|
||||
}
|
||||
|
||||
if ((headerFlags & EHeaderFlags.PreviewStart) == 0 || PreviewStart == 0f)
|
||||
if ((headerFlags & EHeaderFlags.PreviewStart) == 0 || Math.Abs(PreviewStart) < float.Epsilon)
|
||||
{
|
||||
//PreviewStart is not set or <=0
|
||||
if ((headerFlags & EHeaderFlags.MedleyStartBeat) != 0)
|
||||
//fallback to MedleyStart
|
||||
PreviewStart = CBase.Game.GetTimeFromBeats(Medley.StartBeat, BPM);
|
||||
else
|
||||
//else set to 0, it will be set in FindRefrainStart
|
||||
PreviewStart = 0f;
|
||||
PreviewStart = (headerFlags & EHeaderFlags.MedleyStartBeat) != 0 ? CBase.Game.GetTimeFromBeats(Medley.StartBeat, BPM) : 0f;
|
||||
}
|
||||
|
||||
if ((headerFlags & EHeaderFlags.MedleyStartBeat) != 0 && (headerFlags & EHeaderFlags.MedleyEndBeat) != 0)
|
||||
@@ -648,14 +635,9 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
}
|
||||
|
||||
char tempC = char.MinValue;
|
||||
int param1 = 0;
|
||||
int param2 = 0;
|
||||
int param3 = 0;
|
||||
int currentPos = 0;
|
||||
string paramS = String.Empty;
|
||||
bool isNewSentence = false;
|
||||
|
||||
string line = String.Empty;
|
||||
int player = 0;
|
||||
int fileLineNo = 0;
|
||||
|
||||
@@ -669,7 +651,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
//Search for Note Beginning
|
||||
while (!sr.EndOfStream)
|
||||
{
|
||||
line = sr.ReadLine();
|
||||
sr.ReadLine();
|
||||
fileLineNo++;
|
||||
|
||||
tempC = (char)sr.Peek();
|
||||
@@ -684,16 +666,18 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
|
||||
if (sr.EndOfStream)
|
||||
{
|
||||
CBase.Log.LogError("Error loading song. Line No.: " + fileLineNo.ToString() + ". No lyrics/notes found: " + filePath);
|
||||
CBase.Log.LogError("Error loading song. Line No.: " + fileLineNo + ". No lyrics/notes found: " + filePath);
|
||||
return false;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
char chr;
|
||||
int param2;
|
||||
int param1;
|
||||
switch (tempC)
|
||||
{
|
||||
case 'P':
|
||||
char chr;
|
||||
while ((chr = (char)sr.Read()) == ' ') {}
|
||||
|
||||
int.TryParse(chr.ToString(), out param1);
|
||||
@@ -705,7 +689,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
player = 2;
|
||||
else
|
||||
{
|
||||
CBase.Log.LogError("Error loading song. Line No.: " + fileLineNo.ToString() + ". Wrong or missing number after \"P\": " + filePath);
|
||||
CBase.Log.LogError("Error loading song. Line No.: " + fileLineNo + ". Wrong or missing number after \"P\": " + filePath);
|
||||
return false;
|
||||
}
|
||||
sr.ReadLine();
|
||||
@@ -720,10 +704,10 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
param2 = CHelper.TryReadInt(sr);
|
||||
|
||||
sr.Read();
|
||||
param3 = CHelper.TryReadInt(sr);
|
||||
int param3 = CHelper.TryReadInt(sr);
|
||||
|
||||
sr.Read();
|
||||
paramS = sr.ReadLine();
|
||||
string paramS = sr.ReadLine();
|
||||
|
||||
ENoteType noteType;
|
||||
|
||||
@@ -751,7 +735,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
case '-':
|
||||
if (isNewSentence)
|
||||
{
|
||||
CBase.Log.LogError("Error loading song. Line No.: " + fileLineNo.ToString() + ". Double sentence break: " + filePath);
|
||||
CBase.Log.LogError("Error loading song. Line No.: " + fileLineNo + ". Double sentence break: " + filePath);
|
||||
return false;
|
||||
}
|
||||
sr.Read();
|
||||
@@ -779,10 +763,10 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
sr.ReadLine();
|
||||
break;
|
||||
default:
|
||||
CBase.Log.LogError("Error loading song. Line No.: " + fileLineNo.ToString() + ". Unexpected or missing character (" + tempC + "): " + filePath);
|
||||
CBase.Log.LogError("Error loading song. Line No.: " + fileLineNo + ". Unexpected or missing character (" + tempC + "): " + filePath);
|
||||
return false;
|
||||
}
|
||||
int c = 0;
|
||||
int c;
|
||||
do
|
||||
{
|
||||
c = sr.Read();
|
||||
@@ -796,7 +780,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CBase.Log.LogError("Error loading song. Line No.: " + fileLineNo.ToString() + ". An unhandled exception occured (" + e.Message + "): " + filePath);
|
||||
CBase.Log.LogError("Error loading song. Line No.: " + fileLineNo + ". An unhandled exception occured (" + e.Message + "): " + filePath);
|
||||
if (sr != null)
|
||||
sr.Dispose();
|
||||
return false;
|
||||
@@ -919,29 +903,26 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
{
|
||||
for (int j = i + 1; j < lines.LineCount; j++)
|
||||
{
|
||||
if (sentences[i] == sentences[j] && sentences[i].Length > 0)
|
||||
if (sentences[i] != sentences[j] || sentences[i] == "")
|
||||
continue;
|
||||
SSeries tempSeries = new SSeries {Start = i, End = i};
|
||||
|
||||
int max;
|
||||
if (j + j - i > lines.LineCount)
|
||||
max = lines.LineCount - 1 - j;
|
||||
else
|
||||
max = j - i - 1;
|
||||
|
||||
for (int k = 1; k <= max; k++)
|
||||
{
|
||||
SSeries tempSeries = new SSeries();
|
||||
tempSeries.Start = i;
|
||||
tempSeries.End = i;
|
||||
|
||||
int max = 0;
|
||||
if (j + j - i - 1 > lines.LineCount - 1)
|
||||
max = lines.LineCount - 1 - j;
|
||||
if (sentences[i + k] == sentences[j + k] && sentences[i + k]!="")
|
||||
tempSeries.End = i + k;
|
||||
else
|
||||
max = j - i - 1;
|
||||
|
||||
for (int k = 1; k <= max; k++)
|
||||
{
|
||||
if (sentences[i + k] == sentences[j + k] && sentences[i + k].Length > 0)
|
||||
tempSeries.End = i + k;
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
tempSeries.Length = tempSeries.End - tempSeries.Start + 1;
|
||||
series.Add(tempSeries);
|
||||
break;
|
||||
}
|
||||
|
||||
tempSeries.Length = tempSeries.End - tempSeries.Start + 1;
|
||||
series.Add(tempSeries);
|
||||
}
|
||||
}
|
||||
return series;
|
||||
@@ -981,12 +962,10 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
Medley.StartBeat = lines.Line[series[longest].Start].FirstNoteBeat;
|
||||
Medley.EndBeat = lines.Line[series[longest].End].LastNoteBeat;
|
||||
|
||||
bool foundEnd = false;
|
||||
bool foundEnd = CBase.Game.GetTimeFromBeats(Medley.StartBeat, BPM) + CBase.Settings.GetMedleyMinDuration() >
|
||||
CBase.Game.GetTimeFromBeats(Medley.EndBeat, BPM);
|
||||
|
||||
// set end if duration > MedleyMinDuration
|
||||
if (CBase.Game.GetTimeFromBeats(Medley.StartBeat, BPM) + CBase.Settings.GetMedleyMinDuration() >
|
||||
CBase.Game.GetTimeFromBeats(Medley.EndBeat, BPM))
|
||||
foundEnd = true;
|
||||
|
||||
if (!foundEnd)
|
||||
{
|
||||
|
||||
@@ -44,6 +44,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
public CSongMenuDreidel(int partyModeID)
|
||||
: base(partyModeID) {}
|
||||
|
||||
// ReSharper disable RedundantOverridenMember
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
@@ -58,5 +59,6 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
_SongLength = _Theme.songMenuDreidel.TextSongLength;
|
||||
**/
|
||||
}
|
||||
// ReSharper restore RedundantOverridenMember
|
||||
}
|
||||
}
|
||||
@@ -112,19 +112,19 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
private int _Actsongstream = -1;
|
||||
protected STexture _Vidtex = new STexture(-1);
|
||||
|
||||
protected bool _Initialized = false;
|
||||
protected int _LastKnownNumSongs = 0;
|
||||
protected bool _Initialized;
|
||||
protected int _LastKnownNumSongs;
|
||||
protected int _LastKnownCategory = -1;
|
||||
|
||||
protected SRectF _Rect = new SRectF();
|
||||
protected SColorF _Color = new SColorF();
|
||||
protected SRectF _Rect;
|
||||
protected SColorF _Color;
|
||||
|
||||
private int _SelectedInternal = -1;
|
||||
private int _SelectedPending = -1;
|
||||
protected long _PendingTime = 500L;
|
||||
|
||||
private int _LockedInternal = -1;
|
||||
protected bool _Active = false;
|
||||
protected bool _Active;
|
||||
|
||||
protected float _MaxVolume = 100f;
|
||||
|
||||
@@ -269,14 +269,14 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/CoverBackground", ref _Theme.CoverBackgroundName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/CoverBigBackground", ref _Theme.CoverBigBackgroundName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/DuetIcon", ref _Theme.DuetIconName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/VideoIcon", ref _Theme.VideoIconName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/MedleyCalcIcon", ref _Theme.MedleyCalcIcon, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/MedleyTagIcon", ref _Theme.MedleyTagIcon, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/CoverBackground", out _Theme.CoverBackgroundName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/CoverBigBackground", out _Theme.CoverBigBackgroundName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/DuetIcon", out _Theme.DuetIconName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/VideoIcon", out _Theme.VideoIconName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/MedleyCalcIcon", out _Theme.MedleyCalcIcon, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/MedleyTagIcon", out _Theme.MedleyTagIcon, String.Empty);
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.ColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out _Color);
|
||||
else
|
||||
{
|
||||
@@ -453,8 +453,8 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
|
||||
float time = CBase.Sound.GetPosition(_Actsongstream);
|
||||
|
||||
float vtime = 0f;
|
||||
CBase.Video.GetFrame(_Video, ref _Vidtex, time, ref vtime);
|
||||
float vtime;
|
||||
CBase.Video.GetFrame(_Video, ref _Vidtex, time, out vtime);
|
||||
if (_VideoFadeTimer.ElapsedMilliseconds <= 3000L)
|
||||
_Vidtex.Color.A = _VideoFadeTimer.ElapsedMilliseconds / 3000f;
|
||||
else
|
||||
@@ -489,14 +489,10 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
|
||||
public virtual void HandleInput(ref SKeyEvent keyEvent, SScreenSongOptions songOptions)
|
||||
{
|
||||
if (!_Initialized)
|
||||
return;
|
||||
}
|
||||
|
||||
public virtual void HandleMouse(ref SMouseEvent mouseEvent, SScreenSongOptions songOptions)
|
||||
{
|
||||
if (!_Initialized)
|
||||
return;
|
||||
}
|
||||
|
||||
public virtual void Draw()
|
||||
@@ -543,20 +539,14 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
|
||||
public virtual void SetSelectedSong(int visibleSongNr)
|
||||
{
|
||||
if (!_Initialized)
|
||||
return;
|
||||
}
|
||||
|
||||
public virtual void SetSelectedCategory(int categoryNr)
|
||||
{
|
||||
if (!_Initialized)
|
||||
return;
|
||||
}
|
||||
|
||||
public virtual void SetSmallView(bool smallView)
|
||||
{
|
||||
if (!_Initialized)
|
||||
return;
|
||||
}
|
||||
|
||||
public virtual bool IsSmallView()
|
||||
|
||||
@@ -463,7 +463,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
_CoverBig.Draw(1f, EAspect.Crop);
|
||||
RectangleF bounds = new RectangleF(_CoverBig.Rect.X, _CoverBig.Rect.Y, _CoverBig.Rect.W, _CoverBig.Rect.H);
|
||||
RectangleF rect = new RectangleF(0f, 0f, _Vidtex.Width, _Vidtex.Height);
|
||||
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, EAspect.Crop);
|
||||
CHelper.SetRect(bounds, out rect, rect.Width / rect.Height, EAspect.Crop);
|
||||
SRectF vidRect = new SRectF(rect.X, rect.Y, rect.Width, rect.Height, _CoverBig.Rect.Z);
|
||||
SRectF vidRectBounds = new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f);
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace VocaluxeLib.PartyModes
|
||||
_Warning.Color = new SColorF(1f, 0f, 0f, 1f);
|
||||
_Warning.SelColor = new SColorF(1f, 0f, 0f, 1f);
|
||||
_Warning.Text = "SOMETHING WENT WRONG!";
|
||||
AddText(_Warning);
|
||||
_AddText(_Warning);
|
||||
}
|
||||
|
||||
public override void ReloadTheme(string xmlPath) {}
|
||||
@@ -75,7 +75,7 @@ namespace VocaluxeLib.PartyModes
|
||||
{
|
||||
base.HandleMouse(mouseEvent);
|
||||
|
||||
if (mouseEvent.LB && IsMouseOver(mouseEvent)) {}
|
||||
if (mouseEvent.LB && _IsMouseOver(mouseEvent)) {}
|
||||
|
||||
if (mouseEvent.RB)
|
||||
_FadeTo(EScreens.ScreenParty);
|
||||
|
||||
Reference in new issue
Block a user