diff --git a/.tx/config b/.tx/config index d0bc5d4e..b2ce867e 100644 --- a/.tx/config +++ b/.tx/config @@ -9,13 +9,6 @@ source_lang = English lang_map = en:English, cs:Czech, de:German, es:Spanish, fr:French, sv:Swedish, nl:Dutch, ast:Asturian, tr:Turkish, hu:Hungarian, it:Italian, ca:Catalan, pt:Portuguese, pl_PL:Polish, da_DK:Danish type = ANDROID -[vocaluxe.challenge-medley] -file_filter = Output/PartyModes/ChallengeMedley/Languages/.xml -source_file = Output/PartyModes/ChallengeMedley/Languages/English.xml -source_lang = English -lang_map = en:English, cs:Czech, de:German, es:Spanish, fr:French, sv:Swedish, nl:Dutch, ast:Asturian, tr:Turkish, hu:Hungarian, it:Italian, ca:Catalan, pt:Portuguese, pl_PL:Polish, da_DK:Danish -type = ANDROID - [vocaluxe.game] file_filter = Output/Languages/.xml source_file = Output/Languages/English.xml diff --git a/Output/Languages/French.xml b/Output/Languages/French.xml index 5820b536..53dd928d 100644 --- a/Output/Languages/French.xml +++ b/Output/Languages/French.xml @@ -15,6 +15,7 @@ Chansons chargées Souris Usage de la mémoire + Mode Normal Duo Medley @@ -31,6 +32,10 @@ Utilisateur normal Administrateur Clavier d'Utilisateur + Source des chansons + Playlist + Catégorie + Toutes les chansons Logiciel OpenGL Direct3D @@ -151,6 +156,8 @@ Arrêter de chanter Continuer Passer cette chanson + Redémarer le tour + Redémarer le jeu Scores Note Points @@ -183,6 +190,7 @@ Menu des Chansons Classement des Chansons Dossiers + Démarrage automatique des aperçus Difficulté du Jeu Mode du Minuteur Style meilleur score diff --git a/Output/Languages/Italian.xml b/Output/Languages/Italian.xml index 57fd6652..e2e34af9 100644 --- a/Output/Languages/Italian.xml +++ b/Output/Languages/Italian.xml @@ -223,7 +223,7 @@ Webcam Risoluzione-Webcam Sistemazione schermo - Premi CTR + ALT (+ SHIFT) + Freccia|"+ per sistemare lo schermo + Premi CTR + ALT (+ SHIFT) + Freccia|"+\ per sistemare lo schermo CTR + ALT + 0 per ripristinare Sopra a sinistra Sopra a destra diff --git a/Output/PartyModes/Challenge/Languages/French.xml b/Output/PartyModes/Challenge/Languages/French.xml index 27ece675..bf963c33 100644 --- a/Output/PartyModes/Challenge/Languages/French.xml +++ b/Output/PartyModes/Challenge/Languages/French.xml @@ -11,6 +11,7 @@ Oui Non Tour suivant + Chansons Mode Challenge: Configuration Nombre de joueurs Nombre de micros diff --git a/Output/PartyModes/Challenge/Languages/German.xml b/Output/PartyModes/Challenge/Languages/German.xml index 04f5648a..2afef0a3 100644 --- a/Output/PartyModes/Challenge/Languages/German.xml +++ b/Output/PartyModes/Challenge/Languages/German.xml @@ -1,4 +1,4 @@ - + Deutsch Challenge Modus @@ -11,6 +11,7 @@ Ja Nein Nächste Runde + Lieder Challenge Modus: Einstellungen Anzahl der Spieler Anzahl der Mikrofone diff --git a/Output/PartyModes/Challenge/Languages/Swedish.xml b/Output/PartyModes/Challenge/Languages/Swedish.xml index f47c0fb6..3442c41f 100644 --- a/Output/PartyModes/Challenge/Languages/Swedish.xml +++ b/Output/PartyModes/Challenge/Languages/Swedish.xml @@ -11,6 +11,7 @@ Ja Nej Nästa omgång + Låtar Utmanarläge: Konfiguration Antal spelare Antal mikrofoner diff --git a/Output/PartyModes/TicTacToe/Languages/French.xml b/Output/PartyModes/TicTacToe/Languages/French.xml index eba0074d..67f9cd54 100644 --- a/Output/PartyModes/TicTacToe/Languages/French.xml +++ b/Output/PartyModes/TicTacToe/Languages/French.xml @@ -13,22 +13,19 @@ Démarrer Chansons Equipe - Playlist - Catégorie - Toutes les chansons Tic-Tac-Toe: Configuration Nombre de joueurs dans l'Equipe 1 Nombre de joueurs dans l'Equipe 2 Nombre de champs - Source des chansons - Mode de jeu + Recharger les jokers a chaque tour Tic-Tac-Toe: Choix des joueurs Equipe 1 Equipe 2 + Sélectionner au hasard Tic-Tac-Toe Choisissez une case. - Prochains joueurs - Voulez vous vraiment quitter Tic-Tac-Toe? + Joueur suivant + Voulez-vous vraiment quitter Tic-Tac-Toe? Et le gagnant est... Il n'y a pas de gagnant sur ce tour... diff --git a/Output/PartyModes/TicTacToe/Languages/German.xml b/Output/PartyModes/TicTacToe/Languages/German.xml index d6355997..8839754c 100644 --- a/Output/PartyModes/TicTacToe/Languages/German.xml +++ b/Output/PartyModes/TicTacToe/Languages/German.xml @@ -1,4 +1,4 @@ - + Deutsch Tic-Tac-Toe @@ -13,15 +13,11 @@ Starten Songs Team - Playlist - Kategorie - Alle Songs Tic-Tac-Toe: Einstellungen Anzahl der Spieler in Team 1 Anzahl der Spieler in Team 2 Anzahl der Felder - Song-Quelle - Spiel-Modus + Joker nach jeder Runde auffüllen Tic-Tac-Toe: Spielerwahl Team 1 Team 2 diff --git a/Output/PartyModes/TicTacToe/Languages/Swedish.xml b/Output/PartyModes/TicTacToe/Languages/Swedish.xml index 259bbe71..cdde03a9 100644 --- a/Output/PartyModes/TicTacToe/Languages/Swedish.xml +++ b/Output/PartyModes/TicTacToe/Languages/Swedish.xml @@ -13,15 +13,11 @@ Starta Låtar Lag - Spellista - Kategori - Alla låtar Tripp-Trapp-Trull: Konfiguration Antal spelare i lag 1 Antal spelare i lag 2 Antal fält - Låtkälla - Spelläge + Fyll på jokrar varje runda Tripp-Trapp-Trull: Välj spelare Lag 1 Lag 2 diff --git a/PartyModes/PartyModeChallenge/CPartyModeChallenge.cs b/PartyModes/PartyModeChallenge/CPartyModeChallenge.cs index a70fdf25..46260e8c 100644 --- a/PartyModes/PartyModeChallenge/CPartyModeChallenge.cs +++ b/PartyModes/PartyModeChallenge/CPartyModeChallenge.cs @@ -20,6 +20,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Runtime.InteropServices; +using VocaluxeLib.Game; using VocaluxeLib.Menu; using VocaluxeLib.Songs; @@ -138,7 +139,6 @@ namespace VocaluxeLib.PartyModes.Challenge public int CurrentRoundNr; - public int[] CatSongIndices; public List Songs; } @@ -181,7 +181,6 @@ namespace VocaluxeLib.PartyModes.Challenge CategoryIndex = 0, GameMode = EGameMode.TR_GAMEMODE_NORMAL, NumMedleySongs = 5, - CatSongIndices = null, Results = null, Songs = new List() }; @@ -195,6 +194,7 @@ namespace VocaluxeLib.PartyModes.Challenge _ScreenSongOptions.Sorting.SongSorting = CBase.Config.GetSongSorting(); _ScreenSongOptions.Sorting.Tabs = EOffOn.TR_CONFIG_OFF; _ScreenSongOptions.Selection.SongIndex = -1; + _ScreenSongOptions.Selection.CategoryIndex = -1; if (CBase.Config.GetTabs() == EOffOn.TR_CONFIG_ON && _ScreenSongOptions.Sorting.SongSorting != ESongSorting.TR_CONFIG_NONE) _ScreenSongOptions.Sorting.Tabs = EOffOn.TR_CONFIG_ON; @@ -213,11 +213,7 @@ namespace VocaluxeLib.PartyModes.Challenge public override void UpdateGame() { - /* - if (CBase.Songs.IsInCategory() || _ScreenSongOptions.Sorting.Tabs == EOffOn.TR_CONFIG_OFF) - _ScreenSongOptions.Selection.RandomOnly = true; - else - _ScreenSongOptions.Selection.RandomOnly = false;*/ + } private IMenu _GetNextScreen() @@ -320,85 +316,35 @@ namespace VocaluxeLib.PartyModes.Challenge public override SScreenSongOptions GetScreenSongOptions() { - _ScreenSongOptions.Selection.RandomOnly = true; - _ScreenSongOptions.Sorting.IgnoreArticles = CBase.Config.GetIgnoreArticles(); - - - switch (GameData.SongSource) - { - case ESongSource.TR_SONGSOURCE_ALLSONGS: - _ScreenSongOptions.Sorting.SongSorting = CBase.Config.GetSongSorting(); - _ScreenSongOptions.Sorting.Tabs = CBase.Config.GetTabs(); - _ScreenSongOptions.Sorting.FilterPlaylistID = -1; - - _ScreenSongOptions.Selection.CategoryChangeAllowed = true; - break; - - case ESongSource.TR_SONGSOURCE_CATEGORY: - _ScreenSongOptions.Sorting.SongSorting = GameData.Sorting; - _ScreenSongOptions.Sorting.Tabs = EOffOn.TR_CONFIG_ON; - _ScreenSongOptions.Sorting.FilterPlaylistID = -1; - - if (GameData.CatSongIndices == null) - _CreateCatSongIndices(); - - _ScreenSongOptions.Selection.SongIndex = GameData.CatSongIndices[GameData.CategoryIndex]; - - _ScreenSongOptions.Selection.CategoryChangeAllowed = false; - break; - - case ESongSource.TR_SONGSOURCE_PLAYLIST: - _ScreenSongOptions.Sorting.SongSorting = CBase.Config.GetSongSorting(); - _ScreenSongOptions.Sorting.Tabs = EOffOn.TR_CONFIG_OFF; - _ScreenSongOptions.Sorting.FilterPlaylistID = GameData.PlaylistID; - - _ScreenSongOptions.Selection.CategoryChangeAllowed = false; - break; - } return _ScreenSongOptions; } - // ReSharper disable RedundantAssignment public override void OnSongChange(int songIndex, ref SScreenSongOptions screenSongOptions) - // ReSharper restore RedundantAssignment { - _ScreenSongOptions.Selection.SongIndex = -1; - if (_ScreenSongOptions.Selection.SelectNextRandomSong && songIndex != -1) - { _ScreenSongOptions.Selection.SelectNextRandomSong = false; - _CreateCatSongIndices(); - if (GameData.CatSongIndices != null) - { - if (GameData.CatSongIndices[CBase.Songs.GetCurrentCategoryIndex()] == -1) - GameData.CatSongIndices[CBase.Songs.GetCurrentCategoryIndex()] = songIndex; - } - } + _ScreenSongOptions.Selection.SongIndex = songIndex; screenSongOptions = _ScreenSongOptions; } - // ReSharper disable RedundantAssignment public override void OnCategoryChange(int categoryIndex, ref SScreenSongOptions screenSongOptions) - // ReSharper restore RedundantAssignment { - if (GameData.CatSongIndices != null && categoryIndex != -1) + if (categoryIndex != -1 || CBase.Config.GetTabs() == EOffOn.TR_CONFIG_OFF) { - if (GameData.CatSongIndices[categoryIndex] == -1) - _ScreenSongOptions.Selection.SelectNextRandomSong = true; - else - _ScreenSongOptions.Selection.SongIndex = GameData.CatSongIndices[categoryIndex]; + //If category is selected or tabs off: only random song selection + _ScreenSongOptions.Selection.SelectNextRandomSong = true; + _ScreenSongOptions.Selection.RandomOnly = true; + } + else + { + //If no category is selected: let user choose category + _ScreenSongOptions.Selection.SongIndex = -1; + _ScreenSongOptions.Selection.RandomOnly = false; } - if (GameData.CatSongIndices == null && categoryIndex != -1) - _ScreenSongOptions.Selection.SelectNextRandomSong = true; - - if (categoryIndex == -1) - _ScreenSongOptions.Selection.RandomOnly = false; - - if (_ScreenSongOptions.Sorting.Tabs == EOffOn.TR_CONFIG_OFF || categoryIndex != -1) - _ScreenSongOptions.Selection.RandomOnly = true; + _ScreenSongOptions.Selection.CategoryIndex = categoryIndex; screenSongOptions = _ScreenSongOptions; } @@ -469,11 +415,42 @@ namespace VocaluxeLib.PartyModes.Challenge /// private void _PrepareSongSelection() { - _ScreenSongOptions.Selection.RandomOnly = _ScreenSongOptions.Sorting.Tabs != EOffOn.TR_CONFIG_ON; - _ScreenSongOptions.Selection.CategoryChangeAllowed = false; + _ScreenSongOptions.Selection.RandomOnly = true; + _ScreenSongOptions.Selection.SelectNextRandomSong = true; + + _ScreenSongOptions.Sorting.IgnoreArticles = CBase.Config.GetIgnoreArticles(); + + switch (GameData.SongSource) + { + case ESongSource.TR_SONGSOURCE_ALLSONGS: + _ScreenSongOptions.Sorting.SongSorting = CBase.Config.GetSongSorting(); + _ScreenSongOptions.Sorting.Tabs = CBase.Config.GetTabs(); + _ScreenSongOptions.Sorting.FilterPlaylistID = -1; + + _ScreenSongOptions.Selection.CategoryIndex = -1; + _ScreenSongOptions.Selection.CategoryChangeAllowed = true; + break; + + case ESongSource.TR_SONGSOURCE_CATEGORY: + _ScreenSongOptions.Sorting.SongSorting = GameData.Sorting; + _ScreenSongOptions.Sorting.Tabs = EOffOn.TR_CONFIG_ON; + _ScreenSongOptions.Sorting.FilterPlaylistID = -1; + + _ScreenSongOptions.Selection.CategoryIndex = GameData.CategoryIndex; + _ScreenSongOptions.Selection.CategoryChangeAllowed = false; + break; + + case ESongSource.TR_SONGSOURCE_PLAYLIST: + _ScreenSongOptions.Sorting.SongSorting = CBase.Config.GetSongSorting(); + _ScreenSongOptions.Sorting.Tabs = EOffOn.TR_CONFIG_OFF; + _ScreenSongOptions.Sorting.FilterPlaylistID = GameData.PlaylistID; + + _ScreenSongOptions.Selection.CategoryChangeAllowed = false; + break; + } + _SetNumJokers(); _SetTeamNames(); - GameData.CatSongIndices = null; } /// @@ -601,39 +578,62 @@ namespace VocaluxeLib.PartyModes.Challenge private void _UpdateScores() { + //Prepare results table if (GameData.ResultTable.Count == 0) { for (int i = 0; i < GameData.NumPlayer; i++) { - var row = new CResultTableRow {PlayerID = GameData.ProfileIDs[i], NumPlayed = 0, NumWon = 0, NumSingPoints = 0, NumGamePoints = 0}; + var row = new CResultTableRow { PlayerID = GameData.ProfileIDs[i], NumPlayed = 0, NumWon = 0, NumSingPoints = 0, NumGamePoints = 0 }; GameData.ResultTable.Add(row); } - GameData.Results = new int[GameData.NumRounds,GameData.NumPlayerAtOnce]; + GameData.Results = new int[GameData.NumRounds, GameData.NumPlayerAtOnce]; for (int i = 0; i < GameData.NumRounds; i++) { for (int j = 0; j < GameData.NumPlayerAtOnce; j++) GameData.Results[i, j] = 0; } } - SPlayer[] results = CBase.Game.GetPlayers(); - if (results == null) - return; - if (results.Length < GameData.NumPlayerAtOnce) - return; + //Get points from game + CPoints points = CBase.Game.GetPoints(); + SPlayer[] players = CBase.Game.GetPlayers(); - for (int j = 0; j < GameData.NumPlayerAtOnce; j++) - GameData.Results[GameData.CurrentRoundNr - 2, j] = (int)Math.Round(results[j].Points); + //Go over all rounds and sum up points + for (int round = 0; round < points.NumRounds; round++) + { + SPlayer[] res = points.GetPlayer(round, GameData.NumPlayerAtOnce); - List points = _GetPointsForPlayer(results); + if (res == null || res.Length < GameData.NumPlayerAtOnce) + return; + + for (int p = 0; p < GameData.NumPlayerAtOnce; p++) + { + players[p].Points += res[p].Points; + players[p].PointsGoldenNotes += res[p].PointsGoldenNotes; + players[p].PointsLineBonus += res[p].PointsLineBonus; + } + } + //Calculate average points + for (int p = 0; p < GameData.NumPlayerAtOnce; p++) + { + players[p].Points /= points.NumRounds; + players[p].PointsGoldenNotes /= points.NumRounds; + players[p].PointsLineBonus /= points.NumRounds; + + //Save points in GameData + GameData.Results[GameData.CurrentRoundNr - 2, p] = (int)Math.Round(players[p].Points); + } + + List stats = _GetPointsForPlayer(players); for (int i = 0; i < GameData.NumPlayerAtOnce; i++) { + //Find matching row in results table int index = -1; for (int j = 0; j < GameData.ResultTable.Count; j++) { - if (points[i].ProfileID == GameData.ResultTable[j].PlayerID) + if (stats[i].ProfileID == GameData.ResultTable[j].PlayerID) { index = j; break; @@ -644,14 +644,14 @@ namespace VocaluxeLib.PartyModes.Challenge continue; CResultTableRow row = GameData.ResultTable[index]; + //Update results entry row.NumPlayed++; - row.NumWon += points[i].Won; - row.NumSingPoints += points[i].SingPoints; - row.NumGamePoints += points[i].GamePoints; + row.NumWon += stats[i].Won; + row.NumSingPoints += stats[i].SingPoints; + row.NumGamePoints += stats[i].GamePoints; GameData.ResultTable[index] = row; } - GameData.ResultTable.Sort(); @@ -717,18 +717,5 @@ namespace VocaluxeLib.PartyModes.Challenge return result; } - - private void _CreateCatSongIndices() - { - if (GameData.CatSongIndices == null && CBase.Songs.GetNumCategories() > 0 && _ScreenSongOptions.Sorting.Tabs == EOffOn.TR_CONFIG_ON) - { - GameData.CatSongIndices = new int[CBase.Songs.GetNumCategories()]; - for (int i = 1; i < GameData.CatSongIndices.Length; i++) - GameData.CatSongIndices[i] = CBase.Songs.GetNumSongsInCategory(i) + GameData.CatSongIndices[i - 1]; - } - - if (CBase.Songs.GetNumCategories() == 0 || _ScreenSongOptions.Sorting.Tabs == EOffOn.TR_CONFIG_OFF) - GameData.CatSongIndices = null; - } } } \ No newline at end of file diff --git a/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs b/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs index b8f3c757..321586c9 100644 --- a/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs +++ b/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs @@ -20,6 +20,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Runtime.InteropServices; +using VocaluxeLib.Game; using VocaluxeLib.Menu; using VocaluxeLib.Songs; @@ -534,13 +535,33 @@ namespace VocaluxeLib.PartyModes.TicTacToe if (!GameData.Rounds[GameData.FieldNr].Finished) GameData.CurrentRoundNr++; + CPoints points = CBase.Game.GetPoints(); SPlayer[] results = CBase.Game.GetPlayers(); - if (results == null) + + if (results == null || results.Length < 2) return; - if (results.Length < 2) - return; + //Sum up all points + for (int r = 0; r < points.NumRounds; r++) + { + SPlayer[] player = points.GetPlayer(r, 2); + for (int i = 0; i < 2; i++) + { + results[i].Points += player[i].Points; + results[i].PointsGoldenNotes += player[i].PointsGoldenNotes; + results[i].PointsLineBonus += player[i].PointsLineBonus; + } + } + //Calc average of points + for (int i = 0; i < 2; i++) + { + results[i].Points /= points.NumRounds; + results[i].PointsGoldenNotes /= points.NumRounds; + results[i].PointsLineBonus /= points.NumRounds; + } + + //Decide who has won GameData.Rounds[GameData.FieldNr].PointsTeam1 = (int)Math.Round(results[0].Points); GameData.Rounds[GameData.FieldNr].PointsTeam2 = (int)Math.Round(results[1].Points); GameData.Rounds[GameData.FieldNr].Finished = true; diff --git a/Vocaluxe/Base/CGame.cs b/Vocaluxe/Base/CGame.cs index baddbf11..a90b062a 100644 --- a/Vocaluxe/Base/CGame.cs +++ b/Vocaluxe/Base/CGame.cs @@ -17,6 +17,8 @@ //Uncomment to make the engine hit every note //#define DEBUG_HIT +//Uncomment to only hit notes for player one +//#define DEBUG_HIT_1 using System; using System.Collections.Generic; @@ -280,6 +282,8 @@ namespace Vocaluxe.Base if (notes[note].PointsForBeat > 0 && (CRecord.ToneValid(p) #if DEBUG_HIT || true +#elif DEBUG_HIT_1 + || (true && p == 0) #endif )) { @@ -294,6 +298,8 @@ namespace Vocaluxe.Base #if DEBUG_HIT tonePlayer = tone; +#elif DEBUG_HIT_1 + if(p == 0) tonePlayer = tone; #endif Players[p].NoteDiff = Math.Abs(tone - tonePlayer); diff --git a/Vocaluxe/Screens/CScreenSong.cs b/Vocaluxe/Screens/CScreenSong.cs index 6d2d8be6..60031c4d 100644 --- a/Vocaluxe/Screens/CScreenSong.cs +++ b/Vocaluxe/Screens/CScreenSong.cs @@ -647,7 +647,15 @@ namespace Vocaluxe.Screens if (_Sso.Selection.CategoryIndex != CBase.Songs.GetCurrentCategoryIndex()) { _SelectedCategoryIndex = _Sso.Selection.CategoryIndex; - _SongMenu.EnterSelectedCategory(); + if (_SelectedCategoryIndex != -1) + { + _SongMenu.SetSelectedCategory(_SelectedCategoryIndex); + _SongMenu.EnterSelectedCategory(); + } + else + { + _SongMenu.LeaveSelectedCategory(); + } } _SearchActive = _Sso.Sorting.SearchActive; _SearchText = _Sso.Sorting.SearchString; @@ -791,7 +799,9 @@ namespace Vocaluxe.Screens if (_Sso.Selection.RandomOnly && _Sso.Selection.NumJokers != null) { + //Show and select start button _Buttons[_ButtonStart].Visible = true; + _SelectElement(_Buttons[_ButtonStart]); _SongMenu.SmallView = true; diff --git a/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs b/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs index ecd41bb8..02cfac02 100644 --- a/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs +++ b/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs @@ -286,6 +286,11 @@ namespace VocaluxeLib.Menu.SongMenu _PreviewNr = _SelectionNr; } + public void LeaveSelectedCategory() + { + _LeaveCategory(); + } + public virtual void UnloadSkin() {} public virtual void LoadSkin() diff --git a/VocaluxeLib/Menu/SongMenu/ISongMenu.cs b/VocaluxeLib/Menu/SongMenu/ISongMenu.cs index 5d15a6a4..a37f50d0 100644 --- a/VocaluxeLib/Menu/SongMenu/ISongMenu.cs +++ b/VocaluxeLib/Menu/SongMenu/ISongMenu.cs @@ -40,6 +40,7 @@ namespace VocaluxeLib.Menu.SongMenu int GetSelectedCategory(); void SetSelectedCategory(int categoryNr); bool EnterSelectedCategory(); + void LeaveSelectedCategory(); // The song that is currently playing (set e.g. by clicking on a song) int GetPreviewSong(); diff --git a/VocaluxeLib/PartyModes/CPartyModeNormal.cs b/VocaluxeLib/PartyModes/CPartyModeNormal.cs index 6d01ff74..9c62e884 100644 --- a/VocaluxeLib/PartyModes/CPartyModeNormal.cs +++ b/VocaluxeLib/PartyModes/CPartyModeNormal.cs @@ -63,6 +63,7 @@ namespace VocaluxeLib.PartyModes _ScreenSongOptions.Selection.NumJokers = null; _ScreenSongOptions.Selection.TeamNames = null; _ScreenSongOptions.Selection.SongIndex = -1; + _ScreenSongOptions.Selection.CategoryIndex = -1; _ScreenSongOptions.Sorting.SearchString = String.Empty; _ScreenSongOptions.Sorting.SearchActive = false;