Redesign Party Mode Selection Screen and Main Screen (#917)
* Redesign party mode selection - All party modes are shown at a glance as tiles with an icon and their name, sorted by their name - The tiles look and behave like the theme buttons, the details of the selected mode (description, target audience, players, teams, microphones, author and version) are shown below - Modes that need more microphones than configured are dimmed and can't be started - Select with the arrow keys or the mouse, the arrow keys also reach the Start and Back buttons, a click on a tile starts it - More than six modes are split into pages - Icons for Challenge and Tic-Tac-Toe and a general icon for modes without their own - Fixes the number of players shown for modes with a fixed number of players * Highlight Sing and Party in the main menu - Sing and Party are shown as two large buttons side by side above the other buttons - Statistics, Profiles, Options and Exit stay in one row at the bottom - Without a profile the missing profile warning takes the place of Sing and Party, because both are locked then, and looks like the other warnings
This commit is contained in:
1 parent
e665e31f4a
commit
aac5253862
20 files changed
+712
-339
No files matched your search
@@ -162,6 +162,7 @@
|
||||
<string name="TR_SCREENPARTY_NOTEAMS">Keine Teams</string>
|
||||
<string name="TR_SCREENPARTY_NUMTEAMS">Anzahl der Teams</string>
|
||||
<string name="TR_SCREENPARTY_NUMPLAYERS">Anzahl der Spieler</string>
|
||||
<string name="TR_SCREENPARTY_NUMMICS">Mikrofone</string>
|
||||
<string name="TR_SCREENNAMES_MENU">Spielerauswahl</string>
|
||||
<string name="TR_SCREENNAMES_PLAYER">Spieler</string>
|
||||
<string name="TR_SCREENNAMES_1PLAYER">1 Spieler</string>
|
||||
|
||||
@@ -162,6 +162,7 @@
|
||||
<string name="TR_SCREENPARTY_NOTEAMS">No teams</string>
|
||||
<string name="TR_SCREENPARTY_NUMTEAMS">Number of teams</string>
|
||||
<string name="TR_SCREENPARTY_NUMPLAYERS">Number of players</string>
|
||||
<string name="TR_SCREENPARTY_NUMMICS">Microphones</string>
|
||||
<string name="TR_SCREENNAMES_MENU">Player Selection</string>
|
||||
<string name="TR_SCREENNAMES_PLAYER">Player</string>
|
||||
<string name="TR_SCREENNAMES_1PLAYER">1 player</string>
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
<VersionMinor>1</VersionMinor>
|
||||
</Info>
|
||||
<Colors />
|
||||
<Skins />
|
||||
<Skins>
|
||||
<PartyModeIcon>PartyModeIcon.png</PartyModeIcon>
|
||||
</Skins>
|
||||
<Videos />
|
||||
</root>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 5.6 KiB |
@@ -8,6 +8,8 @@
|
||||
<VersionMinor>1</VersionMinor>
|
||||
</Info>
|
||||
<Colors />
|
||||
<Skins />
|
||||
<Skins>
|
||||
<PartyModeIcon>PartyModeIcon.png</PartyModeIcon>
|
||||
</Skins>
|
||||
<Videos />
|
||||
</root>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 6.8 KiB |
@@ -1,5 +1,14 @@
|
||||
ScreenMain
|
||||
|
||||
++++++++++
|
||||
Version 5:
|
||||
(2026 Oct 17)
|
||||
|
||||
Change:
|
||||
ButtonSing and ButtonParty are larger, without reflection and placed side by side above the row of the other buttons
|
||||
Positions of ButtonStatistics, ButtonProfiles, ButtonOptions and ButtonExit
|
||||
StaticWarningProfiles and TextWarningProfiles look like the other warnings and take the place of ButtonSing and ButtonParty, because they are locked without a profile
|
||||
|
||||
++++++++++
|
||||
Version 4:
|
||||
(2026 Oct 16)
|
||||
|
||||
@@ -1,2 +1,30 @@
|
||||
ScreenParty
|
||||
+++++++++
|
||||
Version 2:
|
||||
(2026 Oct 17)
|
||||
|
||||
Add:
|
||||
<StaticTile>
|
||||
<StaticTileSelected>
|
||||
<StaticTileIcon>
|
||||
<StaticTileIconSelected>
|
||||
<StaticDetailPanel>
|
||||
<TextTileName>
|
||||
<TextTileNameSelected>
|
||||
<TextPage>
|
||||
<TextDetailName>
|
||||
<TextNumMics>
|
||||
<TextPartyNumMics>
|
||||
<ButtonPageUp>
|
||||
<ButtonPageDown>
|
||||
|
||||
Remove:
|
||||
<SelectSlideModes>
|
||||
<TextPartyModes>
|
||||
<TextPartyDescription>
|
||||
<TextPartyTargetaudience>
|
||||
<TextPartyVersion>
|
||||
<TextVersion>
|
||||
|
||||
Change:
|
||||
All party modes are shown as tiles with an icon, the details of the selected mode are shown below
|
||||
@@ -335,6 +335,7 @@
|
||||
<LogoMain>LogoMain.png</LogoMain>
|
||||
<Menu>SongMenu.png</Menu>
|
||||
<Button>Button.png</Button>
|
||||
<ButtonTile>ButtonTile.png</ButtonTile>
|
||||
<CoverTile>CoverTile.png</CoverTile>
|
||||
<PlayerTile>PlayerTile.png</PlayerTile>
|
||||
<CoverTextBackground>CoverTextBackground.png</CoverTextBackground>
|
||||
@@ -370,6 +371,7 @@
|
||||
<ToneHelper>ToneHelper.png</ToneHelper>
|
||||
<Score>Score.png</Score>
|
||||
<Star>Star.png</Star>
|
||||
<PartyModeIcon>PartyModeIcon.png</PartyModeIcon>
|
||||
<CountdownDot>CountdownDot.png</CountdownDot>
|
||||
<NoAvatar>NoAvatar.png</NoAvatar>
|
||||
<SongMenu>SongMenu.png</SongMenu>
|
||||
|
||||
@@ -335,6 +335,7 @@
|
||||
<LogoMain>LogoMain.png</LogoMain>
|
||||
<Menu>SongMenu.png</Menu>
|
||||
<Button>Button.png</Button>
|
||||
<ButtonTile>ButtonTile.png</ButtonTile>
|
||||
<CoverTile>CoverTile.png</CoverTile>
|
||||
<PlayerTile>PlayerTile.png</PlayerTile>
|
||||
<CoverTextBackground>CoverTextBackground.png</CoverTextBackground>
|
||||
@@ -370,6 +371,7 @@
|
||||
<ToneHelper>ToneHelper.png</ToneHelper>
|
||||
<Score>Score.png</Score>
|
||||
<Star>Star.png</Star>
|
||||
<PartyModeIcon>PartyModeIcon.png</PartyModeIcon>
|
||||
<CountdownDot>CountdownDot.png</CountdownDot>
|
||||
<NoAvatar>NoAvatar.png</NoAvatar>
|
||||
<SongMenu>SongMenu.png</SongMenu>
|
||||
|
||||
@@ -335,6 +335,7 @@
|
||||
<LogoMain>LogoMain.png</LogoMain>
|
||||
<Menu>SongMenu.png</Menu>
|
||||
<Button>Button.png</Button>
|
||||
<ButtonTile>ButtonTile.png</ButtonTile>
|
||||
<CoverTile>CoverTile.png</CoverTile>
|
||||
<PlayerTile>PlayerTile.png</PlayerTile>
|
||||
<CoverTextBackground>CoverTextBackground.png</CoverTextBackground>
|
||||
@@ -370,6 +371,7 @@
|
||||
<ToneHelper>ToneHelper.png</ToneHelper>
|
||||
<Score>Score.png</Score>
|
||||
<Star>Star.png</Star>
|
||||
<PartyModeIcon>PartyModeIcon.png</PartyModeIcon>
|
||||
<CountdownDot>CountdownDot.png</CountdownDot>
|
||||
<NoAvatar>NoAvatar.png</NoAvatar>
|
||||
<SongMenu>SongMenu.png</SongMenu>
|
||||
|
||||
@@ -335,6 +335,7 @@
|
||||
<LogoMain>LogoMain.png</LogoMain>
|
||||
<Menu>SongMenu.png</Menu>
|
||||
<Button>Button.png</Button>
|
||||
<ButtonTile>ButtonTile.png</ButtonTile>
|
||||
<CoverTile>CoverTile.png</CoverTile>
|
||||
<PlayerTile>PlayerTile.png</PlayerTile>
|
||||
<CoverTextBackground>CoverTextBackground.png</CoverTextBackground>
|
||||
@@ -370,6 +371,7 @@
|
||||
<ToneHelper>ToneHelper.png</ToneHelper>
|
||||
<Score>Score.png</Score>
|
||||
<Star>Star.png</Star>
|
||||
<PartyModeIcon>PartyModeIcon.png</PartyModeIcon>
|
||||
<CountdownDot>CountdownDot.png</CountdownDot>
|
||||
<NoAvatar>NoAvatar.png</NoAvatar>
|
||||
<SongMenu>SongMenu.png</SongMenu>
|
||||
|
||||
@@ -335,6 +335,7 @@
|
||||
<LogoMain>LogoMain.png</LogoMain>
|
||||
<Menu>SongMenu.png</Menu>
|
||||
<Button>Button.png</Button>
|
||||
<ButtonTile>ButtonTile.png</ButtonTile>
|
||||
<CoverTile>CoverTile.png</CoverTile>
|
||||
<PlayerTile>PlayerTile.png</PlayerTile>
|
||||
<CoverTextBackground>CoverTextBackground.png</CoverTextBackground>
|
||||
@@ -370,6 +371,7 @@
|
||||
<ToneHelper>ToneHelper.png</ToneHelper>
|
||||
<Score>Score.png</Score>
|
||||
<Star>Star.png</Star>
|
||||
<PartyModeIcon>PartyModeIcon.png</PartyModeIcon>
|
||||
<CountdownDot>CountdownDot.png</CountdownDot>
|
||||
<NoAvatar>NoAvatar.png</NoAvatar>
|
||||
<SongMenu>SongMenu.png</SongMenu>
|
||||
|
||||
@@ -335,6 +335,7 @@
|
||||
<LogoMain>LogoMain.png</LogoMain>
|
||||
<Menu>SongMenu.png</Menu>
|
||||
<Button>Button.png</Button>
|
||||
<ButtonTile>ButtonTile.png</ButtonTile>
|
||||
<CoverTile>CoverTile.png</CoverTile>
|
||||
<PlayerTile>PlayerTile.png</PlayerTile>
|
||||
<CoverTextBackground>CoverTextBackground.png</CoverTextBackground>
|
||||
@@ -370,6 +371,7 @@
|
||||
<ToneHelper>ToneHelper.png</ToneHelper>
|
||||
<Score>Score.png</Score>
|
||||
<Star>Star.png</Star>
|
||||
<PartyModeIcon>PartyModeIcon.png</PartyModeIcon>
|
||||
<CountdownDot>CountdownDot.png</CountdownDot>
|
||||
<NoAvatar>NoAvatar.png</NoAvatar>
|
||||
<SongMenu>SongMenu.png</SongMenu>
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 5.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.9 KiB |
@@ -2,7 +2,7 @@
|
||||
<Screen xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<Informations>
|
||||
<ScreenName>ScreenMain</ScreenName>
|
||||
<ScreenVersion>4</ScreenVersion>
|
||||
<ScreenVersion>5</ScreenVersion>
|
||||
</Informations>
|
||||
<Backgrounds>
|
||||
<Background Name="Background1">
|
||||
@@ -37,13 +37,13 @@
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticWarningProfiles">
|
||||
<Skin>TextBG</Skin>
|
||||
<Skin>Warning</Skin>
|
||||
<Color Name="StaticWarningColor" />
|
||||
<Rect>
|
||||
<X>135</X>
|
||||
<Y>915</Y>
|
||||
<W>510</W>
|
||||
<H>45</H>
|
||||
<X>390</X>
|
||||
<Y>767.5</Y>
|
||||
<W>1140</W>
|
||||
<H>75</H>
|
||||
<Z>-1.9</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
@@ -64,11 +64,11 @@
|
||||
<Text>Vocaluxe "Shining Heaven" v0.3 (x64) Beta (0083)</Text>
|
||||
</Text>
|
||||
<Text Name="TextWarningProfiles">
|
||||
<X>390</X>
|
||||
<Y>918</Y>
|
||||
<X>960</X>
|
||||
<Y>787.5</Y>
|
||||
<Z>-2</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>500</MaxW>
|
||||
<H>37.5</H>
|
||||
<MaxW>960</MaxW>
|
||||
<Color Name="TextWarningColor" />
|
||||
<SelColor Name="TextWarningColor" />
|
||||
<Align>Center</Align>
|
||||
@@ -83,20 +83,20 @@
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>135</X>
|
||||
<Y>900</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<X>420</X>
|
||||
<Y>750</Y>
|
||||
<W>510</W>
|
||||
<H>110</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<X>255</X>
|
||||
<Y>26</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<H>58</H>
|
||||
<MaxW>490</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
@@ -105,33 +105,25 @@
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENMAIN_BUTTON_SING</Text>
|
||||
</Text>
|
||||
<Reflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</Reflection>
|
||||
<SelReflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
<Button Name="ButtonParty">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>420</X>
|
||||
<Y>900</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<X>990</X>
|
||||
<Y>750</Y>
|
||||
<W>510</W>
|
||||
<H>110</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<X>255</X>
|
||||
<Y>26</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<H>58</H>
|
||||
<MaxW>490</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
@@ -140,20 +132,12 @@
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENMAIN_BUTTON_PARTY</Text>
|
||||
</Text>
|
||||
<Reflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</Reflection>
|
||||
<SelReflection>
|
||||
<Height>39</Height>
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
<Button Name="ButtonStatistics">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>705</X>
|
||||
<X>420</X>
|
||||
<Y>900</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
@@ -223,7 +207,7 @@
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>1275</X>
|
||||
<X>705</X>
|
||||
<Y>900</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
@@ -258,7 +242,7 @@
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>1560</X>
|
||||
<X>1275</X>
|
||||
<Y>900</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<Screen xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<Informations>
|
||||
<ScreenName>ScreenParty</ScreenName>
|
||||
<ScreenVersion>1</ScreenVersion>
|
||||
<ScreenVersion>2</ScreenVersion>
|
||||
</Informations>
|
||||
<Backgrounds>
|
||||
<Background Name="Background1">
|
||||
@@ -25,6 +25,61 @@
|
||||
<Z>1</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticTile">
|
||||
<Skin>ButtonTile</Skin>
|
||||
<Color Name="ButtonMainColor" />
|
||||
<Rect>
|
||||
<X>170</X>
|
||||
<Y>160</Y>
|
||||
<W>500</W>
|
||||
<H>250</H>
|
||||
<Z>0.5</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticTileSelected">
|
||||
<Skin>ButtonTile</Skin>
|
||||
<Color Name="ButtonSelColor" />
|
||||
<Rect>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
<W>500</W>
|
||||
<H>250</H>
|
||||
<Z>0.5</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticTileIcon">
|
||||
<Skin />
|
||||
<Color Name="ButtonTextColor" />
|
||||
<Rect>
|
||||
<X>345</X>
|
||||
<Y>182</Y>
|
||||
<W>150</W>
|
||||
<H>150</H>
|
||||
<Z>0.4</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticTileIconSelected">
|
||||
<Skin />
|
||||
<Color Name="ButtonTextSelColor" />
|
||||
<Rect>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
<W>150</W>
|
||||
<H>150</H>
|
||||
<Z>0.4</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
<Static Name="StaticDetailPanel">
|
||||
<Skin>SongMenu</Skin>
|
||||
<Color Name="StaticColorAlpha" />
|
||||
<Rect>
|
||||
<X>170</X>
|
||||
<Y>720</Y>
|
||||
<W>1580</W>
|
||||
<H>190</H>
|
||||
<Z>0.8</Z>
|
||||
</Rect>
|
||||
</Static>
|
||||
</Statics>
|
||||
<Texts>
|
||||
<Text Name="TextTitle">
|
||||
@@ -41,111 +96,46 @@
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENPARTY_TITLE</Text>
|
||||
</Text>
|
||||
<Text Name="TextPartyModes">
|
||||
<X>112.5</X>
|
||||
<Y>160.5</Y>
|
||||
<Text Name="TextTileName">
|
||||
<X>420</X>
|
||||
<Y>345</Y>
|
||||
<Z>0</Z>
|
||||
<H>0</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<H>40</H>
|
||||
<MaxW>470</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENPARTY_MODES</Text>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextPartyDescription">
|
||||
<X>112.5</X>
|
||||
<Y>250.5</Y>
|
||||
<Text Name="TextTileNameSelected">
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
<Z>0</Z>
|
||||
<H>0</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<H>40</H>
|
||||
<MaxW>470</MaxW>
|
||||
<Color Name="ButtonTextSelColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENPARTY_DESCRIPTION</Text>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextPartyTargetaudience">
|
||||
<X>112.5</X>
|
||||
<Y>340.5</Y>
|
||||
<Text Name="TextPage">
|
||||
<X>960</X>
|
||||
<Y>691</Y>
|
||||
<Z>0</Z>
|
||||
<H>0</H>
|
||||
<H>24</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENPARTY_TARGETAUDIENCE</Text>
|
||||
</Text>
|
||||
<Text Name="TextPartyNumTeams">
|
||||
<X>742.5</X>
|
||||
<Y>580.5</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENPARTY_NUMTEAMS</Text>
|
||||
</Text>
|
||||
<Text Name="TextPartyNumPlayers">
|
||||
<X>742.5</X>
|
||||
<Y>670.5</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENPARTY_NUMPLAYERS</Text>
|
||||
</Text>
|
||||
<Text Name="TextPartyAuthor">
|
||||
<X>112.5</X>
|
||||
<Y>610.5</Y>
|
||||
<Z>0</Z>
|
||||
<H>0</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENPARTY_AUTHOR</Text>
|
||||
</Text>
|
||||
<Text Name="TextPartyVersion">
|
||||
<X>112.5</X>
|
||||
<Y>700.5</Y>
|
||||
<Z>0</Z>
|
||||
<H>0</H>
|
||||
<MaxW>0</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENPARTY_VERSION</Text>
|
||||
</Text>
|
||||
<Text Name="TextDescription">
|
||||
<X>975</X>
|
||||
<Y>400.5</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>900</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<Color>
|
||||
<R>0.75</R>
|
||||
<G>0.78</G>
|
||||
<B>0.85</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
@@ -153,98 +143,212 @@
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextDetailName">
|
||||
<X>200</X>
|
||||
<Y>742</Y>
|
||||
<Z>0</Z>
|
||||
<H>40</H>
|
||||
<MaxW>1000</MaxW>
|
||||
<Color Name="ButtonSelColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextDescription">
|
||||
<X>200</X>
|
||||
<Y>790</Y>
|
||||
<Z>0</Z>
|
||||
<H>30</H>
|
||||
<MaxW>1000</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Normal</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextTargetAudience">
|
||||
<X>975</X>
|
||||
<Y>490.5</Y>
|
||||
<X>200</X>
|
||||
<Y>832</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>900</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<H>28</H>
|
||||
<MaxW>1000</MaxW>
|
||||
<Color>
|
||||
<R>0.75</R>
|
||||
<G>0.78</G>
|
||||
<B>0.85</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextNumTeams">
|
||||
<X>1155</X>
|
||||
<Y>580.5</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>900</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextNumPlayers">
|
||||
<X>1155</X>
|
||||
<Y>670.5</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>900</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextAuthor">
|
||||
<X>1275</X>
|
||||
<Y>610.5</Y>
|
||||
<Z>0</Z>
|
||||
<H>0</H>
|
||||
<MaxW>900</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextVersion">
|
||||
<X>1275</X>
|
||||
<Y>700.5</Y>
|
||||
<Z>0</Z>
|
||||
<H>0</H>
|
||||
<MaxW>900</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Style>Normal</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextError">
|
||||
<X>1275</X>
|
||||
<Y>790.5</Y>
|
||||
<X>200</X>
|
||||
<Y>868</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>900</MaxW>
|
||||
<Color Name="TextWarningColor" />
|
||||
<H>28</H>
|
||||
<MaxW>1000</MaxW>
|
||||
<Color>
|
||||
<R>1</R>
|
||||
<G>0.45</G>
|
||||
<B>0.45</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENPARTY_ERROR</Text>
|
||||
</Text>
|
||||
<Text Name="TextPartyNumPlayers">
|
||||
<X>1480</X>
|
||||
<Y>742</Y>
|
||||
<Z>0</Z>
|
||||
<H>28</H>
|
||||
<MaxW>280</MaxW>
|
||||
<Color>
|
||||
<R>0.75</R>
|
||||
<G>0.78</G>
|
||||
<B>0.85</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Right</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Normal</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENPARTY_NUMPLAYERS</Text>
|
||||
</Text>
|
||||
<Text Name="TextNumPlayers">
|
||||
<X>1500</X>
|
||||
<Y>742</Y>
|
||||
<Z>0</Z>
|
||||
<H>28</H>
|
||||
<MaxW>235</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextPartyNumTeams">
|
||||
<X>1480</X>
|
||||
<Y>780</Y>
|
||||
<Z>0</Z>
|
||||
<H>28</H>
|
||||
<MaxW>280</MaxW>
|
||||
<Color>
|
||||
<R>0.75</R>
|
||||
<G>0.78</G>
|
||||
<B>0.85</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Right</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Normal</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENPARTY_NUMTEAMS</Text>
|
||||
</Text>
|
||||
<Text Name="TextNumTeams">
|
||||
<X>1500</X>
|
||||
<Y>780</Y>
|
||||
<Z>0</Z>
|
||||
<H>28</H>
|
||||
<MaxW>235</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextPartyNumMics">
|
||||
<X>1480</X>
|
||||
<Y>818</Y>
|
||||
<Z>0</Z>
|
||||
<H>28</H>
|
||||
<MaxW>280</MaxW>
|
||||
<Color>
|
||||
<R>0.75</R>
|
||||
<G>0.78</G>
|
||||
<B>0.85</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Right</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Normal</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENPARTY_NUMMICS</Text>
|
||||
</Text>
|
||||
<Text Name="TextNumMics">
|
||||
<X>1500</X>
|
||||
<Y>818</Y>
|
||||
<Z>0</Z>
|
||||
<H>28</H>
|
||||
<MaxW>235</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
<Text Name="TextPartyAuthor">
|
||||
<X>1480</X>
|
||||
<Y>856</Y>
|
||||
<Z>0</Z>
|
||||
<H>28</H>
|
||||
<MaxW>280</MaxW>
|
||||
<Color>
|
||||
<R>0.75</R>
|
||||
<G>0.78</G>
|
||||
<B>0.85</B>
|
||||
<A>1</A>
|
||||
</Color>
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Right</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Normal</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text>TR_SCREENPARTY_AUTHOR</Text>
|
||||
</Text>
|
||||
<Text Name="TextAuthor">
|
||||
<X>1500</X>
|
||||
<Y>856</Y>
|
||||
<Z>0</Z>
|
||||
<H>28</H>
|
||||
<MaxW>235</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
</Texts>
|
||||
<Buttons>
|
||||
<Button Name="ButtonStart">
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>1477.5</X>
|
||||
<Y>900</Y>
|
||||
<X>1545</X>
|
||||
<Y>945</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
@@ -278,8 +382,8 @@
|
||||
<Skin>Button</Skin>
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<Rect>
|
||||
<X>217.5</X>
|
||||
<Y>900</Y>
|
||||
<X>150</X>
|
||||
<Y>945</Y>
|
||||
<W>225</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
@@ -309,53 +413,64 @@
|
||||
<Space>15</Space>
|
||||
</SelReflection>
|
||||
</Button>
|
||||
<Button Name="ButtonPageUp">
|
||||
<Skin>ScrollUp</Skin>
|
||||
<SkinSelected>ScrollUp</SkinSelected>
|
||||
<Rect>
|
||||
<X>1775</X>
|
||||
<Y>170</Y>
|
||||
<W>60</W>
|
||||
<H>32</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
</Button>
|
||||
<Button Name="ButtonPageDown">
|
||||
<Skin>ScrollDown</Skin>
|
||||
<SkinSelected>ScrollDown</SkinSelected>
|
||||
<Rect>
|
||||
<X>1775</X>
|
||||
<Y>648</Y>
|
||||
<W>60</W>
|
||||
<H>32</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<Color Name="ButtonColor" />
|
||||
<SelColor Name="ButtonSelColor" />
|
||||
<Text Name="Text">
|
||||
<X>112.5</X>
|
||||
<Y>18</Y>
|
||||
<Z>0</Z>
|
||||
<H>40.5</H>
|
||||
<MaxW>213</MaxW>
|
||||
<Color Name="ButtonTextColor" />
|
||||
<SelColor Name="ButtonTextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<ResizeAlign>Center</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</Text>
|
||||
</Button>
|
||||
</Buttons>
|
||||
<SongMenus />
|
||||
<Lyrics />
|
||||
<SelectSlides>
|
||||
<SelectSlide Name="SelectSlideModes">
|
||||
<Skin />
|
||||
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
|
||||
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
|
||||
<SkinSelected>SelectSlide</SkinSelected>
|
||||
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
|
||||
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
|
||||
<Rect>
|
||||
<X>450</X>
|
||||
<Y>300</Y>
|
||||
<W>1072.5</W>
|
||||
<H>75</H>
|
||||
<Z>0</Z>
|
||||
</Rect>
|
||||
<RectArrowLeft>
|
||||
<X>457.5</X>
|
||||
<Y>307.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowLeft>
|
||||
<RectArrowRight>
|
||||
<X>1455</X>
|
||||
<Y>307.5</Y>
|
||||
<W>60</W>
|
||||
<H>60</H>
|
||||
<Z>0</Z>
|
||||
</RectArrowRight>
|
||||
<Color Name="SelectSlideColor" />
|
||||
<SelColor Name="SelectSlideSelColor" />
|
||||
<ArrowColor Name="ArrowColor" />
|
||||
<ArrowSelColor Name="ArrowSelColor" />
|
||||
<TextColor Name="TextColor" />
|
||||
<TextSelColor Name="TextColor" />
|
||||
<TextH>81</TextH>
|
||||
<TextRelativeX>75</TextRelativeX>
|
||||
<TextRelativeY>0</TextRelativeY>
|
||||
<TextMaxW>900</TextMaxW>
|
||||
<TextFont>Outline</TextFont>
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<NumVisible>1</NumVisible>
|
||||
</SelectSlide>
|
||||
</SelectSlides>
|
||||
<SelectSlides />
|
||||
<SingNotes />
|
||||
<NameSelections />
|
||||
<Equalizers />
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace Vocaluxe.Screens
|
||||
// Version number for theme files. Increment it, if you've changed something on the theme files!
|
||||
protected override int _ScreenVersion
|
||||
{
|
||||
get { return 4; }
|
||||
get { return 5; }
|
||||
}
|
||||
|
||||
private const string _ButtonSing = "ButtonSing";
|
||||
@@ -206,6 +206,8 @@ namespace Vocaluxe.Screens
|
||||
_Texts[_TextWarningProfiles].Visible = !profileOK;
|
||||
_Buttons[_ButtonSing].Selectable = profileOK;
|
||||
_Buttons[_ButtonParty].Selectable = profileOK;
|
||||
_Buttons[_ButtonSing].Visible = profileOK;
|
||||
_Buttons[_ButtonParty].Visible = profileOK;
|
||||
|
||||
if (_Texts[_TextWarningProfiles].Visible && !_HasPlayedWarningSound)
|
||||
{
|
||||
|
||||
@@ -15,9 +15,11 @@
|
||||
// along with Vocaluxe. If not, see <http://www.gnu.org/licenses/>.
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Base.ThemeSystem;
|
||||
using VocaluxeLib;
|
||||
using VocaluxeLib.Menu;
|
||||
|
||||
@@ -25,70 +27,182 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
public class CScreenParty : CMenu
|
||||
{
|
||||
private class CModeTile
|
||||
{
|
||||
public CStatic Box;
|
||||
public CStatic Icon;
|
||||
public CText Name;
|
||||
}
|
||||
|
||||
// Version number for theme files. Increment it, if you've changed something on the theme files!
|
||||
protected override int _ScreenVersion
|
||||
{
|
||||
get { return 1; }
|
||||
get { return 2; }
|
||||
}
|
||||
|
||||
private const string _TextDetailName = "TextDetailName";
|
||||
private const string _TextDescription = "TextDescription";
|
||||
private const string _TextTargetAudience = "TextTargetAudience";
|
||||
private const string _TextNumTeams = "TextNumTeams";
|
||||
private const string _TextNumPlayers = "TextNumPlayers";
|
||||
private const string _TextNumMics = "TextNumMics";
|
||||
private const string _TextAuthor = "TextAuthor";
|
||||
private const string _TextVersion = "TextVersion";
|
||||
private const string _TextError = "TextError";
|
||||
private const string _TextTileName = "TextTileName";
|
||||
private const string _TextTileNameSelected = "TextTileNameSelected";
|
||||
private const string _TextPage = "TextPage";
|
||||
private const string _StaticTile = "StaticTile";
|
||||
private const string _StaticTileSelected = "StaticTileSelected";
|
||||
private const string _StaticTileIcon = "StaticTileIcon";
|
||||
private const string _StaticTileIconSelected = "StaticTileIconSelected";
|
||||
private const string _ButtonStart = "ButtonStart";
|
||||
private const string _ButtonExit = "ButtonExit";
|
||||
private const string _SelectSlideModes = "SelectSlideModes";
|
||||
private const string _ButtonPageUp = "ButtonPageUp";
|
||||
private const string _ButtonPageDown = "ButtonPageDown";
|
||||
|
||||
private const string _SkinPartyModeIcon = "PartyModeIcon";
|
||||
private const int _NumColumns = 3;
|
||||
private const int _NumRows = 2;
|
||||
private const int _TilesPerPage = _NumColumns * _NumRows;
|
||||
private const float _TileSpaceX = 40f;
|
||||
private const float _TileSpaceY = 30f;
|
||||
private const float _UnavailableAlpha = 0.4f;
|
||||
|
||||
private List<SPartyModeInfos> _PartyModeInfos;
|
||||
private readonly List<CModeTile> _Tiles = new List<CModeTile>();
|
||||
private int _Selected;
|
||||
private bool _OnButtons;
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
|
||||
_ThemeTexts = new string[] { _TextDescription, _TextTargetAudience, _TextNumTeams, _TextNumPlayers, _TextAuthor, _TextVersion, _TextError };
|
||||
_ThemeButtons = new string[] { _ButtonStart, _ButtonExit };
|
||||
_ThemeSelectSlides = new string[] { _SelectSlideModes };
|
||||
_ThemeTexts = new string[]
|
||||
{
|
||||
_TextDetailName, _TextDescription, _TextTargetAudience, _TextNumTeams, _TextNumPlayers, _TextNumMics, _TextAuthor, _TextError, _TextTileName,
|
||||
_TextTileNameSelected, _TextPage
|
||||
};
|
||||
_ThemeStatics = new string[] { _StaticTile, _StaticTileSelected, _StaticTileIcon, _StaticTileIconSelected };
|
||||
_ThemeButtons = new string[] { _ButtonStart, _ButtonExit, _ButtonPageUp, _ButtonPageDown };
|
||||
}
|
||||
|
||||
public override void LoadTheme(string xmlPath)
|
||||
{
|
||||
base.LoadTheme(xmlPath);
|
||||
|
||||
_Tiles.Clear();
|
||||
var box = _Statics[_StaticTile].Rect;
|
||||
var icon = _Statics[_StaticTileIcon].Rect;
|
||||
for (var i = 0; i < _TilesPerPage; i++)
|
||||
{
|
||||
var x = box.X + (i % _NumColumns) * (box.W + _TileSpaceX);
|
||||
var y = box.Y + (i / _NumColumns) * (box.H + _TileSpaceY);
|
||||
var tile = new CModeTile
|
||||
{
|
||||
Box = GetNewStatic(_Statics[_StaticTile]),
|
||||
Icon = GetNewStatic(_Statics[_StaticTileIcon]),
|
||||
Name = GetNewText(_Texts[_TextTileName])
|
||||
};
|
||||
tile.Box.MaxRect = new SRectF(x, y, box.W, box.H, box.Z);
|
||||
tile.Icon.MaxRect = new SRectF(x + icon.X - box.X, y + icon.Y - box.Y, icon.W, icon.H, icon.Z);
|
||||
tile.Name.X = x + _Texts[_TextTileName].X - box.X;
|
||||
tile.Name.Y = y + _Texts[_TextTileName].Y - box.Y;
|
||||
_AddStatic(tile.Box);
|
||||
_AddStatic(tile.Icon);
|
||||
_AddText(tile.Name);
|
||||
_Tiles.Add(tile);
|
||||
}
|
||||
|
||||
_Statics[_StaticTile].Visible = false;
|
||||
_Statics[_StaticTileSelected].Visible = false;
|
||||
_Statics[_StaticTileIcon].Visible = false;
|
||||
_Statics[_StaticTileIconSelected].Visible = false;
|
||||
_Texts[_TextTileName].Visible = false;
|
||||
_Texts[_TextTileNameSelected].Visible = false;
|
||||
}
|
||||
|
||||
public override bool HandleInput(SKeyEvent keyEvent)
|
||||
{
|
||||
base.HandleInput(keyEvent);
|
||||
|
||||
if (keyEvent.KeyPressed) { }
|
||||
else
|
||||
if (keyEvent.Key != Keys.Left && keyEvent.Key != Keys.Right && keyEvent.Key != Keys.Up && keyEvent.Key != Keys.Down && keyEvent.Key != Keys.Tab)
|
||||
{
|
||||
switch (keyEvent.Key)
|
||||
{
|
||||
case Keys.Back:
|
||||
case Keys.Escape:
|
||||
base.HandleInput(keyEvent);
|
||||
}
|
||||
|
||||
if (keyEvent.KeyPressed)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
switch (keyEvent.Key)
|
||||
{
|
||||
case Keys.Back:
|
||||
case Keys.Escape:
|
||||
CGraphics.FadeTo(EScreen.Main);
|
||||
break;
|
||||
|
||||
case Keys.Enter:
|
||||
if (_OnButtons && _Buttons[_ButtonExit].Selected)
|
||||
{
|
||||
CGraphics.FadeTo(EScreen.Main);
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
_StartPartyMode();
|
||||
}
|
||||
|
||||
case Keys.Enter:
|
||||
if (_Buttons[_ButtonStart].Selected)
|
||||
break;
|
||||
|
||||
case Keys.Left:
|
||||
case Keys.Right:
|
||||
if (_OnButtons)
|
||||
{
|
||||
_SwitchButton();
|
||||
}
|
||||
else
|
||||
{
|
||||
_Select(_Selected + (keyEvent.Key == Keys.Left ? -1 : 1));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case Keys.Up:
|
||||
if (_OnButtons)
|
||||
{
|
||||
_FocusTiles();
|
||||
}
|
||||
else
|
||||
{
|
||||
_Select(_Selected - _NumColumns);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case Keys.Down:
|
||||
if (!_OnButtons)
|
||||
{
|
||||
if (_Selected + _NumColumns < _PartyModeInfos.Count)
|
||||
{
|
||||
_StartPartyMode();
|
||||
_Select(_Selected + _NumColumns);
|
||||
}
|
||||
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
else
|
||||
{
|
||||
CGraphics.FadeTo(EScreen.Main);
|
||||
_FocusButtons();
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
case Keys.Left:
|
||||
case Keys.Right:
|
||||
if (_SelectSlides[_SelectSlideModes].Selected)
|
||||
{
|
||||
_UpdateSelection();
|
||||
}
|
||||
case Keys.Tab:
|
||||
if (_OnButtons)
|
||||
{
|
||||
_SwitchButton();
|
||||
}
|
||||
else
|
||||
{
|
||||
_FocusButtons();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -97,22 +211,57 @@ namespace Vocaluxe.Screens
|
||||
public override bool HandleMouse(SMouseEvent mouseEvent)
|
||||
{
|
||||
base.HandleMouse(mouseEvent);
|
||||
|
||||
if (mouseEvent.LB && _IsMouseOverCurSelection(mouseEvent))
|
||||
if (!_OnButtons && (_Buttons[_ButtonStart].Selected || _Buttons[_ButtonExit].Selected))
|
||||
{
|
||||
if (_Buttons[_ButtonStart].Selected)
|
||||
_OnButtons = true;
|
||||
_UpdateTiles();
|
||||
}
|
||||
|
||||
var first = _GetPage() * _TilesPerPage;
|
||||
for (var i = 0; i < _Tiles.Count && first + i < _PartyModeInfos.Count; i++)
|
||||
{
|
||||
if (!CHelper.IsInBounds(_Tiles[i].Box.Rect, mouseEvent))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (_OnButtons || first + i != _Selected)
|
||||
{
|
||||
_FocusTiles();
|
||||
_Select(first + i);
|
||||
}
|
||||
|
||||
if (mouseEvent.LB)
|
||||
{
|
||||
_StartPartyMode();
|
||||
}
|
||||
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
{
|
||||
CGraphics.FadeTo(EScreen.Main);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if (_SelectSlides[_SelectSlideModes].Selected)
|
||||
if (mouseEvent.LB)
|
||||
{
|
||||
if (_IsMouseOverCurSelection(mouseEvent))
|
||||
{
|
||||
_UpdateSelection();
|
||||
if (_Buttons[_ButtonStart].Selected)
|
||||
{
|
||||
_StartPartyMode();
|
||||
}
|
||||
|
||||
if (_Buttons[_ButtonExit].Selected)
|
||||
{
|
||||
CGraphics.FadeTo(EScreen.Main);
|
||||
}
|
||||
|
||||
if (_Buttons[_ButtonPageUp].Selected)
|
||||
{
|
||||
_Select((_GetPage() - 1) * _TilesPerPage);
|
||||
}
|
||||
|
||||
if (_Buttons[_ButtonPageDown].Selected)
|
||||
{
|
||||
_Select((_GetPage() + 1) * _TilesPerPage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,19 +276,10 @@ namespace Vocaluxe.Screens
|
||||
public override void OnShow()
|
||||
{
|
||||
base.OnShow();
|
||||
|
||||
_PartyModeInfos = CParty.GetPartyModeInfos();
|
||||
|
||||
_SelectSlides[_SelectSlideModes].Clear();
|
||||
foreach (var info in _PartyModeInfos)
|
||||
{
|
||||
_SelectSlides[_SelectSlideModes].AddValue(info.Name, info.ExtInfo.Id);
|
||||
}
|
||||
|
||||
_SelectSlides[_SelectSlideModes].Selection = 0;
|
||||
_UpdateSelection();
|
||||
|
||||
_SelectElement(_SelectSlides[_SelectSlideModes]);
|
||||
_PartyModeInfos.Sort((a, b) => string.Compare(CLanguage.Translate(a.Name, a.ExtInfo.Id), CLanguage.Translate(b.Name, b.ExtInfo.Id), StringComparison.CurrentCultureIgnoreCase));
|
||||
_Select(Math.Min(_Selected, Math.Max(0, _PartyModeInfos.Count - 1)));
|
||||
_FocusTiles();
|
||||
}
|
||||
|
||||
public override bool UpdateGame()
|
||||
@@ -147,25 +287,114 @@ namespace Vocaluxe.Screens
|
||||
return true;
|
||||
}
|
||||
|
||||
private void _UpdateSelection()
|
||||
private void _FocusTiles()
|
||||
{
|
||||
if (_PartyModeInfos.Count == 0)
|
||||
_OnButtons = false;
|
||||
_Buttons[_ButtonStart].Selected = false;
|
||||
_Buttons[_ButtonExit].Selected = false;
|
||||
_UpdateTiles();
|
||||
}
|
||||
|
||||
private void _FocusButtons()
|
||||
{
|
||||
_OnButtons = true;
|
||||
_SelectElement(_Buttons[_ButtonStart].Visible ? _Buttons[_ButtonStart] : _Buttons[_ButtonExit]);
|
||||
_UpdateTiles();
|
||||
}
|
||||
|
||||
private void _SwitchButton()
|
||||
{
|
||||
if (_Buttons[_ButtonStart].Selected || !_Buttons[_ButtonStart].Visible)
|
||||
{
|
||||
_SelectElement(_Buttons[_ButtonExit]);
|
||||
}
|
||||
else
|
||||
{
|
||||
_SelectElement(_Buttons[_ButtonStart]);
|
||||
}
|
||||
}
|
||||
|
||||
private int _GetPage()
|
||||
{
|
||||
return _Selected / _TilesPerPage;
|
||||
}
|
||||
|
||||
private int _GetNumPages()
|
||||
{
|
||||
return Math.Max(1, (_PartyModeInfos.Count + _TilesPerPage - 1) / _TilesPerPage);
|
||||
}
|
||||
|
||||
private static bool _IsPlayable(SPartyModeInfos info)
|
||||
{
|
||||
return CConfig.GetMaxNumMics() >= info.ExtInfo.MinMics;
|
||||
}
|
||||
|
||||
private void _Select(int index)
|
||||
{
|
||||
if (_PartyModeInfos == null || _PartyModeInfos.Count == 0)
|
||||
{
|
||||
_Selected = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
var index = _SelectSlides[_SelectSlideModes].Selection;
|
||||
if (index >= _PartyModeInfos.Count)
|
||||
_Selected = Math.Max(0, Math.Min(_PartyModeInfos.Count - 1, index));
|
||||
_UpdateTiles();
|
||||
_UpdateSelection();
|
||||
}
|
||||
|
||||
private void _UpdateTiles()
|
||||
{
|
||||
var page = _GetPage();
|
||||
var first = page * _TilesPerPage;
|
||||
for (var i = 0; i < _Tiles.Count; i++)
|
||||
{
|
||||
index = 0;
|
||||
_SelectSlides[_SelectSlideModes].Selection = 0;
|
||||
var tile = _Tiles[i];
|
||||
var index = first + i;
|
||||
var visible = index < _PartyModeInfos.Count;
|
||||
tile.Box.Visible = visible;
|
||||
tile.Icon.Visible = visible;
|
||||
tile.Name.Visible = visible;
|
||||
if (!visible)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var info = _PartyModeInfos[index];
|
||||
var selected = index == _Selected && !_OnButtons;
|
||||
var alpha = _IsPlayable(info) ? 1f : _UnavailableAlpha;
|
||||
|
||||
tile.Icon.Texture = CThemes.GetSkinTexture(_SkinPartyModeIcon, info.ExtInfo.Id);
|
||||
tile.Name.TranslationId = info.ExtInfo.Id;
|
||||
tile.Name.Text = info.Name;
|
||||
|
||||
var iconColor = selected ? _Statics[_StaticTileIconSelected].Color : _Statics[_StaticTileIcon].Color;
|
||||
var nameColor = selected ? _Texts[_TextTileNameSelected].Color : _Texts[_TextTileName].Color;
|
||||
var boxTheme = selected ? _Statics[_StaticTileSelected] : _Statics[_StaticTile];
|
||||
var boxColor = boxTheme.Color;
|
||||
tile.Box.Texture = boxTheme.Texture;
|
||||
tile.Icon.Color = new SColorF(iconColor.R, iconColor.G, iconColor.B, iconColor.A * alpha);
|
||||
tile.Name.Color = new SColorF(nameColor.R, nameColor.G, nameColor.B, nameColor.A * alpha);
|
||||
tile.Box.Color = new SColorF(boxColor.R, boxColor.G, boxColor.B, boxColor.A * alpha);
|
||||
}
|
||||
|
||||
//Description
|
||||
var infos = _PartyModeInfos[index];
|
||||
var numPages = _GetNumPages();
|
||||
_Buttons[_ButtonPageUp].Visible = page > 0;
|
||||
_Buttons[_ButtonPageDown].Visible = page < numPages - 1;
|
||||
_Texts[_TextPage].Visible = numPages > 1;
|
||||
_Texts[_TextPage].Text = (page + 1) + " / " + numPages;
|
||||
}
|
||||
|
||||
private void _UpdateSelection()
|
||||
{
|
||||
var infos = _PartyModeInfos[_Selected];
|
||||
var extInfo = infos.ExtInfo;
|
||||
_Texts[_TextDescription].Text = infos.Description;
|
||||
|
||||
_Texts[_TextDetailName].TranslationId = extInfo.Id;
|
||||
_Texts[_TextDetailName].Text = infos.Name;
|
||||
|
||||
//Description
|
||||
_Texts[_TextDescription].TranslationId = extInfo.Id;
|
||||
_Texts[_TextDescription].Text = infos.Description;
|
||||
|
||||
//TargetAudience
|
||||
_Texts[_TextTargetAudience].TranslationId = extInfo.Id;
|
||||
@@ -188,22 +417,19 @@ namespace Vocaluxe.Screens
|
||||
//NumPlayers
|
||||
if (extInfo.MaxPlayers == extInfo.MinPlayers)
|
||||
{
|
||||
_Texts[_TextNumPlayers].Text = extInfo.MaxTeams.ToString();
|
||||
_Texts[_TextNumPlayers].Text = extInfo.MaxPlayers.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
_Texts[_TextNumPlayers].Text = extInfo.MinPlayers + " - " + extInfo.MaxPlayers;
|
||||
}
|
||||
|
||||
_Texts[_TextNumMics].Text = extInfo.MinMics.ToString();
|
||||
|
||||
//Author
|
||||
_Texts[_TextAuthor].Text = infos.Author;
|
||||
_Texts[_TextAuthor].TranslationId = extInfo.Id;
|
||||
_Texts[_TextAuthor].Text = CLanguage.Translate(infos.Author, extInfo.Id) + " · " + infos.VersionMajor + "." + infos.VersionMinor;
|
||||
|
||||
//Version
|
||||
_Texts[_TextVersion].Text = infos.VersionMajor + "." + infos.VersionMinor;
|
||||
_Texts[_TextVersion].TranslationId = extInfo.Id;
|
||||
|
||||
if (CConfig.GetMaxNumMics() < extInfo.MinMics)
|
||||
if (!_IsPlayable(infos))
|
||||
{
|
||||
_Buttons[_ButtonStart].Visible = false;
|
||||
_Texts[_TextError].Text = CConfig.GetMaxNumMics() == 0
|
||||
@@ -219,22 +445,13 @@ namespace Vocaluxe.Screens
|
||||
|
||||
private void _StartPartyMode()
|
||||
{
|
||||
if (_PartyModeInfos.Count == 0)
|
||||
if (_PartyModeInfos.Count == 0 || _Selected >= _PartyModeInfos.Count || !_IsPlayable(_PartyModeInfos[_Selected]))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var index = _SelectSlides[_SelectSlideModes].Selection;
|
||||
if (index >= _PartyModeInfos.Count)
|
||||
{
|
||||
_Buttons[_ButtonStart].Visible = false;
|
||||
_Texts[_TextError].Text = "TR_SCREENPARTY_ERROR";
|
||||
_Texts[_TextError].Visible = true;
|
||||
return;
|
||||
}
|
||||
|
||||
CParty.SetPartyMode(_PartyModeInfos[index].ExtInfo.Id);
|
||||
CParty.SetPartyMode(_PartyModeInfos[_Selected].ExtInfo.Id);
|
||||
CGraphics.FadeTo(CParty.GetStartScreen());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user