changed challenge party mode song selection (there are still some bugs)
This commit is contained in:
1 parent
e843569b3e
commit
ee69919366
9 files changed
+220
-81
No files matched your search
@@ -121,6 +121,8 @@ namespace Vocaluxe.PartyModes
|
|||||||
public List<ResultTableRow> ResultTable;
|
public List<ResultTableRow> ResultTable;
|
||||||
|
|
||||||
public int CurrentRoundNr;
|
public int CurrentRoundNr;
|
||||||
|
|
||||||
|
public int[] CatSongIndices;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Stats
|
struct Stats
|
||||||
@@ -161,7 +163,8 @@ namespace Vocaluxe.PartyModes
|
|||||||
GameData.NumPlayerAtOnce = 2;
|
GameData.NumPlayerAtOnce = 2;
|
||||||
GameData.NumRounds = 2;
|
GameData.NumRounds = 2;
|
||||||
GameData.CurrentRoundNr = 1;
|
GameData.CurrentRoundNr = 1;
|
||||||
GameData.ProfileIDs = new List<int>();
|
GameData.ProfileIDs = new List<int>();
|
||||||
|
GameData.CatSongIndices = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool Init()
|
public override bool Init()
|
||||||
@@ -169,8 +172,12 @@ namespace Vocaluxe.PartyModes
|
|||||||
_Stage = EStage.NotStarted;
|
_Stage = EStage.NotStarted;
|
||||||
|
|
||||||
_ScreenSongOptions.Sorting.IgnoreArticles = _Base.Config.GetIgnoreArticles();
|
_ScreenSongOptions.Sorting.IgnoreArticles = _Base.Config.GetIgnoreArticles();
|
||||||
_ScreenSongOptions.Sorting.SongSorting = ESongSorting.TR_CONFIG_FOLDER;
|
_ScreenSongOptions.Sorting.SongSorting = _Base.Config.GetSongSorting();
|
||||||
_ScreenSongOptions.Sorting.Tabs = EOffOn.TR_CONFIG_ON;
|
_ScreenSongOptions.Sorting.Tabs = EOffOn.TR_CONFIG_OFF;
|
||||||
|
_ScreenSongOptions.Selection.SongIndex = -1;
|
||||||
|
|
||||||
|
if (_Base.Config.GetTabs() == EOffOn.TR_CONFIG_ON && _ScreenSongOptions.Sorting.SongSorting != ESongSorting.TR_CONFIG_NONE)
|
||||||
|
_ScreenSongOptions.Sorting.Tabs = EOffOn.TR_CONFIG_ON;
|
||||||
|
|
||||||
ToScreenMain.ResultTable = new List<ResultTableRow>();
|
ToScreenMain.ResultTable = new List<ResultTableRow>();
|
||||||
GameData.ResultTable = new List<ResultTableRow>();
|
GameData.ResultTable = new List<ResultTableRow>();
|
||||||
@@ -250,10 +257,11 @@ namespace Vocaluxe.PartyModes
|
|||||||
|
|
||||||
public override void UpdateGame()
|
public override void UpdateGame()
|
||||||
{
|
{
|
||||||
if (_Base.Songs.GetCurrentCategoryIndex() != -1)
|
/*
|
||||||
|
if (_Base.Songs.GetCurrentCategoryIndex() != -1 || _ScreenSongOptions.Sorting.Tabs == EOffOn.TR_CONFIG_OFF)
|
||||||
_ScreenSongOptions.Selection.RandomOnly = true;
|
_ScreenSongOptions.Selection.RandomOnly = true;
|
||||||
else
|
else
|
||||||
_ScreenSongOptions.Selection.RandomOnly = false;
|
_ScreenSongOptions.Selection.RandomOnly = false;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
public override CMenuParty GetNextPartyScreen(out EScreens AlternativeScreen)
|
public override CMenuParty GetNextPartyScreen(out EScreens AlternativeScreen)
|
||||||
@@ -338,6 +346,48 @@ namespace Vocaluxe.PartyModes
|
|||||||
return _ScreenSongOptions;
|
return _ScreenSongOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void OnSongChange(int SongIndex, ref ScreenSongOptions ScreenSongOptions)
|
||||||
|
{
|
||||||
|
if (_ScreenSongOptions.Selection.SongIndex != -1)
|
||||||
|
_ScreenSongOptions.Selection.SongIndex = -1;
|
||||||
|
|
||||||
|
if (_ScreenSongOptions.Selection.SelectNextRandomSong && SongIndex != -1)
|
||||||
|
{
|
||||||
|
_ScreenSongOptions.Selection.SelectNextRandomSong = false;
|
||||||
|
CreateCatSongIndices();
|
||||||
|
|
||||||
|
if (GameData.CatSongIndices != null)
|
||||||
|
{
|
||||||
|
if (GameData.CatSongIndices[_Base.Songs.GetCurrentCategoryIndex()] == -1)
|
||||||
|
GameData.CatSongIndices[_Base.Songs.GetCurrentCategoryIndex()] = SongIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ScreenSongOptions = _ScreenSongOptions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnCategoryChange(int CategoryIndex, ref ScreenSongOptions ScreenSongOptions)
|
||||||
|
{
|
||||||
|
if (GameData.CatSongIndices != null && CategoryIndex != -1)
|
||||||
|
{
|
||||||
|
if (GameData.CatSongIndices[CategoryIndex] == -1)
|
||||||
|
_ScreenSongOptions.Selection.SelectNextRandomSong = true;
|
||||||
|
else
|
||||||
|
_ScreenSongOptions.Selection.SongIndex = GameData.CatSongIndices[CategoryIndex];
|
||||||
|
}
|
||||||
|
|
||||||
|
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 = _ScreenSongOptions;
|
||||||
|
}
|
||||||
|
|
||||||
public override void SetSearchString(string SearchString, bool Visible)
|
public override void SetSearchString(string SearchString, bool Visible)
|
||||||
{
|
{
|
||||||
_ScreenSongOptions.Sorting.SearchString = SearchString;
|
_ScreenSongOptions.Sorting.SearchString = SearchString;
|
||||||
@@ -377,9 +427,7 @@ namespace Vocaluxe.PartyModes
|
|||||||
if (TeamNr >= _ScreenSongOptions.Selection.NumJokers.Length)
|
if (TeamNr >= _ScreenSongOptions.Selection.NumJokers.Length)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!_ScreenSongOptions.Selection.CategoryChangeAllowed)
|
_ScreenSongOptions.Selection.NumJokers[TeamNr]--;
|
||||||
_ScreenSongOptions.Selection.NumJokers[TeamNr]--;
|
|
||||||
|
|
||||||
_ScreenSongOptions.Selection.RandomOnly = true;
|
_ScreenSongOptions.Selection.RandomOnly = true;
|
||||||
_ScreenSongOptions.Selection.CategoryChangeAllowed = false;
|
_ScreenSongOptions.Selection.CategoryChangeAllowed = false;
|
||||||
}
|
}
|
||||||
@@ -429,17 +477,17 @@ namespace Vocaluxe.PartyModes
|
|||||||
|
|
||||||
public override void LeavingHighscore()
|
public override void LeavingHighscore()
|
||||||
{
|
{
|
||||||
//TODO:
|
|
||||||
_Base.Graphics.FadeTo(EScreens.ScreenPartyDummy);
|
_Base.Graphics.FadeTo(EScreens.ScreenPartyDummy);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void StartNextRound()
|
private void StartNextRound()
|
||||||
{
|
{
|
||||||
_ScreenSongOptions.Selection.RandomOnly = false;
|
_ScreenSongOptions.Selection.RandomOnly = _ScreenSongOptions.Sorting.Tabs != EOffOn.TR_CONFIG_ON;
|
||||||
_ScreenSongOptions.Selection.CategoryChangeAllowed = true;
|
_ScreenSongOptions.Selection.CategoryChangeAllowed = _ScreenSongOptions.Sorting.Tabs == EOffOn.TR_CONFIG_ON;
|
||||||
GameData.CurrentRoundNr++;
|
GameData.CurrentRoundNr++;
|
||||||
SetNumJokers();
|
SetNumJokers();
|
||||||
SetTeamNames();
|
SetTeamNames();
|
||||||
|
GameData.CatSongIndices = null;
|
||||||
_Base.Graphics.FadeTo(EScreens.ScreenSong);
|
_Base.Graphics.FadeTo(EScreens.ScreenSong);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -619,5 +667,20 @@ namespace Vocaluxe.PartyModes
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void CreateCatSongIndices()
|
||||||
|
{
|
||||||
|
if (GameData.CatSongIndices == null && _Base.Songs.GetNumCategories() > 0 && _ScreenSongOptions.Sorting.Tabs == EOffOn.TR_CONFIG_ON)
|
||||||
|
{
|
||||||
|
GameData.CatSongIndices = new int[_Base.Songs.GetNumCategories()];
|
||||||
|
for (int i = 0; i < GameData.CatSongIndices.Length; i++)
|
||||||
|
{
|
||||||
|
GameData.CatSongIndices[i] = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_Base.Songs.GetNumCategories() == 0 || _ScreenSongOptions.Sorting.Tabs == EOffOn.TR_CONFIG_OFF)
|
||||||
|
GameData.CatSongIndices = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -163,6 +163,16 @@ namespace Vocaluxe.Base
|
|||||||
return _CurrentPartyMode.PartyMode.GetScreenSongOptions();
|
return _CurrentPartyMode.PartyMode.GetScreenSongOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void OnSongChange(int SongIndex, ref ScreenSongOptions ScreenSongOptions)
|
||||||
|
{
|
||||||
|
_CurrentPartyMode.PartyMode.OnSongChange(SongIndex, ref ScreenSongOptions);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void OnCategoryChange(int CategoryIndex, ref ScreenSongOptions ScreenSongOptions)
|
||||||
|
{
|
||||||
|
_CurrentPartyMode.PartyMode.OnCategoryChange(CategoryIndex, ref ScreenSongOptions);
|
||||||
|
}
|
||||||
|
|
||||||
public static void SetSearchString(string SearchString, bool Visible)
|
public static void SetSearchString(string SearchString, bool Visible)
|
||||||
{
|
{
|
||||||
_CurrentPartyMode.PartyMode.SetSearchString(SearchString, Visible);
|
_CurrentPartyMode.PartyMode.SetSearchString(SearchString, Visible);
|
||||||
|
|||||||
+104
-65
@@ -66,7 +66,10 @@ namespace Vocaluxe.Screens
|
|||||||
private CStatic DragAndDropCover;
|
private CStatic DragAndDropCover;
|
||||||
private bool DragAndDropActive;
|
private bool DragAndDropActive;
|
||||||
private int OldMousePosX;
|
private int OldMousePosX;
|
||||||
private int OldMousePosY;
|
private int OldMousePosY;
|
||||||
|
|
||||||
|
private int SelectedSongID;
|
||||||
|
private int SelectedCategoryIndex;
|
||||||
|
|
||||||
public CScreenSong()
|
public CScreenSong()
|
||||||
{
|
{
|
||||||
@@ -183,6 +186,8 @@ namespace Vocaluxe.Screens
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
SongMenus[htSongMenus(SongMenu)].HandleInput(ref KeyEvent, _sso);
|
SongMenus[htSongMenus(SongMenu)].HandleInput(ref KeyEvent, _sso);
|
||||||
|
UpdatePartyModeOptions();
|
||||||
|
|
||||||
if (KeyEvent.Handled)
|
if (KeyEvent.Handled)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@@ -478,6 +483,10 @@ namespace Vocaluxe.Screens
|
|||||||
}
|
}
|
||||||
|
|
||||||
SongMenus[htSongMenus(SongMenu)].HandleMouse(ref MouseEvent, _sso);
|
SongMenus[htSongMenus(SongMenu)].HandleMouse(ref MouseEvent, _sso);
|
||||||
|
UpdatePartyModeOptions();
|
||||||
|
|
||||||
|
if (MouseEvent.Handled)
|
||||||
|
return true;
|
||||||
|
|
||||||
if (MouseEvent.LB)
|
if (MouseEvent.LB)
|
||||||
{
|
{
|
||||||
@@ -614,6 +623,9 @@ namespace Vocaluxe.Screens
|
|||||||
{
|
{
|
||||||
base.OnShow();
|
base.OnShow();
|
||||||
|
|
||||||
|
SelectedSongID = -1;
|
||||||
|
SelectedCategoryIndex = -2;
|
||||||
|
|
||||||
_sso = CParty.GetSongSelectionOptions();
|
_sso = CParty.GetSongSelectionOptions();
|
||||||
CSongs.Sort(_sso.Sorting.SongSorting, _sso.Sorting.Tabs, _sso.Sorting.IgnoreArticles, _sso.Sorting.SearchString, _sso.Sorting.ShowDuetSongs);
|
CSongs.Sort(_sso.Sorting.SongSorting, _sso.Sorting.Tabs, _sso.Sorting.IgnoreArticles, _sso.Sorting.SearchString, _sso.Sorting.ShowDuetSongs);
|
||||||
_SearchActive = _sso.Sorting.SearchStringVisible;
|
_SearchActive = _sso.Sorting.SearchStringVisible;
|
||||||
@@ -643,19 +655,6 @@ namespace Vocaluxe.Screens
|
|||||||
|
|
||||||
public override bool UpdateGame()
|
public override bool UpdateGame()
|
||||||
{
|
{
|
||||||
_sso = CParty.GetSongSelectionOptions();
|
|
||||||
CSongs.Sort(_sso.Sorting.SongSorting, _sso.Sorting.Tabs, _sso.Sorting.IgnoreArticles, _sso.Sorting.SearchString, _sso.Sorting.ShowDuetSongs);
|
|
||||||
_SearchActive = _sso.Sorting.SearchStringVisible;
|
|
||||||
_SearchText = _sso.Sorting.SearchString;
|
|
||||||
|
|
||||||
if (_sso.Selection.PartyMode)
|
|
||||||
_PlaylistActive = false;
|
|
||||||
|
|
||||||
if (_sso.Selection.PartyMode)
|
|
||||||
ToggleSongOptions(ESongOptionsView.None);
|
|
||||||
|
|
||||||
SongMenus[htSongMenus(SongMenu)].Update(_sso);
|
|
||||||
|
|
||||||
if (SongMenus[htSongMenus(SongMenu)].IsSmallView())
|
if (SongMenus[htSongMenus(SongMenu)].IsSmallView())
|
||||||
CheckPlaylist();
|
CheckPlaylist();
|
||||||
|
|
||||||
@@ -694,54 +693,7 @@ namespace Vocaluxe.Screens
|
|||||||
Statics[htStatics(StaticSearchBar)].Visible = false;
|
Statics[htStatics(StaticSearchBar)].Visible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_sso.Selection.RandomOnly && _sso.Selection.NumJokers != null)
|
UpdatePartyModeOptions();
|
||||||
{
|
|
||||||
Buttons[htButtons(ButtonStart)].Visible = true;
|
|
||||||
|
|
||||||
if(!SongMenus[htSongMenus(SongMenu)].IsSmallView())
|
|
||||||
SongMenus[htSongMenus(SongMenu)].SetSmallView(true);
|
|
||||||
|
|
||||||
for (int i = 0; i < _Base.Settings.GetMaxNumPlayer(); i++)
|
|
||||||
{
|
|
||||||
if (i < _sso.Selection.NumJokers.Length)
|
|
||||||
{
|
|
||||||
Buttons[htButtons(ButtonsJoker[i])].Visible = true;
|
|
||||||
Buttons[htButtons(ButtonsJoker[i])].Text.Text = _sso.Selection.NumJokers[i].ToString();
|
|
||||||
Texts[htTexts(TextsPlayer[i])].Visible = true;
|
|
||||||
|
|
||||||
bool NameExists = false;
|
|
||||||
if (_sso.Selection.TeamNames != null)
|
|
||||||
{
|
|
||||||
if (_sso.Selection.TeamNames.Length > i)
|
|
||||||
{
|
|
||||||
Texts[htTexts(TextsPlayer[i])].Text = _sso.Selection.TeamNames[i];
|
|
||||||
NameExists = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!NameExists)
|
|
||||||
Texts[htTexts(TextsPlayer[i])].Text = i.ToString();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Buttons[htButtons(ButtonsJoker[i])].Visible = false;
|
|
||||||
Texts[htTexts(TextsPlayer[i])].Visible = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(_sso.Selection.PartyMode && SongMenus[htSongMenus(SongMenu)].IsSmallView())
|
|
||||||
SongMenus[htSongMenus(SongMenu)].SetSmallView(false);
|
|
||||||
|
|
||||||
for (int i = 0; i < _Base.Settings.GetMaxNumPlayer(); i++)
|
|
||||||
{
|
|
||||||
Buttons[htButtons(ButtonsJoker[i])].Visible = false;
|
|
||||||
Texts[htTexts(TextsPlayer[i])].Visible = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
Buttons[htButtons(ButtonStart)].Visible = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -782,6 +734,93 @@ namespace Vocaluxe.Screens
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void UpdatePartyModeOptions()
|
||||||
|
{
|
||||||
|
if (CSongs.Category == -1)
|
||||||
|
SelectedSongID = -1;
|
||||||
|
|
||||||
|
if (SelectedCategoryIndex != CSongs.Category)
|
||||||
|
{
|
||||||
|
SelectedCategoryIndex = CSongs.Category;
|
||||||
|
CParty.OnCategoryChange(SelectedCategoryIndex, ref _sso);
|
||||||
|
|
||||||
|
if (_sso.Selection.SelectNextRandomSong)
|
||||||
|
SelectNextRandomSong();
|
||||||
|
|
||||||
|
if (_sso.Selection.SongIndex != -1)
|
||||||
|
SongMenus[htSongMenus(SongMenu)].SetSelectedSong(_sso.Selection.SongIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SelectedSongID != SongMenus[htSongMenus(SongMenu)].GetSelectedSong() && CSongs.Category > -1)
|
||||||
|
{
|
||||||
|
SelectedSongID = SongMenus[htSongMenus(SongMenu)].GetSelectedSong();
|
||||||
|
CParty.OnSongChange(SelectedSongID, ref _sso);
|
||||||
|
}
|
||||||
|
|
||||||
|
_sso = CParty.GetSongSelectionOptions();
|
||||||
|
CSongs.Sort(_sso.Sorting.SongSorting, _sso.Sorting.Tabs, _sso.Sorting.IgnoreArticles, _sso.Sorting.SearchString, _sso.Sorting.ShowDuetSongs);
|
||||||
|
_SearchActive = _sso.Sorting.SearchStringVisible;
|
||||||
|
_SearchText = _sso.Sorting.SearchString;
|
||||||
|
|
||||||
|
|
||||||
|
if (_sso.Selection.PartyMode)
|
||||||
|
{
|
||||||
|
_PlaylistActive = false;
|
||||||
|
ToggleSongOptions(ESongOptionsView.None);
|
||||||
|
}
|
||||||
|
|
||||||
|
SongMenus[htSongMenus(SongMenu)].Update(_sso);
|
||||||
|
|
||||||
|
if (_sso.Selection.RandomOnly && _sso.Selection.NumJokers != null)
|
||||||
|
{
|
||||||
|
Buttons[htButtons(ButtonStart)].Visible = true;
|
||||||
|
|
||||||
|
if (!SongMenus[htSongMenus(SongMenu)].IsSmallView())
|
||||||
|
SongMenus[htSongMenus(SongMenu)].SetSmallView(true);
|
||||||
|
|
||||||
|
for (int i = 0; i < _Base.Settings.GetMaxNumPlayer(); i++)
|
||||||
|
{
|
||||||
|
if (i < _sso.Selection.NumJokers.Length)
|
||||||
|
{
|
||||||
|
Buttons[htButtons(ButtonsJoker[i])].Visible = true;
|
||||||
|
Buttons[htButtons(ButtonsJoker[i])].Text.Text = _sso.Selection.NumJokers[i].ToString();
|
||||||
|
Texts[htTexts(TextsPlayer[i])].Visible = true;
|
||||||
|
|
||||||
|
bool NameExists = false;
|
||||||
|
if (_sso.Selection.TeamNames != null)
|
||||||
|
{
|
||||||
|
if (_sso.Selection.TeamNames.Length > i)
|
||||||
|
{
|
||||||
|
Texts[htTexts(TextsPlayer[i])].Text = _sso.Selection.TeamNames[i];
|
||||||
|
NameExists = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!NameExists)
|
||||||
|
Texts[htTexts(TextsPlayer[i])].Text = i.ToString();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Buttons[htButtons(ButtonsJoker[i])].Visible = false;
|
||||||
|
Texts[htTexts(TextsPlayer[i])].Visible = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (_sso.Selection.PartyMode && SongMenus[htSongMenus(SongMenu)].IsSmallView())
|
||||||
|
SongMenus[htSongMenus(SongMenu)].SetSmallView(false);
|
||||||
|
|
||||||
|
for (int i = 0; i < _Base.Settings.GetMaxNumPlayer(); i++)
|
||||||
|
{
|
||||||
|
Buttons[htButtons(ButtonsJoker[i])].Visible = false;
|
||||||
|
Texts[htTexts(TextsPlayer[i])].Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Buttons[htButtons(ButtonStart)].Visible = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void StartSong(int SongNr)
|
private void StartSong(int SongNr)
|
||||||
{
|
{
|
||||||
if ((CSongs.Category >= 0) && (SongNr >= 0))
|
if ((CSongs.Category >= 0) && (SongNr >= 0))
|
||||||
@@ -910,7 +949,7 @@ namespace Vocaluxe.Screens
|
|||||||
{
|
{
|
||||||
if (_sso.Selection.NumJokers[TeamNr] > 0)
|
if (_sso.Selection.NumJokers[TeamNr] > 0)
|
||||||
{
|
{
|
||||||
result = SelectNextRandomSong(TeamNr) || SelectNextRandomCategory();
|
result = SelectNextRandomSong() || SelectNextRandomCategory();
|
||||||
CParty.JokerUsed(TeamNr);
|
CParty.JokerUsed(TeamNr);
|
||||||
_sso = CParty.GetSongSelectionOptions();
|
_sso = CParty.GetSongSelectionOptions();
|
||||||
}
|
}
|
||||||
@@ -919,12 +958,12 @@ namespace Vocaluxe.Screens
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (TeamNr == -1)
|
if (TeamNr == -1)
|
||||||
return SelectNextRandomSong(TeamNr) || SelectNextRandomCategory();
|
return SelectNextRandomSong() || SelectNextRandomCategory();
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool SelectNextRandomSong(int TeamNr)
|
private bool SelectNextRandomSong()
|
||||||
{
|
{
|
||||||
if (CSongs.Category != -1)
|
if (CSongs.Category != -1)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -371,6 +371,7 @@ namespace Vocaluxe.Menu
|
|||||||
public struct MouseEvent
|
public struct MouseEvent
|
||||||
{
|
{
|
||||||
public ESender Sender;
|
public ESender Sender;
|
||||||
|
public bool Handled;
|
||||||
public int X;
|
public int X;
|
||||||
public int Y;
|
public int Y;
|
||||||
public bool LB; //left button click
|
public bool LB; //left button click
|
||||||
@@ -392,6 +393,7 @@ namespace Vocaluxe.Menu
|
|||||||
public MouseEvent(ESender sender, bool alt, bool shift, bool ctrl, int x, int y, bool lb, bool ld, bool rb, int wheel, bool lbh, bool rbh, bool mb, bool mbh)
|
public MouseEvent(ESender sender, bool alt, bool shift, bool ctrl, int x, int y, bool lb, bool ld, bool rb, int wheel, bool lbh, bool rbh, bool mb, bool mbh)
|
||||||
{
|
{
|
||||||
Sender = sender;
|
Sender = sender;
|
||||||
|
Handled = false;
|
||||||
X = x;
|
X = x;
|
||||||
Y = y;
|
Y = y;
|
||||||
LB = lb;
|
LB = lb;
|
||||||
|
|||||||
@@ -599,6 +599,7 @@ namespace Vocaluxe.Menu.SongMenu
|
|||||||
if (Category >= _Base.Songs.GetNumCategories())
|
if (Category >= _Base.Songs.GetNumCategories())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
Reset();
|
||||||
_Base.Songs.SetCategory(Category);
|
_Base.Songs.SetCategory(Category);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -610,6 +611,7 @@ namespace Vocaluxe.Menu.SongMenu
|
|||||||
if (_Base.Songs.GetCurrentCategoryIndex() != -1)
|
if (_Base.Songs.GetCurrentCategoryIndex() != -1)
|
||||||
Reset();
|
Reset();
|
||||||
|
|
||||||
|
Reset();
|
||||||
_Base.Songs.SetCategory(-1);
|
_Base.Songs.SetCategory(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -105,6 +105,8 @@ namespace Vocaluxe.Menu.SongMenu
|
|||||||
{
|
{
|
||||||
base.Update(SongOptions);
|
base.Update(SongOptions);
|
||||||
|
|
||||||
|
UpdateList(_Offset);
|
||||||
|
|
||||||
if (SongOptions.Selection.RandomOnly)
|
if (SongOptions.Selection.RandomOnly)
|
||||||
{
|
{
|
||||||
_Locked = _PreviewSelected;
|
_Locked = _PreviewSelected;
|
||||||
@@ -382,6 +384,7 @@ namespace Vocaluxe.Menu.SongMenu
|
|||||||
if ((MouseEvent.RB) && (_Base.Songs.GetNumCategories() > 0) && _Base.Songs.GetCurrentCategoryIndex() >= 0 && _Base.Songs.GetTabs() == EOffOn.TR_CONFIG_ON && SongOptions.Selection.CategoryChangeAllowed)
|
if ((MouseEvent.RB) && (_Base.Songs.GetNumCategories() > 0) && _Base.Songs.GetCurrentCategoryIndex() >= 0 && _Base.Songs.GetTabs() == EOffOn.TR_CONFIG_ON && SongOptions.Selection.CategoryChangeAllowed)
|
||||||
{
|
{
|
||||||
ShowCategories();
|
ShowCategories();
|
||||||
|
MouseEvent.Handled = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (MouseEvent.RB && _Base.Songs.GetTabs() == EOffOn.TR_CONFIG_OFF && !SongOptions.Selection.PartyMode)
|
else if (MouseEvent.RB && _Base.Songs.GetTabs() == EOffOn.TR_CONFIG_OFF && !SongOptions.Selection.PartyMode)
|
||||||
@@ -402,6 +405,7 @@ namespace Vocaluxe.Menu.SongMenu
|
|||||||
if ((tile.Texture.index != _CoverTexture.index) && CHelper.IsInBounds(tile.Rect, MouseEvent))
|
if ((tile.Texture.index != _CoverTexture.index) && CHelper.IsInBounds(tile.Rect, MouseEvent))
|
||||||
{
|
{
|
||||||
EnterCategory(_PreviewSelected);
|
EnterCategory(_PreviewSelected);
|
||||||
|
MouseEvent.Handled = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -662,6 +666,7 @@ namespace Vocaluxe.Menu.SongMenu
|
|||||||
_Locked = -1;
|
_Locked = -1;
|
||||||
_actualSelection = 0;
|
_actualSelection = 0;
|
||||||
AfterCategoryChange();
|
AfterCategoryChange();
|
||||||
|
_Locked = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ShowCategories()
|
protected override void ShowCategories()
|
||||||
@@ -672,16 +677,15 @@ namespace Vocaluxe.Menu.SongMenu
|
|||||||
_Locked = -1;
|
_Locked = -1;
|
||||||
_actualSelection = 0;
|
_actualSelection = 0;
|
||||||
AfterCategoryChange();
|
AfterCategoryChange();
|
||||||
|
_Locked = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void NextCategory()
|
private void NextCategory()
|
||||||
{
|
{
|
||||||
if (_Base.Songs.GetCurrentCategoryIndex() > -1)
|
if (_Base.Songs.GetCurrentCategoryIndex() > -1)
|
||||||
{
|
{
|
||||||
Reset();
|
|
||||||
_Base.Songs.NextCategory();
|
_Base.Songs.NextCategory();
|
||||||
EnterCategory(_Base.Songs.GetCurrentCategoryIndex());
|
EnterCategory(_Base.Songs.GetCurrentCategoryIndex());
|
||||||
_Locked = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -689,10 +693,8 @@ namespace Vocaluxe.Menu.SongMenu
|
|||||||
{
|
{
|
||||||
if (_Base.Songs.GetCurrentCategoryIndex() > -1)
|
if (_Base.Songs.GetCurrentCategoryIndex() > -1)
|
||||||
{
|
{
|
||||||
Reset();
|
|
||||||
_Base.Songs.PrevCategory();
|
_Base.Songs.PrevCategory();
|
||||||
EnterCategory(_Base.Songs.GetCurrentCategoryIndex());
|
EnterCategory(_Base.Songs.GetCurrentCategoryIndex());
|
||||||
_Locked = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -827,7 +829,6 @@ namespace Vocaluxe.Menu.SongMenu
|
|||||||
}
|
}
|
||||||
|
|
||||||
UpdateList(_Offset);
|
UpdateList(_Offset);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IsSmallView()
|
public override bool IsSmallView()
|
||||||
|
|||||||
@@ -67,6 +67,14 @@ namespace Vocaluxe.PartyModes
|
|||||||
return new ScreenSongOptions();
|
return new ScreenSongOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public virtual void OnSongChange(int SongIndex, ref ScreenSongOptions ScreenSongOptions)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void OnCategoryChange(int CategoryIndex, ref ScreenSongOptions ScreenSongOptions)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
public virtual int GetMaxPlayer()
|
public virtual int GetMaxPlayer()
|
||||||
{
|
{
|
||||||
return 6;
|
return 6;
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ namespace Vocaluxe.PartyModes
|
|||||||
_ScreenSongOptions.Selection.CategoryChangeAllowed = true;
|
_ScreenSongOptions.Selection.CategoryChangeAllowed = true;
|
||||||
_ScreenSongOptions.Selection.NumJokers = null;
|
_ScreenSongOptions.Selection.NumJokers = null;
|
||||||
_ScreenSongOptions.Selection.TeamNames = null;
|
_ScreenSongOptions.Selection.TeamNames = null;
|
||||||
|
_ScreenSongOptions.Selection.SongIndex = -1;
|
||||||
|
|
||||||
_ScreenSongOptions.Sorting.SearchString = String.Empty;
|
_ScreenSongOptions.Sorting.SearchString = String.Empty;
|
||||||
_ScreenSongOptions.Sorting.SearchStringVisible = false;
|
_ScreenSongOptions.Sorting.SearchStringVisible = false;
|
||||||
|
|||||||
@@ -28,6 +28,16 @@ namespace Vocaluxe.PartyModes
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public struct SelectionOptions
|
public struct SelectionOptions
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// If != -1, the SongMenu should set the song selection on the provided song index (visible index) if possible
|
||||||
|
/// </summary>
|
||||||
|
public int SongIndex;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// If true, the SongMenu should perform the select random song method
|
||||||
|
/// </summary>
|
||||||
|
public bool SelectNextRandomSong;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Choosing song only by random
|
/// Choosing song only by random
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -69,6 +79,9 @@ namespace Vocaluxe.PartyModes
|
|||||||
EScreens GetMainScreen();
|
EScreens GetMainScreen();
|
||||||
ScreenSongOptions GetScreenSongOptions();
|
ScreenSongOptions GetScreenSongOptions();
|
||||||
|
|
||||||
|
void OnSongChange(int SongIndex, ref ScreenSongOptions ScreenSongOptions);
|
||||||
|
void OnCategoryChange(int CategoryIndex, ref ScreenSongOptions ScreenSongOptions);
|
||||||
|
|
||||||
int GetMaxPlayer();
|
int GetMaxPlayer();
|
||||||
int GetMinPlayer();
|
int GetMinPlayer();
|
||||||
int GetMaxTeams();
|
int GetMaxTeams();
|
||||||
|
|||||||
Reference in new issue
Block a user