using System; using System.Collections.Generic; using System.Text; using Vocaluxe.Menu; namespace Vocaluxe.PartyModes { #region Structs public struct ScreenSongOptions { public SortingOptions Sorting; public SelectionOptions Selection; } public struct SortingOptions { public ESongSorting SongSorting; public EOffOn Tabs; public EOffOn IgnoreArticles; public string SearchString; public bool SearchStringVisible; public bool ShowDuetSongs; } /// /// Configuration of song selection options /// public struct SelectionOptions { /// /// Choosing song only by random /// public bool RandomOnly; /// /// If true, it is not allowed to go to MainScreen nor open the playlist nor open the song menu /// public bool PartyMode; /// /// If true, it is not alled to change or leave the category. It's only valid if Tabs=On. /// public bool CategoryChangeAllowed; /// /// The number of jokers left for each team /// public int[] NumJokers; /// /// The Team Name of the teams (:>) /// public string[] TeamNames; } #endregion Structs public interface IPartyMode { bool Init(); void Initialize(Basic Base); void AddScreen(CMenuParty Screen, string ScreenName); void DataFromScreen(string ScreenName, Object Data); void UpdateGame(); CMenuParty GetNextPartyScreen(out EScreens AlternativeScreen); EScreens GetStartScreen(); EScreens GetMainScreen(); ScreenSongOptions GetScreenSongOptions(); int GetMaxPlayer(); int GetMinPlayer(); int GetMaxTeams(); int GetMinTeams(); int GetMaxNumRounds(); void SetSearchString(string SearchString, bool Visible); void JokerUsed(int TeamNr); void SongSelected(int SongID); void FinishedSinging(); void LeavingScore(); void LeavingHighscore(); } }