diff --git a/PartyModes/PartyModeChallenge/CPartyModeChallenge.cs b/PartyModes/PartyModeChallenge/CPartyModeChallenge.cs index b0129bec..da2b74f7 100644 --- a/PartyModes/PartyModeChallenge/CPartyModeChallenge.cs +++ b/PartyModes/PartyModeChallenge/CPartyModeChallenge.cs @@ -475,12 +475,12 @@ namespace VocaluxeLib.PartyModes.Challenge players[i].ProfileID = -1; } - CBase.Songs.AddPartySongSung(songID); CBase.Graphics.FadeTo(EScreens.ScreenSing); } public override void LeavingHighscore() { + CBase.Songs.AddPartySongSung(CBase.Game.GetSong(0).ID); _GameData.CurrentRoundNr++; CBase.Graphics.FadeTo(EScreens.ScreenPartyDummy); } diff --git a/PartyModes/PartyModeChallengeMedley/CPartyModeChallengeMedley.cs b/PartyModes/PartyModeChallengeMedley/CPartyModeChallengeMedley.cs index 46f9edda..c6f0d619 100644 --- a/PartyModes/PartyModeChallengeMedley/CPartyModeChallengeMedley.cs +++ b/PartyModes/PartyModeChallengeMedley/CPartyModeChallengeMedley.cs @@ -457,6 +457,8 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley public override void LeavingHighscore() { + for (int i = 0; i < CBase.Game.GetNumSongs();i++ ) + CBase.Songs.AddPartySongSung(CBase.Game.GetSong(i).ID); _GameData.CurrentRoundNr++; CBase.Graphics.FadeTo(EScreens.ScreenPartyDummy); } @@ -542,7 +544,6 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley { int songID = ids[CBase.Game.GetRandom(ids.Count)]; CBase.Game.AddSong(songID, EGameMode.TR_GAMEMODE_MEDLEY); - CBase.Songs.AddPartySongSung(songID); ids.Remove(songID); s++; } diff --git a/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs b/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs index d3f29442..822946c8 100644 --- a/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs +++ b/PartyModes/PartyModeTicTacToe/CPartyModeTicTacToe.cs @@ -515,12 +515,12 @@ namespace VocaluxeLib.PartyModes.TicTacToe } CBase.Game.AddSong(songID, gm); - CBase.Songs.AddPartySongSung(songID); CBase.Graphics.FadeTo(EScreens.ScreenSing); } public override void LeavingHighscore() { + CBase.Songs.AddPartySongSung(CBase.Game.GetSong(0).ID); _UpdateScores(); CBase.Graphics.FadeTo(EScreens.ScreenPartyDummy); } diff --git a/Vocaluxe/Base/CMain.cs b/Vocaluxe/Base/CMain.cs index f1861ff3..8e9c691a 100644 --- a/Vocaluxe/Base/CMain.cs +++ b/Vocaluxe/Base/CMain.cs @@ -577,6 +577,16 @@ namespace Vocaluxe.Base { return CGame.GetNumSongs(); } + + public CSong GetSong() + { + return CGame.GetSong(); + } + + public CSong GetSong(int round) + { + return CGame.GetSong(round); + } } class CBprofiles : IProfiles diff --git a/VocaluxeLib/IBasic.cs b/VocaluxeLib/IBasic.cs index 357f721f..2e7bdf74 100644 --- a/VocaluxeLib/IBasic.cs +++ b/VocaluxeLib/IBasic.cs @@ -196,6 +196,8 @@ namespace VocaluxeLib void Reset(); void ClearSongs(); int GetNumSongs(); + CSong GetSong(); + CSong GetSong(int round); } public interface IRecording diff --git a/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs b/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs index a9a9e6d7..00a31e7e 100644 --- a/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs +++ b/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs @@ -60,7 +60,7 @@ namespace VocaluxeLib.Menu.SongMenu private int _LastKnownNumSongs; private int _LastKnownCategory = -1; - private bool _MouseWasInRect = false; + private bool _MouseWasInRect; public override float SelectedTileZoomFactor { @@ -76,14 +76,19 @@ namespace VocaluxeLib.Menu.SongMenu //Update list in case we scrolled _UpdateList(); - foreach (CStatic tile in _Tiles) - tile.Selected = false; - int tileNr = _SelectionNr - _Offset; - if (tileNr >= 0 && tileNr < _Tiles.Count) - _Tiles[tileNr].Selected = true; + _UpdateTileSelection(); } } + private void _UpdateTileSelection() + { + foreach (CStatic tile in _Tiles) + tile.Selected = false; + int tileNr = _SelectionNr - _Offset; + if (tileNr >= 0 && tileNr < _Tiles.Count) + _Tiles[tileNr].Selected = true; + } + public override bool SmallView { set @@ -93,6 +98,7 @@ namespace VocaluxeLib.Menu.SongMenu base.SmallView = value; _InitTiles(); _UpdateList(true); + _UpdateTileSelection(); } } @@ -262,19 +268,9 @@ namespace VocaluxeLib.Menu.SongMenu else { if (CBase.Songs.IsInCategory()) - { - if (_SelectionNr < 0) - SetSelectedSong(0); - else - SetSelectedSong(_SelectionNr); - } + SetSelectedSong(_SelectionNr < 0 ? 0 : _SelectionNr); else - { - if (_SelectionNr < 0) - SetSelectedCategory(0); - else - SetSelectedCategory(_SelectionNr); - } + SetSelectedCategory(_SelectionNr < 0 ? 0 : _SelectionNr); } _PreviewNr = _SelectionNr; _AfterCategoryChange();