diff --git a/.gitignore b/.gitignore
index 9de55a61..c7ac423d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@ obj
PitchTracker.dll
Thumbs.db
.transifexrc
+.vs
tx.exe
*.mp4
*.pdb
@@ -30,6 +31,7 @@ tx.exe
*.user
*.VC.db
*.VC.opendb
+*.dll.config
/*.vsp
/*.ctl
/Output/Config.xml
@@ -48,6 +50,7 @@ tx.exe
/Output/Songs
/Output/Playlists/*.xml
/Output/Profiles/*.xml
+/Output/Profiles/*.png
/Output/PartyModes/*/Code/*
/PartyModes/*/*/*.dll
/VocaluxeLib/bin
diff --git a/Output/Profiles/guest3.xml b/Output/Profiles/guest3.xml
index ad3c3eb5..f8b196f8 100644
--- a/Output/Profiles/guest3.xml
+++ b/Output/Profiles/guest3.xml
@@ -2,7 +2,7 @@
Guest 3
TR_CONFIG_EASY
- TR_USERROLE_NORMAL
+ TR_USERROLE_GUEST
TR_CONFIG_ON
Avatar_m.png
\ No newline at end of file
diff --git a/PartyModes/PartyModeChallenge/CPartyScreenChallengeNames.cs b/PartyModes/PartyModeChallenge/CPartyScreenChallengeNames.cs
index 9b79c0d2..46d354aa 100644
--- a/PartyModes/PartyModeChallenge/CPartyScreenChallengeNames.cs
+++ b/PartyModes/PartyModeChallenge/CPartyScreenChallengeNames.cs
@@ -37,6 +37,7 @@ namespace VocaluxeLib.PartyModes.Challenge
base.Init();
_PartyMode = (CPartyModeChallenge)base._PartyMode;
_AllowChangePlayerNum = false;
+ _Teams = false;
}
public override void OnShow()
diff --git a/PartyModes/PartyModeChallengeMedley/CPartyScreenChallengeMedleyNames.cs b/PartyModes/PartyModeChallengeMedley/CPartyScreenChallengeMedleyNames.cs
index 4d92fc7d..a95bfc53 100644
--- a/PartyModes/PartyModeChallengeMedley/CPartyScreenChallengeMedleyNames.cs
+++ b/PartyModes/PartyModeChallengeMedley/CPartyScreenChallengeMedleyNames.cs
@@ -37,6 +37,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
base.Init();
_PartyMode = (CPartyModeChallengeMedley)base._PartyMode;
_AllowChangePlayerNum = false;
+ _Teams = false;
}
public override void OnShow()
diff --git a/Vocaluxe/Base/CSongCategorizer.cs b/Vocaluxe/Base/CSongCategorizer.cs
index ab7fb777..05a9dba4 100644
--- a/Vocaluxe/Base/CSongCategorizer.cs
+++ b/Vocaluxe/Base/CSongCategorizer.cs
@@ -126,10 +126,10 @@ namespace Vocaluxe.Base
string noCategoryName;
switch (CSongs.Sorter.SongSorting)
{
+ case ESongSorting.TR_CONFIG_FOLDER:
case ESongSorting.TR_CONFIG_NONE:
noCategoryName = CLanguage.Translate("TR_SCREENSONG_ALLSONGS");
break;
- case ESongSorting.TR_CONFIG_FOLDER:
case ESongSorting.TR_CONFIG_ARTIST:
case ESongSorting.TR_CONFIG_ARTIST_LETTER:
case ESongSorting.TR_CONFIG_TITLE_LETTER:
diff --git a/Vocaluxe/Properties/AssemblyInfo.cs b/Vocaluxe/Properties/AssemblyInfo.cs
index 348b3386..5ab36484 100644
--- a/Vocaluxe/Properties/AssemblyInfo.cs
+++ b/Vocaluxe/Properties/AssemblyInfo.cs
@@ -27,7 +27,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Vocaluxe")]
-[assembly: AssemblyCopyright("Copyright © 2016")]
+[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/Vocaluxe/Screens/CScreenHighscore.cs b/Vocaluxe/Screens/CScreenHighscore.cs
index 182e68ed..0e6a746f 100644
--- a/Vocaluxe/Screens/CScreenHighscore.cs
+++ b/Vocaluxe/Screens/CScreenHighscore.cs
@@ -285,7 +285,7 @@ namespace Vocaluxe.Screens
private void _ChangePos(int num)
{
- if (_Scores[_Round].Count == 0)
+ if (_Scores[_Round].Count == 0 || _Scores[_Round].Count <= _NumEntrys)
_Pos = 0;
else
{
diff --git a/Vocaluxe/Screens/CScreenOptionsGame.cs b/Vocaluxe/Screens/CScreenOptionsGame.cs
index 485ce2b0..72a7d4e6 100644
--- a/Vocaluxe/Screens/CScreenOptionsGame.cs
+++ b/Vocaluxe/Screens/CScreenOptionsGame.cs
@@ -80,6 +80,7 @@ namespace Vocaluxe.Screens
case Keys.S:
CParty.SetNormalGameMode();
+ _SaveConfig();
CGraphics.FadeTo(EScreen.Song);
break;
diff --git a/Vocaluxe/Screens/CScreenOptionsLyrics.cs b/Vocaluxe/Screens/CScreenOptionsLyrics.cs
index da4a608d..49c68929 100644
--- a/Vocaluxe/Screens/CScreenOptionsLyrics.cs
+++ b/Vocaluxe/Screens/CScreenOptionsLyrics.cs
@@ -67,6 +67,7 @@ namespace Vocaluxe.Screens
case Keys.S:
CParty.SetNormalGameMode();
+ _SaveConfig();
CGraphics.FadeTo(EScreen.Song);
break;
diff --git a/Vocaluxe/Screens/CScreenOptionsRecord.cs b/Vocaluxe/Screens/CScreenOptionsRecord.cs
index da838eda..bac267a9 100644
--- a/Vocaluxe/Screens/CScreenOptionsRecord.cs
+++ b/Vocaluxe/Screens/CScreenOptionsRecord.cs
@@ -112,6 +112,7 @@ namespace Vocaluxe.Screens
case Keys.S:
CParty.SetNormalGameMode();
+ _SaveMicConfig();
CGraphics.FadeTo(EScreen.Song);
break;
diff --git a/Vocaluxe/Screens/CScreenOptionsSound.cs b/Vocaluxe/Screens/CScreenOptionsSound.cs
index c3d47d1f..cf6afcec 100644
--- a/Vocaluxe/Screens/CScreenOptionsSound.cs
+++ b/Vocaluxe/Screens/CScreenOptionsSound.cs
@@ -89,6 +89,7 @@ namespace Vocaluxe.Screens
case Keys.S:
CParty.SetNormalGameMode();
+ _SaveConfig();
CGraphics.FadeTo(EScreen.Song);
break;
diff --git a/Vocaluxe/Screens/CScreenOptionsTheme.cs b/Vocaluxe/Screens/CScreenOptionsTheme.cs
index 6723a305..7beb9a15 100644
--- a/Vocaluxe/Screens/CScreenOptionsTheme.cs
+++ b/Vocaluxe/Screens/CScreenOptionsTheme.cs
@@ -92,6 +92,7 @@ namespace Vocaluxe.Screens
case Keys.S:
CParty.SetNormalGameMode();
+ _SaveConfig();
CGraphics.FadeTo(EScreen.Song);
break;
diff --git a/Vocaluxe/Screens/CScreenOptionsVideo.cs b/Vocaluxe/Screens/CScreenOptionsVideo.cs
index d8ff7710..8c33e722 100644
--- a/Vocaluxe/Screens/CScreenOptionsVideo.cs
+++ b/Vocaluxe/Screens/CScreenOptionsVideo.cs
@@ -95,6 +95,7 @@ namespace Vocaluxe.Screens
case Keys.S:
CParty.SetNormalGameMode();
+ _SaveConfig();
CGraphics.FadeTo(EScreen.Song);
break;
diff --git a/Vocaluxe/Screens/CScreenOptionsVideoAdjustments.cs b/Vocaluxe/Screens/CScreenOptionsVideoAdjustments.cs
index 0ad53c54..b030b14e 100644
--- a/Vocaluxe/Screens/CScreenOptionsVideoAdjustments.cs
+++ b/Vocaluxe/Screens/CScreenOptionsVideoAdjustments.cs
@@ -56,6 +56,7 @@ namespace Vocaluxe.Screens
case Keys.S:
CParty.SetNormalGameMode();
+ _SaveConfig();
CGraphics.FadeTo(EScreen.Song);
break;
diff --git a/Vocaluxe/Screens/CScreenProfiles.cs b/Vocaluxe/Screens/CScreenProfiles.cs
index 44196e34..f98a3c2e 100644
--- a/Vocaluxe/Screens/CScreenProfiles.cs
+++ b/Vocaluxe/Screens/CScreenProfiles.cs
@@ -319,6 +319,8 @@ namespace Vocaluxe.Screens
_Buttons[_ButtonDiscardSnapshot].Visible = false;
_Buttons[_ButtonTakeSnapshot].Visible = false;
_Buttons[_ButtonWebcam].Visible = false;
+
+ _SelectElement(_Buttons[_ButtonSave]);
}
else
{
@@ -330,6 +332,8 @@ namespace Vocaluxe.Screens
_Buttons[_ButtonDiscardSnapshot].Visible = true;
_Buttons[_ButtonTakeSnapshot].Visible = false;
_Buttons[_ButtonWebcam].Visible = false;
+
+ _SelectElement(_Buttons[_ButtonSaveSnapshot]);
}
}
@@ -341,6 +345,8 @@ namespace Vocaluxe.Screens
_Buttons[_ButtonDiscardSnapshot].Visible = false;
_Buttons[_ButtonTakeSnapshot].Visible = false;
_Buttons[_ButtonWebcam].Visible = CWebcam.IsDeviceAvailable();
+
+ _SelectElement(_Buttons[_ButtonWebcam]);
}
private void _OnSaveSnapshot()
@@ -359,6 +365,8 @@ namespace Vocaluxe.Screens
int id = CProfiles.NewAvatar(file);
CProfiles.SetAvatar(_SelectSlides[_SelectSlideProfiles].SelectedTag, id);
_LoadAvatars(false);
+
+ _SelectElement(_Buttons[_ButtonSave]);
}
private void _OnWebcam()
@@ -374,6 +382,8 @@ namespace Vocaluxe.Screens
_Buttons[_ButtonDiscardSnapshot].Visible = false;
_Buttons[_ButtonTakeSnapshot].Visible = true;
_Buttons[_ButtonWebcam].Visible = false;
+
+ _SelectElement(_Buttons[_ButtonTakeSnapshot]);
}
private void _NewProfile()
diff --git a/Vocaluxe/Screens/CScreenSong.cs b/Vocaluxe/Screens/CScreenSong.cs
index c14037ba..ad8c73d0 100644
--- a/Vocaluxe/Screens/CScreenSong.cs
+++ b/Vocaluxe/Screens/CScreenSong.cs
@@ -172,7 +172,12 @@ namespace Vocaluxe.Screens
{
keyEvent.Handled = _Playlist.HandleInput(keyEvent);
if (keyEvent.Handled)
+ {
+ //Check if playlist was closed and song menu needed to be resized
+ if (!_Playlist.Visible)
+ _SongMenu.SmallView = false;
return true;
+ }
if (!keyEvent.KeyPressed && keyEvent.Key == Keys.Escape)
{
_ClosePlaylist();
@@ -362,7 +367,10 @@ namespace Vocaluxe.Screens
{
if (CSongs.IsInCategory)
_SongMenu.SetSelectedSong(CSongs.GetRandomSong());
- else
+ }
+ else if (_Buttons[_ButtonOptionsRandomCategory].Selected)
+ {
+ if (!CSongs.IsInCategory)
_SongMenu.SetSelectedCategory(CSongs.GetRandomCategory());
}
else if (_Buttons[_ButtonOptionsSingAll].Selected)
@@ -411,7 +419,12 @@ namespace Vocaluxe.Screens
_SongMenu.Selected = false;
_ToggleSongOptions(ESongOptionsView.None);
if (_Playlist.HandleMouse(mouseEvent))
+ {
+ //Check if playlist was closed and song menu needed to be resized
+ if (!_Playlist.Visible)
+ _SongMenu.SmallView = false;
return true;
+ }
}
else if (CHelper.IsInBounds(_SongMenu.Rect, mouseEvent))
{
@@ -1261,6 +1274,8 @@ namespace Vocaluxe.Screens
{
_SongMenu.SmallView = true;
_Playlist.Visible = true;
+ _SelectElement(_Playlist);
+ _ToggleSongOptions(ESongOptionsView.None);
}
}
diff --git a/VocaluxeLib/Menu/CMenuPartyNameSelection.cs b/VocaluxeLib/Menu/CMenuPartyNameSelection.cs
index 489467bc..cc01f135 100644
--- a/VocaluxeLib/Menu/CMenuPartyNameSelection.cs
+++ b/VocaluxeLib/Menu/CMenuPartyNameSelection.cs
@@ -37,7 +37,7 @@ namespace VocaluxeLib.Menu
}
}
- private bool _Teams;
+ protected bool _Teams = true;
protected int _NumTeams = -1;
protected int _NumPlayer = -1;
protected int[] _NumPlayerTeams;
@@ -106,8 +106,6 @@ namespace VocaluxeLib.Menu
for (int i = 0; i < _TeamList.Length; i++)
_TeamList[i] = new List();
- _Teams = _NumTeams > 0;
-
_UpdateSlides();
_LoadProfiles();
_UpdateButtonVisibility();
diff --git a/VocaluxeLib/Menu/CObjectInteractions.cs b/VocaluxeLib/Menu/CObjectInteractions.cs
index e7623787..2d73dd4a 100644
--- a/VocaluxeLib/Menu/CObjectInteractions.cs
+++ b/VocaluxeLib/Menu/CObjectInteractions.cs
@@ -119,18 +119,24 @@ namespace VocaluxeLib.Menu
keyEvent.Handled = PrevValue();
else
keyEvent.Handled = _NextElement(keyEvent);
- }
- if (keyEvent.Key == Keys.Right)
+ return true;
+ }
+ else if (keyEvent.Key == Keys.Right)
{
if (_IsSelectionValid() && _Elements[_Selection].Type == EType.SelectSlide && keyEvent.Mod != EModifier.Shift)
keyEvent.Handled = NextValue();
else
keyEvent.Handled = _NextElement(keyEvent);
- }
- if (keyEvent.Key == Keys.Up || keyEvent.Key == Keys.Down)
+ return true;
+ }
+ else if (keyEvent.Key == Keys.Up || keyEvent.Key == Keys.Down)
+ {
keyEvent.Handled = _NextElement(keyEvent);
+
+ return true;
+ }
}
else
{
@@ -140,16 +146,25 @@ namespace VocaluxeLib.Menu
PrevElement();
else
NextElement();
+
+ return true;
}
if (keyEvent.Key == Keys.Left)
+ {
PrevValue();
- if (keyEvent.Key == Keys.Right)
+ return true;
+ }
+ else if (keyEvent.Key == Keys.Right)
+ {
NextValue();
+
+ return true;
+ }
}
- return true;
+ return false;
}
public virtual bool HandleMouse(SMouseEvent mouseEvent)