Merge pull request #30 from flokuep/6-player

6 player
This commit is contained in:
Alexander Eckart committed 2012-06-04 12:38:17 -07:00
commit 44a51210b0
32 files changed
+6519 -554

No files matched your search

+16 -5
View File
@@ -88,6 +88,10 @@
<TR_CONFIG_OWN_MUSIC>Eigene Musik und Hintergrundmusik</TR_CONFIG_OWN_MUSIC>
<TR_CONFIG_NO_OWN_MUSIC>Keine eigene Musik</TR_CONFIG_NO_OWN_MUSIC>
<TR_CONFIG_ONLY_OWN_MUSIC>Nur eigene Musik</TR_CONFIG_ONLY_OWN_MUSIC>
<!--Config: FadePlayerInfo-->
<TR_CONFIG_FADEPLAYERINFO_ALL>Alle</TR_CONFIG_FADEPLAYERINFO_ALL>
<TR_CONFIG_FADEPLAYERINFO_INFO>Nur Namen und Avatar</TR_CONFIG_FADEPLAYERINFO_INFO>
<TR_CONFIG_FADEPLAYERINFO_OFF>Keine</TR_CONFIG_FADEPLAYERINFO_OFF>
<!--Screens-->
<!--ScreenLoad-->
<TR_SCREENLOAD_LOADING>Laden</TR_SCREENLOAD_LOADING>
@@ -101,11 +105,17 @@
<TR_SCREENMAIN_BUTTON_PROFILES>Profile</TR_SCREENMAIN_BUTTON_PROFILES>
<!--ScreenNames-->
<TR_SCREENNAMES_MENU>Spielerauswahl</TR_SCREENNAMES_MENU>
<TR_SCREENNAMES_BUTTON_1PLAYER>1 Spieler</TR_SCREENNAMES_BUTTON_1PLAYER>
<TR_SCREENNAMES_BUTTON_2PLAYER>2 Spieler</TR_SCREENNAMES_BUTTON_2PLAYER>
<TR_SCREENNAMES_BUTTON_3PLAYER>3 Spieler</TR_SCREENNAMES_BUTTON_3PLAYER>
<TR_SCREENNAMES_WARNING_SG>Warnung: Dem Spieler %v ist kein Mikrofon zugeordnet!</TR_SCREENNAMES_WARNING_SG>
<TR_SCREENNAMES_WARNING_PL>Warnung: Den Spielern %v sind keine Mikrofone zugeordnet!</TR_SCREENNAMES_WARNING_PL>
<TR_SCREENNAMES_PLAYER>Spieler</TR_SCREENNAMES_PLAYER>
<TR_SCREENNAMES_1PLAYER>1 Spieler</TR_SCREENNAMES_1PLAYER>
<TR_SCREENNAMES_2PLAYER>2 Spieler</TR_SCREENNAMES_2PLAYER>
<TR_SCREENNAMES_3PLAYER>3 Spieler</TR_SCREENNAMES_3PLAYER>
<TR_SCREENNAMES_4PLAYER>4 Spieler</TR_SCREENNAMES_4PLAYER>
<TR_SCREENNAMES_5PLAYER>5 Spieler</TR_SCREENNAMES_5PLAYER>
<TR_SCREENNAMES_6PLAYER>6 Spieler</TR_SCREENNAMES_6PLAYER>
<TR_SCREENNAMES_WARNING_MICS_SG>Warnung: Dem Spieler %v ist kein Mikrofon zugeordnet!</TR_SCREENNAMES_WARNING_MICS_SG>
<TR_SCREENNAMES_WARNING_MICS_PL>Warnung: Den Spielern %v sind keine Mikrofone zugeordnet!</TR_SCREENNAMES_WARNING_MICS_PL>
<TR_SCREENNAMES_WARNING_PROFILES_SG>Warnung: Dem Spieler %v ist kein Profil zugeordnet!</TR_SCREENNAMES_WARNING_PROFILES_SG>
<TR_SCREENNAMES_WARNING_PROFILES_PL>Warnung: Den Spielern %v sind keine Profile zugeordnet!</TR_SCREENNAMES_WARNING_PROFILES_PL>
<!--ScreenSong-->
<TR_SCREENSONG_MENU>Songauswahl</TR_SCREENSONG_MENU>
<TR_SCREENSONG_SEARCH>Suche:</TR_SCREENSONG_SEARCH>
@@ -174,6 +184,7 @@
<TR_SCREENOTHEME_NOTELINES>Noten-Linien anzeigen</TR_SCREENOTHEME_NOTELINES>
<TR_SCREENOTHEME_TONEHELPER>Ton-Helfer anzeigen</TR_SCREENOTHEME_TONEHELPER>
<TR_SCREENOTHEME_TIMERLOOK>Aussehen des Timers</TR_SCREENOTHEME_TIMERLOOK>
<TR_SCREENOTHEME_FADEINFO>Spieler-Infos ein/ausblenden</TR_SCREENOTHEME_FADEINFO>
<TR_SCREENOTHEME_COVERLOADING>Cover Ladeverhalten</TR_SCREENOTHEME_COVERLOADING>
<!--ScreenOptionsVideo-->
<TR_SCREENOVIDEO_OPTIONS>Videoeinstellungen</TR_SCREENOVIDEO_OPTIONS>
+16 -5
View File
@@ -88,6 +88,10 @@
<TR_CONFIG_OWN_MUSIC>Own Music and Background Music</TR_CONFIG_OWN_MUSIC>
<TR_CONFIG_NO_OWN_MUSIC>No own Music</TR_CONFIG_NO_OWN_MUSIC>
<TR_CONFIG_ONLY_OWN_MUSIC>Only own Music</TR_CONFIG_ONLY_OWN_MUSIC>
<!--Config: FadePlayerInfo-->
<TR_CONFIG_FADEPLAYERINFO_ALL>All</TR_CONFIG_FADEPLAYERINFO_ALL>
<TR_CONFIG_FADEPLAYERINFO_INFO>Only names and avatars</TR_CONFIG_FADEPLAYERINFO_INFO>
<TR_CONFIG_FADEPLAYERINFO_OFF>Nothing</TR_CONFIG_FADEPLAYERINFO_OFF>
<!--Screens-->
<!--ScreenLoad-->
<TR_SCREENLOAD_LOADING>Loading</TR_SCREENLOAD_LOADING>
@@ -101,11 +105,17 @@
<TR_SCREENMAIN_BUTTON_PROFILES>Profiles</TR_SCREENMAIN_BUTTON_PROFILES>
<!--ScreenNames-->
<TR_SCREENNAMES_MENU>Player Selection</TR_SCREENNAMES_MENU>
<TR_SCREENNAMES_BUTTON_1PLAYER>1 Player</TR_SCREENNAMES_BUTTON_1PLAYER>
<TR_SCREENNAMES_BUTTON_2PLAYER>2 Player</TR_SCREENNAMES_BUTTON_2PLAYER>
<TR_SCREENNAMES_BUTTON_3PLAYER>3 Player</TR_SCREENNAMES_BUTTON_3PLAYER>
<TR_SCREENNAMES_WARNING_SG>Warning: There is no mic assigned to player %v!</TR_SCREENNAMES_WARNING_SG>
<TR_SCREENNAMES_WARNING_PL>Warning: There are no mics assigned to players %v!</TR_SCREENNAMES_WARNING_PL>
<TR_SCREENNAMES_PLAYER>Player</TR_SCREENNAMES_PLAYER>
<TR_SCREENNAMES_1PLAYER>1 Player</TR_SCREENNAMES_1PLAYER>
<TR_SCREENNAMES_2PLAYER>2 Player</TR_SCREENNAMES_2PLAYER>
<TR_SCREENNAMES_3PLAYER>3 Player</TR_SCREENNAMES_3PLAYER>
<TR_SCREENNAMES_4PLAYER>4 Player</TR_SCREENNAMES_4PLAYER>
<TR_SCREENNAMES_5PLAYER>5 Player</TR_SCREENNAMES_5PLAYER>
<TR_SCREENNAMES_6PLAYER>6 Player</TR_SCREENNAMES_6PLAYER>
<TR_SCREENNAMES_WARNING_MICS_SG>Warning: There is no mic assigned to player %v!</TR_SCREENNAMES_WARNING_MICS_SG>
<TR_SCREENNAMES_WARNING_MICS_PL>Warning: There are no mics assigned to players %v!</TR_SCREENNAMES_WARNING_MICS_PL>
<TR_SCREENNAMES_WARNING_PROFILES_SG>Warning: There is no profile assigned to player %v!</TR_SCREENNAMES_WARNING_PROFILES_SG>
<TR_SCREENNAMES_WARNING_PROFILES_PL>Warning: There are no profiles assigned to players %v!</TR_SCREENNAMES_WARNING_PROFILES_PL>
<!--ScreenSong-->
<TR_SCREENSONG_MENU>Song Selection</TR_SCREENSONG_MENU>
<TR_SCREENSONG_SEARCH>Search:</TR_SCREENSONG_SEARCH>
@@ -174,6 +184,7 @@
<TR_SCREENOTHEME_NOTELINES>Show Note-Lines</TR_SCREENOTHEME_NOTELINES>
<TR_SCREENOTHEME_TONEHELPER>Show Tone-Helper</TR_SCREENOTHEME_TONEHELPER>
<TR_SCREENOTHEME_TIMERLOOK>Timer-Look</TR_SCREENOTHEME_TIMERLOOK>
<TR_SCREENOTHEME_FADEINFO>Fade player-info</TR_SCREENOTHEME_FADEINFO>
<TR_SCREENOTHEME_COVERLOADING>Cover Loading Behavior</TR_SCREENOTHEME_COVERLOADING>
<!--ScreenOptionsVideo-->
<TR_SCREENOVIDEO_OPTIONS>Video Options</TR_SCREENOVIDEO_OPTIONS>
+11 -5
View File
@@ -101,11 +101,17 @@
<TR_SCREENMAIN_BUTTON_PROFILES>Profils</TR_SCREENMAIN_BUTTON_PROFILES>
<!--ScreenNames-->
<TR_SCREENNAMES_MENU>Sélection des joueurs</TR_SCREENNAMES_MENU>
<TR_SCREENNAMES_BUTTON_1PLAYER>1 joueur</TR_SCREENNAMES_BUTTON_1PLAYER>
<TR_SCREENNAMES_BUTTON_2PLAYER>2 joueurs</TR_SCREENNAMES_BUTTON_2PLAYER>
<TR_SCREENNAMES_BUTTON_3PLAYER>3 joueurs</TR_SCREENNAMES_BUTTON_3PLAYER>
<TR_SCREENNAMES_WARNING_SG>Attention: Aucun micro n'est assigné au joueur %v!</TR_SCREENNAMES_WARNING_SG>
<TR_SCREENNAMES_WARNING_PL>Attention: Aucun micro n'est assigné aux joueurs %v!</TR_SCREENNAMES_WARNING_PL>
<TR_SCREENNAMES_PLAYER>Joueur</TR_SCREENNAMES_PLAYER>
<TR_SCREENNAMES_1PLAYER>1 joueur</TR_SCREENNAMES_1PLAYER>
<TR_SCREENNAMES_2PLAYER>2 joueurs</TR_SCREENNAMES_2PLAYER>
<TR_SCREENNAMES_3PLAYER>3 joueurs</TR_SCREENNAMES_3PLAYER>
<TR_SCREENNAMES_4PLAYER>4 joueurs</TR_SCREENNAMES_4PLAYER>
<TR_SCREENNAMES_5PLAYER>5 joueurs</TR_SCREENNAMES_5PLAYER>
<TR_SCREENNAMES_6PLAYER>6 joueurs</TR_SCREENNAMES_6PLAYER>
<TR_SCREENNAMES_WARNING_MICS_SG>Attention: Aucun micro n'est assigné au joueur %v!</TR_SCREENNAMES_WARNING_MICS_SG>
<TR_SCREENNAMES_WARNING_MICS_PL>Attention: Aucun micro n'est assigné aux joueurs %v!</TR_SCREENNAMES_WARNING_MICS_PL>
<TR_SCREENNAMES_WARNING_PROFILES_SG>Attention: Aucun profil n'est assigné au joueur %v!</TR_SCREENNAMES_WARNING_PROFILES_SG>
<TR_SCREENNAMES_WARNING_PROFILES_PL>Attention: Aucun profils n'est assigné aux joueurs %v!</TR_SCREENNAMES_WARNING_PROFILES_PL>
<!--ScreenSong-->
<TR_SCREENSONG_MENU>Choix de la chanson</TR_SCREENSONG_MENU>
<TR_SCREENSONG_SEARCH>Rechercher:</TR_SCREENSONG_SEARCH>
+11 -5
View File
@@ -101,11 +101,17 @@
<TR_SCREENMAIN_BUTTON_PROFILES>Perfiles</TR_SCREENMAIN_BUTTON_PROFILES>
<!--ScreenNames-->
<TR_SCREENNAMES_MENU>Selección de Jugadores</TR_SCREENNAMES_MENU>
<TR_SCREENNAMES_BUTTON_1PLAYER>Jugador 1</TR_SCREENNAMES_BUTTON_1PLAYER>
<TR_SCREENNAMES_BUTTON_2PLAYER>Jugador 2</TR_SCREENNAMES_BUTTON_2PLAYER>
<TR_SCREENNAMES_BUTTON_3PLAYER>Jugador 3</TR_SCREENNAMES_BUTTON_3PLAYER>
<TR_SCREENNAMES_WARNING_SG>Advertencia: ¡No hay micrófonos asignados al jugador %v!</TR_SCREENNAMES_WARNING_SG>
<TR_SCREENNAMES_WARNING_PL>Advertencia: ¡No hay micrófonos asignados a los jugadores %v!</TR_SCREENNAMES_WARNING_PL>
<TR_SCREENNAMES_PLAYER>Jugador</TR_SCREENNAMES_PLAYER>
<TR_SCREENNAMES_1PLAYER>Jugador 1</TR_SCREENNAMES_1PLAYER>
<TR_SCREENNAMES_2PLAYER>Jugador 2</TR_SCREENNAMES_2PLAYER>
<TR_SCREENNAMES_3PLAYER>Jugador 3</TR_SCREENNAMES_3PLAYER>
<TR_SCREENNAMES_4PLAYER>Jugador 4</TR_SCREENNAMES_4PLAYER>
<TR_SCREENNAMES_5PLAYER>Jugador 5</TR_SCREENNAMES_5PLAYER>
<TR_SCREENNAMES_6PLAYER>Jugador 6</TR_SCREENNAMES_6PLAYER>
<TR_SCREENNAMES_WARNING_MICS_SG>Advertencia: ¡No hay micrófonos asignados al jugador %v!</TR_SCREENNAMES_WARNING_MICS_SG>
<TR_SCREENNAMES_WARNING_MICS_PL>Advertencia: ¡No hay micrófonos asignados a los jugadores %v!</TR_SCREENNAMES_WARNING_MICS_PL>
<TR_SCREENNAMES_WARNING_PROFILES_SG>Advertencia: ¡No hay perfil asignados al jugador %v!</TR_SCREENNAMES_WARNING_PROFILES_SG>
<TR_SCREENNAMES_WARNING_PROFILES_PL>Advertencia: ¡No hay perfiles asignados a los jugadores %v!</TR_SCREENNAMES_WARNING_PROFILES_PL>
<!--ScreenSong-->
<TR_SCREENSONG_MENU>Selección de Canciones</TR_SCREENSONG_MENU>
<TR_SCREENSONG_SEARCH>Buscar:</TR_SCREENSONG_SEARCH>
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

+463 -293
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<ScreenNames>
<ScreenVersion>1</ScreenVersion>
<ScreenVersion>2</ScreenVersion>
<Background1>
<!--<Type>: Background type: None, Color, Texture, Video-->
<Type>Video</Type>
@@ -29,12 +29,204 @@
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Static1>
<StaticWarning>
<StaticPlayer1>
<!--<Skin>: Texture name-->
<Skin>PlayerSelector</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>15</X>
<Y>100</Y>
<Z>-2,00</Z>
<W>118</W>
<H>118</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player1</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticPlayer1>
<StaticPlayer2>
<!--<Skin>: Texture name-->
<Skin>PlayerSelector</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>15</X>
<Y>255</Y>
<Z>-2,00</Z>
<W>118</W>
<H>118</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player2</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticPlayer2>
<StaticPlayer3>
<!--<Skin>: Texture name-->
<Skin>PlayerSelector</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>15</X>
<Y>410</Y>
<Z>-2,00</Z>
<W>118</W>
<H>118</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player3</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticPlayer3>
<StaticPlayer4>
<!--<Skin>: Texture name-->
<Skin>PlayerSelector</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>1147</X>
<Y>100</Y>
<Z>-2,00</Z>
<W>118</W>
<H>118</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player4</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticPlayer4>
<StaticPlayer5>
<!--<Skin>: Texture name-->
<Skin>PlayerSelector</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>1147</X>
<Y>255</Y>
<Z>-2,00</Z>
<W>118</W>
<H>118</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player5</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticPlayer5>
<StaticPlayer6>
<!--<Skin>: Texture name-->
<Skin>PlayerSelector</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>1147</X>
<Y>410</Y>
<Z>-2,00</Z>
<W>118</W>
<H>118</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player6</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticPlayer6>
<StaticPlayerAvatar1>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>20</X>
<Y>105</Y>
<Z>-3,00</Z>
<W>108</W>
<H>108</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Visible</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticPlayerAvatar1>
<StaticPlayerAvatar2>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>20</X>
<Y>260</Y>
<Z>-3,00</Z>
<W>108</W>
<H>108</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Visible</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticPlayerAvatar2>
<StaticPlayerAvatar3>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>20</X>
<Y>415</Y>
<Z>-3,00</Z>
<W>108</W>
<H>108</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Visible</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticPlayerAvatar3>
<StaticPlayerAvatar4>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>1152</X>
<Y>105</Y>
<Z>-3,00</Z>
<W>108</W>
<H>108</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Visible</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticPlayerAvatar4>
<StaticPlayerAvatar5>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>1152</X>
<Y>260</Y>
<Z>-3,00</Z>
<W>108</W>
<H>108</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Visible</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticPlayerAvatar5>
<StaticPlayerAvatar6>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>1152</X>
<Y>415</Y>
<Z>-3,00</Z>
<W>108</W>
<H>108</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Visible</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticPlayerAvatar6>
<StaticWarningMics>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>145</X>
<Y>660</Y>
<Y>663</Y>
<Z>0,00</Z>
<W>990</W>
<H>50</H>
@@ -44,7 +236,23 @@
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticWarning>
</StaticWarningMics>
<StaticWarningProfiles>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>145</X>
<Y>715</Y>
<Z>0,00</Z>
<W>990</W>
<H>50</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>StaticWarningColor</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticWarningProfiles>
<Text1>
<!--<X>, <Y>: Text position-->
<X>640</X>
@@ -72,10 +280,10 @@
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Text1>
<TextWarning>
<TextWarningMics>
<!--<X>, <Y>: Text position-->
<X>640</X>
<Y>612</Y>
<Y>615</Y>
<!--<Z>: Text position-->
<Z>0,00</Z>
<!--<H>: Text height-->
@@ -99,7 +307,197 @@
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</TextWarning>
</TextWarningMics>
<TextWarningProfiles>
<!--<X>, <Y>: Text position-->
<X>640</X>
<Y>650</Y>
<!--<Z>: Text position-->
<Z>0,00</Z>
<!--<H>: Text height-->
<H>32</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>970</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>TextWarningColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>TextWarningColor</SColor>
<!--<Align>: Text align: Left, Center, Right-->
<Align>Center</Align>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text />
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</TextWarningProfiles>
<TextPlayer1>
<!--<X>, <Y>: Text position-->
<X>74</X>
<Y>219</Y>
<!--<Z>: Text position-->
<Z>0,00</Z>
<!--<H>: Text height-->
<H>20</H>
<!--<MaxW>: Maximum text width (if exists)-->
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player1</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>TextSColor</SColor>
<!--<Align>: Text align: Left, Center, Right-->
<Align>Center</Align>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text />
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</TextPlayer1>
<TextPlayer2>
<!--<X>, <Y>: Text position-->
<X>74</X>
<Y>374</Y>
<!--<Z>: Text position-->
<Z>0,00</Z>
<!--<H>: Text height-->
<H>20</H>
<!--<MaxW>: Maximum text width (if exists)-->
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player2</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>TextSColor</SColor>
<!--<Align>: Text align: Left, Center, Right-->
<Align>Center</Align>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text />
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</TextPlayer2>
<TextPlayer3>
<!--<X>, <Y>: Text position-->
<X>74</X>
<Y>529</Y>
<!--<Z>: Text position-->
<Z>0,00</Z>
<!--<H>: Text height-->
<H>20</H>
<!--<MaxW>: Maximum text width (if exists)-->
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player3</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>TextSColor</SColor>
<!--<Align>: Text align: Left, Center, Right-->
<Align>Center</Align>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text />
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</TextPlayer3>
<TextPlayer4>
<!--<X>, <Y>: Text position-->
<X>1206</X>
<Y>219</Y>
<!--<Z>: Text position-->
<Z>0,00</Z>
<!--<H>: Text height-->
<H>20</H>
<!--<MaxW>: Maximum text width (if exists)-->
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player4</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>TextSColor</SColor>
<!--<Align>: Text align: Left, Center, Right-->
<Align>Center</Align>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text />
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</TextPlayer4>
<TextPlayer5>
<!--<X>, <Y>: Text position-->
<X>1206</X>
<Y>374</Y>
<!--<Z>: Text position-->
<Z>0,00</Z>
<!--<H>: Text height-->
<H>20</H>
<!--<MaxW>: Maximum text width (if exists)-->
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player5</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>TextSColor</SColor>
<!--<Align>: Text align: Left, Center, Right-->
<Align>Center</Align>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text />
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</TextPlayer5>
<TextPlayer6>
<!--<X>, <Y>: Text position-->
<X>1206</X>
<Y>529</Y>
<!--<Z>: Text position-->
<Z>0,00</Z>
<!--<H>: Text height-->
<H>20</H>
<!--<MaxW>: Maximum text width (if exists)-->
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player6</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>TextSColor</SColor>
<!--<Align>: Text align: Left, Center, Right-->
<Align>Center</Align>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text />
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</TextPlayer6>
<ButtonBack>
<!--<Skin>: Texture name-->
<Skin>Button</Skin>
@@ -107,7 +505,7 @@
<SkinSelected>Button</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>145</X>
<Y>600</Y>
<Y>603</Y>
<Z>0,00</Z>
<W>150</W>
<H>50</H>
@@ -162,7 +560,7 @@
<SkinSelected>Button</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>985</X>
<Y>600</Y>
<Y>603</Y>
<Z>0,00</Z>
<W>150</W>
<H>50</H>
@@ -210,148 +608,7 @@
<Height>26</Height>
</SReflection>
</ButtonStart>
<Button1Player>
<!--<Skin>: Texture name-->
<Skin>Button</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>Button</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>145</X>
<Y>150</Y>
<Z>0,00</Z>
<W>150</W>
<H>50</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>32</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextSColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align: Left, Center, Right-->
<Align>Center</Align>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text>TR_SCREENNAMES_BUTTON_1PLAYER</Text>
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</Button1Player>
<Button2Player>
<!--<Skin>: Texture name-->
<Skin>Button</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>Button</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>145</X>
<Y>315</Y>
<Z>0,00</Z>
<W>150</W>
<H>50</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>32</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextSColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align: Left, Center, Right-->
<Align>Center</Align>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text>TR_SCREENNAMES_BUTTON_2PLAYER</Text>
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</Button2Player>
<Button3Player>
<!--<Skin>: Texture name-->
<Skin>Button</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>Button</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>145</X>
<Y>480</Y>
<Z>0,00</Z>
<W>150</W>
<H>50</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>10</Y>
<!--<H>: Text height-->
<H>32</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>142</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextSColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align: Left, Center, Right-->
<Align>Center</Align>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text>TR_SCREENNAMES_BUTTON_3PLAYER</Text>
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</Button3Player>
<SelectSlidePlayerMic1>
<SelectSlidePlayerNumber>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
@@ -367,32 +624,32 @@
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlidePlayer</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>305</X>
<Y>100</Y>
<X>70</X>
<Y>548</Y>
<Z>0,00</Z>
<W>905</W>
<H>150</H>
<W>1140</W>
<H>45</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>305</ArrowLeftX>
<ArrowLeftY>155</ArrowLeftY>
<ArrowLeftX>75</ArrowLeftX>
<ArrowLeftY>553</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>40</ArrowLeftW>
<ArrowLeftH>40</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>1180</ArrowRightX>
<ArrowRightY>155</ArrowRightY>
<ArrowRightX>1170</ArrowRightX>
<ArrowRightY>553</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>40</ArrowRightW>
<ArrowRightH>40</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player1Dim</Color>
<Color>SelectSlideColor</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>Player1Dim</SColor>
<SColor>SelectSlideSColor</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>Player1</HColor>
<HColor>SelectSlideHColor</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
@@ -404,7 +661,7 @@
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>Player1</TextSColor>
<TextSColor>TextSColor</TextSColor>
<!--<TextH>: Text height-->
<TextH>32,00</TextH>
<!--<TextMaxW>: Maximum text width (if exists)-->
@@ -415,136 +672,49 @@
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>6</NumVisible>
</SelectSlidePlayerMic1>
<SelectSlidePlayerMic2>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlidePlayer</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlidePlayer</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>305</X>
<Y>265</Y>
</SelectSlidePlayerNumber>
<NameSelection>
<!--<X>, <Y>, <Z>, <W>, <H>: NameSelection position, width and height-->
<X>172</X>
<Y>127</Y>
<Z>0,00</Z>
<W>905</W>
<H>150</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>305</ArrowLeftX>
<ArrowLeftY>320</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>40</ArrowLeftW>
<ArrowLeftH>40</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>1180</ArrowRightX>
<ArrowRightY>320</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>40</ArrowRightW>
<ArrowRightH>40</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<W>945</W>
<H>393</H>
<!--<SkinEmptyTile>: Texture name-->
<SkinEmptyTile>CoverTile</SkinEmptyTile>
<!--<ColorEmptyTile>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player2Dim</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>Player2Dim</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>Player2</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>Player2</TextSColor>
<!--<TextH>: Text height-->
<TextH>32,00</TextH>
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>186,00</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>6</NumVisible>
</SelectSlidePlayerMic2>
<SelectSlidePlayerMic3>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlidePlayer</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlidePlayer</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>305</X>
<Y>430</Y>
<Z>0,00</Z>
<W>905</W>
<H>150</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>305</ArrowLeftX>
<ArrowLeftY>485</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>40</ArrowLeftW>
<ArrowLeftH>40</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>1180</ArrowRightX>
<ArrowRightY>485</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>40</ArrowRightW>
<ArrowRightH>40</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Player3Dim</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>Player3Dim</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>Player3</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>Player3</TextSColor>
<!--<TextH>: Text height-->
<TextH>32,00</TextH>
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>186,00</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>6</NumVisible>
</SelectSlidePlayerMic3>
<R>1,00</R>
<G>1,00</G>
<B>1,00</B>
<A>0,20</A>
<!--<SkinTileSelected>: Texture name-->
<SkinTileSelected>PlayerSelector</SkinTileSelected>
<!--<Tiles>: Options for tiles-->
<Tiles>
<!--<W>, <H>: Width and height of tile-->
<W>100</W>
<H>100</H>
<!--<NumW>, <NumH>: Number of tiles-->
<NumW>8</NumW>
<NumH>3</NumH>
<!--<SpaceW>, <SpaceH>: Space between tiles-->
<SpaceW>20,71</SpaceW>
<SpaceH>30,00</SpaceH>
<!--<Name>: Options for player-name-->
<Name>
<!--<Space>: Space between name and tile-->
<Space>2,0</Space>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Color>: Text color from ColorScheme (high priority)-->
<Color>TextColor</Color>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<H>: Text height-->
<H>20</H>
</Name>
</Tiles>
</NameSelection>
</ScreenNames>
</root>
</root>
@@ -704,7 +704,7 @@
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>4</NumVisible>
<NumVisible>7</NumVisible>
</SelectSlideRecordChannel1>
<SelectSlideRecordChannel2>
<!--<Skin>: Texture name-->
@@ -769,7 +769,7 @@
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>4</NumVisible>
<NumVisible>7</NumVisible>
</SelectSlideRecordChannel2>
<SelectSlideDelay>
<!--<Skin>: Texture name-->
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<ScreenOptionsTheme>
<ScreenVersion>2</ScreenVersion>
<ScreenVersion>3</ScreenVersion>
<Background1>
<!--<Type>: Background type: None, Color, Texture, Video-->
<Type>Video</Type>
@@ -141,6 +141,22 @@
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Static8>
<Static9>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>50</X>
<Y>520</Y>
<Z>0,00</Z>
<W>460</W>
<H>50</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>StaticColor</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Static9>
<Text1>
<!--<X>, <Y>: Text position-->
<X>640</X>
@@ -352,11 +368,38 @@
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text>TR_SCREENOTHEME_COVERLOADING</Text>
<Text>TR_SCREENOTHEME_FADEINFO</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Text8>
<Text9>
<!--<X>, <Y>: Text position-->
<X>75</X>
<Y>525</Y>
<!--<Z>: Text position-->
<Z>0,00</Z>
<!--<H>: Text height-->
<H>32</H>
<!--<MaxW>: Maximum text width (if exists)-->
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>StaticColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>TextSColor</SColor>
<!--<Align>: Text align: Left, Center, Right-->
<Align>Left</Align>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text>TR_SCREENOTHEME_COVERLOADING</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Text9>
<ButtonExit>
<!--<Skin>: Texture name-->
<Skin>Button</Skin>
@@ -802,7 +845,7 @@
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>2</NumVisible>
</SelectSlideTimerLook>
<SelectSlideCoverLoading>
<SelectSlideFadeInfo>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
@@ -865,7 +908,72 @@
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>2</NumVisible>
</SelectSlideFadeInfo>
<SelectSlideCoverLoading>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlide</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlide</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>500</X>
<Y>520</Y>
<Z>0,00</Z>
<W>700</W>
<H>50</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>505</ArrowLeftX>
<ArrowLeftY>525</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>40</ArrowLeftW>
<ArrowLeftH>40</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>1170</ArrowRightX>
<ArrowRightY>525</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>40</ArrowRightW>
<ArrowRightH>40</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>SelectSlideColor</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>SelectSlideSColor</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>SelectSlideHColor</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>TextSColor</TextSColor>
<!--<TextH>: Text height-->
<TextH>32,00</TextH>
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>616,00</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>1</NumVisible>
</SelectSlideCoverLoading>
</ScreenOptionsTheme>
</root>
</root>
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+48 -11
View File
@@ -33,9 +33,9 @@
<A>1,000</A>
</Player4>
<Player5>
<R>0,000</R>
<G>0,500</G>
<B>1,000</B>
<R>1,000</R>
<G>0,800</G>
<B>0,000</B>
<A>1,000</A>
</Player5>
<Player6>
@@ -71,9 +71,9 @@
<A>0,500</A>
</Player4Dim>
<Player5Dim>
<R>0,000</R>
<G>0,500</G>
<B>1,000</B>
<R>1,000</R>
<G>0,800</G>
<B>0,000</B>
<A>0,500</A>
</Player5Dim>
<Player6Dim>
@@ -82,6 +82,42 @@
<B>0,500</B>
<A>0,500</A>
</Player6Dim>
<Player1Dim2>
<R>0,000</R>
<G>0,000</G>
<B>1,000</B>
<A>0,400</A>
</Player1Dim2>
<Player2Dim2>
<R>1,000</R>
<G>0,000</G>
<B>0,000</B>
<A>0,400</A>
</Player2Dim2>
<Player3Dim2>
<R>0,000</R>
<G>1,000</G>
<B>0,000</B>
<A>0,400</A>
</Player3Dim2>
<Player4Dim2>
<R>0,500</R>
<G>0,000</G>
<B>1,000</B>
<A>0,400</A>
</Player4Dim2>
<Player5Dim2>
<R>1,000</R>
<G>0,800</G>
<B>0,000</B>
<A>0,400</A>
</Player5Dim2>
<Player6Dim2>
<R>1,000</R>
<G>0,000</G>
<B>0,500</B>
<A>0,400</A>
</Player6Dim2>
<BackgroundColor>
<R>0,000</R>
<G>0,000</G>
@@ -214,13 +250,13 @@
<B>0,300</B>
<A>1,000</A>
</LyricSubColor>
<TimeBar>
<R>0,800</R>
<TimeBar>
<R>0,800</R>
<G>0,950</G>
<B>1,000</B>
<A>0,500</A>
</TimeBar>
<TimeBarSentence>
</TimeBar>
<TimeBarSentence>
<R>0,800</R>
<G>0,950</G>
<B>1,000</B>
@@ -264,6 +300,7 @@
<DuetIcon>DuetIcon.png</DuetIcon>
<VideoIcon>VideoIcon.png</VideoIcon>
<Invisible>Invisible.png</Invisible>
<PlayerSelector>PlayerSelector.png</PlayerSelector>
<PreviousIcon>PreviousIcon.png</PreviousIcon>
<NextIcon>NextIcon.png</NextIcon>
<PlayIcon>PlayIcon.png</PlayIcon>
@@ -276,4 +313,4 @@
<IntroMid>[Blue]IntroMid.mp4</IntroMid>
<IntroOut>[Blue]IntroOut.mp4</IntroOut>
</Videos>
</root>
</root>
+48 -11
View File
@@ -33,9 +33,9 @@
<A>1,000</A>
</Player4>
<Player5>
<R>0,000</R>
<G>0,500</G>
<B>1,000</B>
<R>1,000</R>
<G>0,800</G>
<B>0,000</B>
<A>1,000</A>
</Player5>
<Player6>
@@ -71,9 +71,9 @@
<A>0,500</A>
</Player4Dim>
<Player5Dim>
<R>0,000</R>
<G>0,500</G>
<B>1,000</B>
<R>1,000</R>
<G>0,800</G>
<B>0,000</B>
<A>0,500</A>
</Player5Dim>
<Player6Dim>
@@ -82,6 +82,42 @@
<B>0,500</B>
<A>0,500</A>
</Player6Dim>
<Player1Dim2>
<R>0,000</R>
<G>0,000</G>
<B>1,000</B>
<A>0,400</A>
</Player1Dim2>
<Player2Dim2>
<R>1,000</R>
<G>0,000</G>
<B>0,000</B>
<A>0,400</A>
</Player2Dim2>
<Player3Dim2>
<R>0,000</R>
<G>1,000</G>
<B>0,000</B>
<A>0,400</A>
</Player3Dim2>
<Player4Dim2>
<R>0,500</R>
<G>0,000</G>
<B>1,000</B>
<A>0,400</A>
</Player4Dim2>
<Player5Dim2>
<R>1,000</R>
<G>0,800</G>
<B>0,000</B>
<A>0,400</A>
</Player5Dim2>
<Player6Dim2>
<R>1,000</R>
<G>0,000</G>
<B>0,500</B>
<A>0,400</A>
</Player6Dim2>
<BackgroundColor>
<R>0,000</R>
<G>0,000</G>
@@ -214,13 +250,13 @@
<B>0,300</B>
<A>1,000</A>
</LyricSubColor>
<TimeBar>
<R>0,800</R>
<TimeBar>
<R>0,800</R>
<G>0,950</G>
<B>1,000</B>
<A>0,500</A>
</TimeBar>
<TimeBarSentence>
</TimeBar>
<TimeBarSentence>
<R>0,800</R>
<G>0,950</G>
<B>1,000</B>
@@ -264,6 +300,7 @@
<DuetIcon>DuetIcon.png</DuetIcon>
<VideoIcon>VideoIcon.png</VideoIcon>
<Invisible>Invisible.png</Invisible>
<PlayerSelector>PlayerSelector.png</PlayerSelector>
<PreviousIcon>PreviousIcon.png</PreviousIcon>
<NextIcon>NextIcon.png</NextIcon>
<PlayIcon>PlayIcon.png</PlayIcon>
@@ -276,4 +313,4 @@
<IntroMid>[Green]IntroMid.mp4</IntroMid>
<IntroOut>[Green]IntroOut.mp4</IntroOut>
</Videos>
</root>
</root>
+48 -11
View File
@@ -33,9 +33,9 @@
<A>1,000</A>
</Player4>
<Player5>
<R>0,000</R>
<G>0,500</G>
<B>1,000</B>
<R>1,000</R>
<G>0,800</G>
<B>0,000</B>
<A>1,000</A>
</Player5>
<Player6>
@@ -71,9 +71,9 @@
<A>0,500</A>
</Player4Dim>
<Player5Dim>
<R>0,000</R>
<G>0,500</G>
<B>1,000</B>
<R>1,000</R>
<G>0,800</G>
<B>0,000</B>
<A>0,500</A>
</Player5Dim>
<Player6Dim>
@@ -82,6 +82,42 @@
<B>0,500</B>
<A>0,500</A>
</Player6Dim>
<Player1Dim2>
<R>0,000</R>
<G>0,000</G>
<B>1,000</B>
<A>0,400</A>
</Player1Dim2>
<Player2Dim2>
<R>1,000</R>
<G>0,000</G>
<B>0,000</B>
<A>0,400</A>
</Player2Dim2>
<Player3Dim2>
<R>0,000</R>
<G>1,000</G>
<B>0,000</B>
<A>0,400</A>
</Player3Dim2>
<Player4Dim2>
<R>0,500</R>
<G>0,000</G>
<B>1,000</B>
<A>0,400</A>
</Player4Dim2>
<Player5Dim2>
<R>1,000</R>
<G>0,800</G>
<B>0,000</B>
<A>0,400</A>
</Player5Dim2>
<Player6Dim2>
<R>1,000</R>
<G>0,000</G>
<B>0,500</B>
<A>0,400</A>
</Player6Dim2>
<BackgroundColor>
<R>0,000</R>
<G>0,000</G>
@@ -214,13 +250,13 @@
<B>0,300</B>
<A>1,000</A>
</LyricSubColor>
<TimeBar>
<R>0,800</R>
<TimeBar>
<R>0,800</R>
<G>0,950</G>
<B>1,000</B>
<A>0,500</A>
</TimeBar>
<TimeBarSentence>
</TimeBar>
<TimeBarSentence>
<R>0,800</R>
<G>0,950</G>
<B>1,000</B>
@@ -264,6 +300,7 @@
<DuetIcon>DuetIcon.png</DuetIcon>
<VideoIcon>VideoIcon.png</VideoIcon>
<Invisible>Invisible.png</Invisible>
<PlayerSelector>PlayerSelector.png</PlayerSelector>
<PreviousIcon>PreviousIcon.png</PreviousIcon>
<NextIcon>NextIcon.png</NextIcon>
<PlayIcon>PlayIcon.png</PlayIcon>
@@ -276,4 +313,4 @@
<IntroMid>[Red]IntroMid.mp4</IntroMid>
<IntroOut>[Red]IntroOut.mp4</IntroOut>
</Videos>
</root>
</root>
+48 -11
View File
@@ -33,9 +33,9 @@
<A>1,000</A>
</Player4>
<Player5>
<R>0,000</R>
<G>0,500</G>
<B>1,000</B>
<R>1,000</R>
<G>0,800</G>
<B>0,000</B>
<A>1,000</A>
</Player5>
<Player6>
@@ -71,9 +71,9 @@
<A>0,500</A>
</Player4Dim>
<Player5Dim>
<R>0,000</R>
<G>0,500</G>
<B>1,000</B>
<R>1,000</R>
<G>0,800</G>
<B>0,000</B>
<A>0,500</A>
</Player5Dim>
<Player6Dim>
@@ -82,6 +82,42 @@
<B>0,500</B>
<A>0,500</A>
</Player6Dim>
<Player1Dim2>
<R>0,000</R>
<G>0,000</G>
<B>1,000</B>
<A>0,400</A>
</Player1Dim2>
<Player2Dim2>
<R>1,000</R>
<G>0,000</G>
<B>0,000</B>
<A>0,400</A>
</Player2Dim2>
<Player3Dim2>
<R>0,000</R>
<G>1,000</G>
<B>0,000</B>
<A>0,400</A>
</Player3Dim2>
<Player4Dim2>
<R>0,500</R>
<G>0,000</G>
<B>1,000</B>
<A>0,400</A>
</Player4Dim2>
<Player5Dim2>
<R>1,000</R>
<G>0,800</G>
<B>0,000</B>
<A>0,400</A>
</Player5Dim2>
<Player6Dim2>
<R>1,000</R>
<G>0,000</G>
<B>0,500</B>
<A>0,400</A>
</Player6Dim2>
<BackgroundColor>
<R>0,000</R>
<G>0,000</G>
@@ -214,13 +250,13 @@
<B>0,300</B>
<A>1,000</A>
</LyricSubColor>
<TimeBar>
<R>0,800</R>
<TimeBar>
<R>0,800</R>
<G>0,950</G>
<B>1,000</B>
<A>0,500</A>
</TimeBar>
<TimeBarSentence>
</TimeBar>
<TimeBarSentence>
<R>0,800</R>
<G>0,950</G>
<B>1,000</B>
@@ -264,6 +300,7 @@
<DuetIcon>DuetIcon.png</DuetIcon>
<VideoIcon>VideoIcon.png</VideoIcon>
<Invisible>Invisible.png</Invisible>
<PlayerSelector>PlayerSelector.png</PlayerSelector>
<PreviousIcon>PreviousIcon.png</PreviousIcon>
<NextIcon>NextIcon.png</NextIcon>
<PlayIcon>PlayIcon.png</PlayIcon>
@@ -276,4 +313,4 @@
<IntroMid>[Yellow]IntroMid.mp4</IntroMid>
<IntroOut>[Yellow]IntroOut.mp4</IntroOut>
</Videos>
</root>
</root>
@@ -0,0 +1,22 @@
SceenNames
++++++++++
Version 2:
Add:
<NameSelection>
A new Theme-element for name-selecting.
<StaticPlayer[1...6]> (One Static for each player): Static wich is used as drop-area
<StaticPlayerAvatar[1...6]> (One Static for each player): Static wich shows the avatar of selected player
<TextPlayer[1...6]> (One Text for each player): Text wich shows name of selected player
<SelectSlidePlayerNumber>
<StaticWarningProfiles>
<TextWarningProfiles>
Rename:
<StaticWarning> to <StaticWarningMics>
<TextWarning> to <TextWarningMics>
Remove:
<Button1Player>, <Button2Player>, <Button3Player>, <SelectSlidePlayerMic1>, <SelectSlidePlayerMic2>, <SelectSlidePlayerMic3>
@@ -1,5 +1,12 @@
ScreenOptionsTheme
++++++++++
Version 3:
Add:
<SelectSlideFadeInfo>
and some texts and statics for description (Text9 and Static9)
"TR_SCREENOTHEME_FADEINFO"
++++++++++
Version 2:
@@ -0,0 +1,7 @@
ScreenScore
++++++++++
Version 2:
Add: Elements for up to 6 players! (Texts and statics!)
++++++++++
@@ -1,5 +1,14 @@
ScreenSing
++++++++++
Version 4:
Added Elements for 6-player-singing!
Add:
<StaticAvatarP$N$> (One for each player for each player-number>
<TextNameP$N$> (One for each player for each player-number>
++++++++++
Version 3:
+67
View File
@@ -153,6 +153,21 @@ namespace Vocaluxe.Base
TR_CONFIG_ONLY_OWN_MUSIC
}
public enum EPlayerInfo
{
TR_CONFIG_PLAYERINFO_BOTH,
TR_CONFIG_PLAYERINFO_NAME,
TR_CONFIG_PLAYERINFO_AVATAR,
TR_CONFIG_PLAYERINFO_OFF
}
public enum EFadePlayerInfo
{
TR_CONFIG_FADEPLAYERINFO_ALL,
TR_CONFIG_FADEPLAYERINFO_INFO,
TR_CONFIG_FADEPLAYERINFO_OFF
}
public enum ELyricStyle
{
Fill,
@@ -194,6 +209,8 @@ namespace Vocaluxe.Base
public static EOffOn DrawNoteLines = EOffOn.TR_CONFIG_ON;
public static EOffOn DrawToneHelper = EOffOn.TR_CONFIG_ON;
public static ETimerLook TimerLook = ETimerLook.TR_CONFIG_TIMERLOOK_EXPANDED;
public static EPlayerInfo PlayerInfo = EPlayerInfo.TR_CONFIG_PLAYERINFO_BOTH;
public static EFadePlayerInfo FadePlayerInfo = EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_OFF;
public static ECoverLoading CoverLoading = ECoverLoading.TR_CONFIG_COVERLOADING_ATSTART;
public static ELyricStyle LyricStyle = ELyricStyle.Slide;
@@ -216,6 +233,7 @@ namespace Vocaluxe.Base
public static EOffOn Tabs = EOffOn.TR_CONFIG_OFF;
public static string Language = "English";
public static EOffOn LyricsOnTop = EOffOn.TR_CONFIG_OFF;
public static string[] Players = new string[CSettings.MaxNumPlayer];
// Video
public static EVideoDecoder VideoDecoder = EVideoDecoder.FFmpeg;
@@ -311,6 +329,8 @@ namespace Vocaluxe.Base
CHelper.TryGetEnumValueFromXML("//root/Theme/DrawNoteLines", navigator, ref DrawNoteLines);
CHelper.TryGetEnumValueFromXML("//root/Theme/DrawToneHelper", navigator, ref DrawToneHelper);
CHelper.TryGetEnumValueFromXML("//root/Theme/TimerLook", navigator, ref TimerLook);
CHelper.TryGetEnumValueFromXML("//root/Theme/PlayerInfo", navigator, ref PlayerInfo);
CHelper.TryGetEnumValueFromXML("//root/Theme/FadePlayerInfo", navigator, ref FadePlayerInfo);
CHelper.TryGetEnumValueFromXML("//root/Theme/CoverLoading", navigator, ref CoverLoading);
CHelper.TryGetEnumValueFromXML("//root/Theme/LyricStyle", navigator, ref LyricStyle);
#endregion Theme
@@ -382,6 +402,12 @@ namespace Vocaluxe.Base
}
CLanguage.SetLanguage(Language);
//Read players from config
for (i = 1; i <= CSettings.MaxNumPlayer; i++)
{
CHelper.GetValueFromXML("//root/Game/Players/Player" + i.ToString(), navigator, ref Players[i-1], string.Empty);
}
#endregion Game
#region Video
@@ -509,6 +535,12 @@ namespace Vocaluxe.Base
writer.WriteComment("Look of timer:" + ListStrings(Enum.GetNames(typeof(ETimerLook))));
writer.WriteElementString("TimerLook", Enum.GetName(typeof(ETimerLook), TimerLook));
writer.WriteComment("Information about players on SingScreen:" + ListStrings(Enum.GetNames(typeof(EPlayerInfo))));
writer.WriteElementString("PlayerInfo", Enum.GetName(typeof(EPlayerInfo), PlayerInfo));
writer.WriteComment("Fade player-information with lyrics and notebars:" + ListStrings(Enum.GetNames(typeof(EFadePlayerInfo))));
writer.WriteElementString("FadePlayerInfo", Enum.GetName(typeof(EFadePlayerInfo), FadePlayerInfo));
writer.WriteComment("Cover Loading:" + ListStrings(Enum.GetNames(typeof(ECoverLoading))));
writer.WriteElementString("CoverLoading", Enum.GetName(typeof(ECoverLoading), CoverLoading));
@@ -593,6 +625,14 @@ namespace Vocaluxe.Base
writer.WriteComment("Lyrics also on Top of screen: " + ListStrings(Enum.GetNames(typeof(EOffOn))));
writer.WriteElementString("LyricsOnTop", Enum.GetName(typeof(EOffOn), LyricsOnTop));
writer.WriteComment("Default profile for players 1..." + CSettings.MaxNumPlayer.ToString() + ":");
writer.WriteStartElement("Players");
for (int i = 1; i <= CSettings.MaxNumPlayer; i++)
{
writer.WriteElementString("Player" + i.ToString(), Path.GetFileName(Players[i - 1]));
}
writer.WriteEndElement();
writer.WriteEndElement();
#endregion Game
@@ -964,6 +1004,33 @@ namespace Vocaluxe.Base
return _Result;
}
/// <summary>
/// Use saved players from config now for games
/// </summary>
public static void UsePlayers()
{
for (int i = 0; i < CProfiles.Profiles.Length; i++)
{
for (int j = 0; j < CSettings.MaxNumPlayer; j++)
{
if (Players[j] != string.Empty)
{
if (Path.GetFileName(CProfiles.Profiles[i].ProfileFile) == Players[j] && CProfiles.Profiles[i].Active == EOffOn.TR_CONFIG_ON)
{
//Update Game-infos with player
CGame.Player[j].Name = CProfiles.Profiles[i].PlayerName;
CGame.Player[j].Difficulty = CProfiles.Profiles[i].Difficulty;
CGame.Player[j].ProfileID = i;
}
}
else
{
CGame.Player[j].ProfileID = -1;
}
}
}
}
}
+2
View File
@@ -104,6 +104,8 @@ namespace Vocaluxe.Base
_GameMode.Init();
_Player = new SPlayer[CSettings.MaxNumPlayer];
ResetPlayer();
CConfig.UsePlayers();
}
public static void SetGameMode(EGameMode Mode)
+2 -2
View File
@@ -40,7 +40,7 @@ namespace Vocaluxe.Base
public static EGameState GameState = EGameState.Start;
public const string sProgramName = "Vocaluxe";
public const string sProgramCodeName = "Test";
public const string sProgramCodeName = "6 Player Test";
public const int iVersionMajor = 0;
public const int iVersionMinor = 2; // milestones
@@ -103,7 +103,7 @@ namespace Vocaluxe.Base
public static int MouseMoveDiffMin = 2;
public const float MouseMoveOffTime = 3f;
public const int MaxNumPlayer = 3;
public const int MaxNumPlayer = 6;
public const int MaxScore = 10000;
public const int LinebonusScore = 1000;
public const int MinScoreForDB = 100;
+1 -2
View File
@@ -449,8 +449,7 @@ namespace Vocaluxe.Menu
KeyEvent KeyEvent = new KeyEvent();
MouseEvent MouseEvent = new MouseEvent();
bool PopupPlayerControlAllowed = _CurrentScreen != EScreens.ScreenOptionsRecord && _CurrentScreen != EScreens.ScreenSing && _CurrentScreen != EScreens.ScreenNames
&& _CurrentScreen != EScreens.ScreenSong;
bool PopupPlayerControlAllowed = _CurrentScreen != EScreens.ScreenOptionsRecord && _CurrentScreen != EScreens.ScreenSing && _CurrentScreen != EScreens.ScreenSong;
bool Resume = true;
while (keys.PollEvent(ref KeyEvent))
+2 -1
View File
@@ -13,7 +13,8 @@ namespace Vocaluxe.Menu
TStatic,
TSongMenu,
TLyric,
TSingNote
TSingNote,
TNameSelection
}
class CInteraction
+113
View File
@@ -35,6 +35,7 @@ namespace Vocaluxe.Menu
private List<CSongMenu> _SongMenus;
private List<CLyric> _Lyrics;
private List<CSingNotes> _SingNotes;
private List<CNameSelection> _NameSelections;
private Hashtable _htBackgrounds;
private Hashtable _htStatics;
@@ -44,6 +45,7 @@ namespace Vocaluxe.Menu
private Hashtable _htLyrics;
private Hashtable _htSelectSlides;
private Hashtable _htSingNotes;
private Hashtable _htNameSelections;
private int _PrevMouseX;
@@ -64,6 +66,7 @@ namespace Vocaluxe.Menu
protected string[] _ThemeLyrics;
protected string[] _ThemeSelectSlides;
protected string[] _ThemeSingNotes;
protected string[] _ThemeNameSelections;
protected SRectF _ScreenArea;
@@ -95,6 +98,7 @@ namespace Vocaluxe.Menu
_SongMenus = new List<CSongMenu>();
_Lyrics = new List<CLyric>();
_SingNotes = new List<CSingNotes>();
_NameSelections = new List<CNameSelection>();
_htBackgrounds = new Hashtable();
_htStatics = new Hashtable();
@@ -104,6 +108,7 @@ namespace Vocaluxe.Menu
_htLyrics = new Hashtable();
_htSelectSlides = new Hashtable();
_htSingNotes = new Hashtable();
_htNameSelections = new Hashtable();
_PrevMouseX = 0;
_PrevMouseY = 0;
@@ -123,6 +128,7 @@ namespace Vocaluxe.Menu
_ThemeLyrics = null;
_ThemeSelectSlides = null;
_ThemeSingNotes = null;
_ThemeNameSelections = null;
}
#region ThemeHandler
@@ -289,6 +295,22 @@ namespace Vocaluxe.Menu
}
}
}
if (_ThemeNameSelections != null)
{
for (int i = 0; i < _ThemeNameSelections.Length; i++)
{
CNameSelection nsel = new CNameSelection();
if (nsel.LoadTheme("//root/" + _ThemeName, _ThemeNameSelections[i], navigator, SkinIndex))
{
_htNameSelections.Add(_ThemeNameSelections[i], AddNameSelection(nsel));
}
else
{
CLog.LogError("Can't load NameSelection \"" + _ThemeNameSelections[i] + "\" in screen " + _ThemeName);
}
}
}
}
else
{
@@ -358,6 +380,12 @@ namespace Vocaluxe.Menu
_SingNotes[i].SaveTheme(writer);
}
// NameSelections
for (int i = 0; i < _NameSelections.Count; i++)
{
_NameSelections[i].SaveTheme(writer);
}
writer.WriteEndElement();
// End of File
@@ -409,6 +437,11 @@ namespace Vocaluxe.Menu
{
sn.ReloadTextures();
}
foreach (CNameSelection ns in _NameSelections)
{
ns.ReloadTextures();
}
}
public virtual void UnloadTextures()
@@ -452,6 +485,13 @@ namespace Vocaluxe.Menu
{
sn.UnloadTextures();
}
foreach (CNameSelection ns in _NameSelections)
{
ns.UnloadTextures();
}
}
public virtual void ReloadTheme()
@@ -502,6 +542,11 @@ namespace Vocaluxe.Menu
{
return _SingNotes;
}
public List<CNameSelection> GetNameSelections()
{
return _NameSelections;
}
#endregion GetLists
#region ElementHandler
@@ -569,6 +614,14 @@ namespace Vocaluxe.Menu
return _SingNotes.ToArray();
}
}
public CNameSelection[] NameSelections
{
get
{
return _NameSelections.ToArray();
}
}
#endregion Get Arrays
#region Hashtables
@@ -675,6 +728,19 @@ namespace Vocaluxe.Menu
throw;
}
}
public int htNameSelections(string key)
{
try
{
return (int)_htNameSelections[key];
}
catch (Exception)
{
CLog.LogError("Can't find NameSelection Element \"" + key + "\" in Screen " + _ThemeName);
throw;
}
}
#endregion Hashtables
#endregion ElementHandler
@@ -930,6 +996,7 @@ namespace Vocaluxe.Menu
_Interactions[i].Type == EType.TButton ||
_Interactions[i].Type == EType.TSelectSlide ||
_Interactions[i].Type == EType.TStatic ||
_Interactions[i].Type == EType.TNameSelection ||
_Interactions[i].Type == EType.TText))
{
ZSort zs = new ZSort();
@@ -1009,6 +1076,13 @@ namespace Vocaluxe.Menu
_AddInteraction(_SingNotes.Count - 1, EType.TSingNote);
return _SingNotes.Count - 1;
}
public int AddNameSelection(CNameSelection ns)
{
_NameSelections.Add(ns);
_AddInteraction(_NameSelections.Count - 1, EType.TNameSelection);
return _NameSelections.Count - 1;
}
#endregion Elements
#region InteractionHandling
@@ -1153,6 +1227,10 @@ namespace Vocaluxe.Menu
if (CHelper.IsInBounds(_Lyrics[interact.Num].Rect, x, y))
return true;
break;
case EType.TNameSelection:
if (CHelper.IsInBounds(_NameSelections[interact.Num].Rect, x, y))
return true;
break;
}
return false;
}
@@ -1173,6 +1251,8 @@ namespace Vocaluxe.Menu
return _Texts[interact.Num].Z;
case EType.TLyric:
return _Lyrics[interact.Num].Rect.Z;
case EType.TNameSelection:
return _NameSelections[interact.Num].Rect.Z;
}
return CSettings.zFar;
}
@@ -1198,6 +1278,9 @@ namespace Vocaluxe.Menu
case EType.TLyric:
return _Lyrics[_Interactions[interaction].Num].Rect.Z;
case EType.TNameSelection:
return _NameSelections[_Interactions[interaction].Num].Rect.Z;
}
return CSettings.zFar;
@@ -1513,6 +1596,9 @@ namespace Vocaluxe.Menu
case EType.TLyric:
_Lyrics[_Interactions[_Selection].Num].Selected = true;
break;
case EType.TNameSelection:
_NameSelections[_Interactions[_Selection].Num].Selected = true;
break;
}
}
@@ -1538,6 +1624,9 @@ namespace Vocaluxe.Menu
case EType.TLyric:
_Lyrics[_Interactions[_Selection].Num].Selected = false;
break;
case EType.TNameSelection:
_NameSelections[_Interactions[_Selection].Num].Selected = false;
break;
}
}
@@ -1566,6 +1655,9 @@ namespace Vocaluxe.Menu
case EType.TLyric:
//_Lyrics[_Interactions[selection].Num].Selected = true;
break;
case EType.TNameSelection:
//_NameSelections[_Interactions[selection].Num].Selected = true;
break;
}
}
@@ -1594,6 +1686,9 @@ namespace Vocaluxe.Menu
case EType.TLyric:
//_Lyrics[_Interactions[selection].Num].Selected = false;
break;
case EType.TNameSelection:
//_NameSelections[_Interactions[selection].Num].Selected = false;
break;
}
}
@@ -1640,6 +1735,9 @@ namespace Vocaluxe.Menu
case EType.TLyric:
return _Lyrics[_Interactions[interaction].Num].Visible;
case EType.TNameSelection:
return _NameSelections[_Interactions[interaction].Num].Visible;
}
return false;
@@ -1667,6 +1765,9 @@ namespace Vocaluxe.Menu
case EType.TLyric:
return _Lyrics[_Interactions[interaction].Num].Rect;
case EType.TNameSelection:
return _NameSelections[_Interactions[interaction].Num].Rect;
}
return Result;
@@ -1704,6 +1805,10 @@ namespace Vocaluxe.Menu
case EType.TSongMenu:
_SongMenus[_Interactions[interaction].Num].Draw();
break;
case EType.TNameSelection:
_NameSelections[_Interactions[interaction].Num].Draw();
break;
//TODO:
//case EType.TLyric:
@@ -1744,6 +1849,10 @@ namespace Vocaluxe.Menu
case EType.TLyric:
_Lyrics[_Interactions[_Selection].Num].MoveElement(stepX, stepY);
break;
case EType.TNameSelection:
_NameSelections[_Interactions[_Selection].Num].MoveElement(stepX, stepY);
break;
}
}
}
@@ -1777,6 +1886,10 @@ namespace Vocaluxe.Menu
case EType.TLyric:
_Lyrics[_Interactions[_Selection].Num].ResizeElement(stepW, stepH);
break;
case EType.TNameSelection:
_NameSelections[_Interactions[_Selection].Num].ResizeElement(stepW, stepH);
break;
}
}
}
+539
View File
@@ -0,0 +1,539 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Xml.XPath;
using System.Windows.Forms;
using Vocaluxe.Base;
using Vocaluxe.Lib.Draw;
namespace Vocaluxe.Menu
{
struct SThemeNameSelection
{
public string Name;
public string TextureEmptyTileName;
public string ColorEmptyTileName;
public string TextureTileSelectedName;
public float NameSpace;
public float NameHeight;
public string NameFont;
public EStyle NameStyle;
public SColorF NameColor;
public string NameColorName;
}
class CNameSelection : IMenuElement
{
class CTile
{
public int PlayerNr;
public CStatic Avatar;
public CText Name;
public CTile()
{
}
public CTile(CStatic av, CText tex, int pl)
{
Avatar = av;
Name = tex;
PlayerNr = pl;
}
}
private SThemeNameSelection _Theme;
private bool _ThemeLoaded;
public bool Selected = false;
public bool Visible = true;
public SRectF Rect;
private List<CTile> _Tiles;
private STexture _TextureEmptyTile;
private STexture _TextureTileSelected;
public SColorF ColorEmptyTile;
private int _NumW;
private int _NumH;
private float _SpaceW;
private float _SpaceH;
private int _TileW;
private int _TileH;
public int _Offset = 0;
private int _actualSelection = -1;
public int Selection = -1;
int _player = -1;
private List<int> VisibleProfiles;
private CStatic PlayerSelector;
public CNameSelection()
{
_Theme = new SThemeNameSelection();
_Tiles = new List<CTile>();
VisibleProfiles = new List<int>();
}
public void Init()
{
_Tiles.Clear();
for (int i = 0; i < _NumH; i++)
{
for (int j = 0; j < _NumW; j++)
{
SRectF rect = new SRectF(Rect.X + j * (_TileW + _SpaceW), Rect.Y + i * (_TileH + _SpaceH), _TileW, _TileH, Rect.Z);
CStatic tileStatic = new CStatic(_TextureEmptyTile, ColorEmptyTile, rect);
CText tileText = new CText(rect.X + rect.W / 2, rect.Y + rect.H + _Theme.NameSpace, rect.Z, _Theme.NameHeight, rect.W, EAlignment.Center, _Theme.NameStyle, _Theme.NameFont, _Theme.NameColor, "");
_Tiles.Add(new CTile(tileStatic, tileText, -1));
}
}
PlayerSelector = new CStatic();
PlayerSelector.Texture = _TextureTileSelected;
PlayerSelector.Rect = new SRectF(0, 0, (_TileW + 6), (_TileH + 6), (Rect.Z - 0.5f));
PlayerSelector.Visible = false;
UpdateVisibleProfiles();
UpdateList(0);
}
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
{
string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinEmptyTile", navigator, ref _Theme.TextureEmptyTileName, String.Empty);
if (CHelper.GetValueFromXML(item + "/ColorEmptyTile", navigator, ref _Theme.ColorEmptyTileName, String.Empty))
{
_ThemeLoaded &= CTheme.GetColor(_Theme.ColorEmptyTileName, SkinIndex, ref ColorEmptyTile);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref ColorEmptyTile.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref ColorEmptyTile.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref ColorEmptyTile.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref ColorEmptyTile.A);
}
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinTileSelected", navigator, ref _Theme.TextureTileSelectedName, String.Empty);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/W", navigator, ref _TileW);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/H", navigator, ref _TileH);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/NumW", navigator, ref _NumW);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/NumH", navigator, ref _NumH);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/SpaceW", navigator, ref _SpaceW);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/SpaceH", navigator, ref _SpaceH);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/Space", navigator, ref _Theme.NameSpace);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/H", navigator, ref _Theme.NameHeight);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Tiles/Name/Font", navigator, ref _Theme.NameFont, "Normal");
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EStyle>(item + "/Tiles/Name/Style", navigator, ref _Theme.NameStyle);
if (CHelper.GetValueFromXML(item + "/Tiles/Name/Color", navigator, ref _Theme.NameColorName, String.Empty))
{
_ThemeLoaded &= CTheme.GetColor(_Theme.NameColorName, SkinIndex, ref _Theme.NameColor);
}
else
{
if (CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/R", navigator, ref _Theme.NameColor.R))
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/G", navigator, ref _Theme.NameColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/B", navigator, ref _Theme.NameColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/A", navigator, ref _Theme.NameColor.A);
}
}
if (_ThemeLoaded)
{
_Theme.Name = ElementName;
LoadTextures();
}
return _ThemeLoaded;
}
public bool SaveTheme(XmlWriter writer)
{
if (_ThemeLoaded)
{
writer.WriteStartElement(_Theme.Name);
writer.WriteComment("<X>, <Y>, <Z>, <W>, <H>: NameSelection position, width and height");
writer.WriteElementString("X", Rect.X.ToString("#0"));
writer.WriteElementString("Y", Rect.Y.ToString("#0"));
writer.WriteElementString("Z", Rect.Z.ToString("#0.00"));
writer.WriteElementString("W", Rect.W.ToString("#0"));
writer.WriteElementString("H", Rect.H.ToString("#0"));
writer.WriteComment("<SkinEmptyTile>: Texture name");
writer.WriteElementString("SkinEmptyTile", _Theme.TextureEmptyTileName);
writer.WriteComment("<ColorEmptyTile>: Static color from ColorScheme (high priority)");
writer.WriteComment("or <R>, <G>, <B>, <A> (lower priority)");
if (_Theme.ColorEmptyTileName != String.Empty)
{
writer.WriteElementString("ColorEmptyTile", _Theme.ColorEmptyTileName);
}
else
{
writer.WriteElementString("R", ColorEmptyTile.R.ToString("#0.00"));
writer.WriteElementString("G", ColorEmptyTile.G.ToString("#0.00"));
writer.WriteElementString("B", ColorEmptyTile.B.ToString("#0.00"));
writer.WriteElementString("A", ColorEmptyTile.A.ToString("#0.00"));
}
writer.WriteComment("<SkinTileSelected>: Texture name");
writer.WriteElementString("SkinTileSelected", _Theme.TextureTileSelectedName);
writer.WriteComment("<Tiles>: Options for tiles");
writer.WriteStartElement("Tiles");
writer.WriteComment("<W>, <H>: Width and height of tile");
writer.WriteElementString("W", _TileW.ToString());
writer.WriteElementString("H", _TileH.ToString());
writer.WriteComment("<NumW>, <NumH>: Number of tiles");
writer.WriteElementString("NumW", _NumW.ToString());
writer.WriteElementString("NumH", _NumH.ToString());
writer.WriteComment("<SpaceW>, <SpaceH>: Space between tiles");
writer.WriteElementString("SpaceW", _SpaceW.ToString("#0.00"));
writer.WriteElementString("SpaceH", _SpaceH.ToString("#0.00"));
writer.WriteComment("<Name>: Options for player-name");
writer.WriteStartElement("Name");
writer.WriteComment("<Space>: Space between name and tile");
writer.WriteElementString("Space", _Theme.NameSpace.ToString("#0.0"));
writer.WriteComment("<Font>: Text font name");
writer.WriteElementString("Font", _Theme.NameFont);
writer.WriteComment("<Color>: Text color from ColorScheme (high priority)");
if (_Theme.NameColorName != String.Empty)
{
writer.WriteElementString("Color", _Theme.NameColorName);
}
else
{
writer.WriteElementString("R", _Theme.NameColor.R.ToString("#0.00"));
writer.WriteElementString("G", _Theme.NameColor.G.ToString("#0.00"));
writer.WriteElementString("B", _Theme.NameColor.B.ToString("#0.00"));
writer.WriteElementString("A", _Theme.NameColor.A.ToString("#0.00"));
}
writer.WriteComment("<Style>: Text style: " + CConfig.ListStrings(Enum.GetNames(typeof(EStyle))));
writer.WriteElementString("Style", _Theme.NameStyle.ToString());
writer.WriteComment("<H>: Text height");
writer.WriteElementString("H", _Theme.NameHeight.ToString("#0"));
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndElement();
return true;
}
return false;
}
public void Draw()
{
Draw(false);
}
public void ForceDraw()
{
Draw(true);
}
public void Draw(bool ForceDraw)
{
int i = 0;
foreach (CTile tile in _Tiles)
{
tile.Avatar.Draw();
tile.Name.Draw();
if (PlayerSelector.Visible)
{
//Update PlayerSelector-Coords
if (_player > -1 && _actualSelection == i)
{
PlayerSelector.Rect.X = tile.Avatar.Rect.X - 3;
PlayerSelector.Rect.Y = tile.Avatar.Rect.Y - 3;
}
}
i++;
}
if (PlayerSelector.Visible)
{
//Draw PlayerSelector
PlayerSelector.Draw();
}
}
public void HandleInput(KeyEvent kevent)
{
switch (kevent.Key)
{
case Keys.Right:
if (_actualSelection + 1 < _Tiles.Count)
{
if (_Tiles[_actualSelection + 1].PlayerNr != -1)
{
_actualSelection++;
}
}
else
{
int offset = _Offset;
UpdateList(_Offset + 1);
if (offset != _Offset)
{
_actualSelection = 0;
}
}
break;
case Keys.Left:
if (_actualSelection - 1 > -1)
{
_actualSelection--;
}
else if (_Offset > 0)
{
UpdateList(_Offset - 1);
_actualSelection = _Tiles.Count-1;
}
break;
case Keys.Up:
if (_actualSelection - _NumW > -1)
{
_actualSelection -= _NumW;
}
else if (_Offset > 0)
{
UpdateList(_Offset - 1);
_actualSelection += _Tiles.Count- _NumW;
}
break;
case Keys.Down:
if (_actualSelection + _NumW < _Tiles.Count)
{
if (_Tiles[_actualSelection + _NumW].PlayerNr != -1)
{
_actualSelection += _NumW;
}
}
else
{
int offset = _Offset;
UpdateList(_Offset + 1);
if (offset != _Offset)
{
_actualSelection = _actualSelection - _Tiles.Count + _NumW;
if (_Tiles[_actualSelection].PlayerNr == -1)
{
for (int i = (_Tiles.Count - 1); i >= 0; i--)
{
if (_Tiles[i].PlayerNr != -1)
{
_actualSelection = i;
break;
}
}
}
}
}
break;
}
Selection = VisibleProfiles[_Offset * _Tiles.Count + _actualSelection];
}
public void KeyboardSelection(bool active, int player)
{
//Overwrite player-selection; Same profile, but other player
if (active && Selection != -1)
{
_player = player;
PlayerSelector.Color = CTheme.GetPlayerColor(player);
}
//Normal activation
else if (active)
{
Selection = 0;
_actualSelection = 0;
_player = player;
PlayerSelector.Color = CTheme.GetPlayerColor(player);
PlayerSelector.Visible = true;
}
//Deactivate
else
{
Selection = -1;
_actualSelection = -1;
_player = -1;
PlayerSelector.Visible = false;
}
}
public void UpdateList()
{
UpdateVisibleProfiles();
if (_Tiles.Count * (_Offset + 1) - VisibleProfiles.Count >= _Tiles.Count * _Offset)
{
UpdateList(_Offset - 1);
}
else
{
UpdateList(_Offset);
}
}
public void UpdateList(int offset)
{
if (offset < 0)
offset = 0;
if ( _Tiles.Count * (offset + 1) - VisibleProfiles.Count < _Tiles.Count)
{
for (int i = 0; i < _Tiles.Count; i++)
{
if ((i + offset * _Tiles.Count) < VisibleProfiles.Count)
{
_Tiles[i].Avatar.Texture = CProfiles.Profiles[VisibleProfiles[i + offset * _Tiles.Count]].Avatar.Texture;
_Tiles[i].Avatar.Color = new SColorF(1, 1, 1, 1);
_Tiles[i].Name.Text = CProfiles.Profiles[VisibleProfiles[i + offset * _Tiles.Count]].PlayerName;
_Tiles[i].PlayerNr = VisibleProfiles[i + offset * _Tiles.Count];
}
else
{
_Tiles[i].Avatar.Texture = _TextureEmptyTile;
_Tiles[i].Avatar.Color = ColorEmptyTile;
_Tiles[i].Name.Text = "";
_Tiles[i].PlayerNr = -1;
}
}
_Offset = offset;
}
}
public bool isOverTile(MouseEvent mevent)
{
bool isOver = false;
foreach (CTile tile in _Tiles)
{
if (CHelper.IsInBounds(tile.Avatar.Rect, mevent))
{
isOver = true;
}
}
return isOver;
}
public int TilePlayerNr(MouseEvent mevent)
{
foreach (CTile tile in _Tiles)
{
if (CHelper.IsInBounds(tile.Avatar.Rect, mevent))
{
return tile.PlayerNr;
}
}
return -1;
}
public CStatic TilePlayerAvatar(MouseEvent mevent)
{
foreach (CTile tile in _Tiles)
{
if (CHelper.IsInBounds(tile.Avatar.Rect, mevent))
{
return tile.Avatar;
}
}
return new CStatic();
}
public void UnloadTextures()
{
}
public void LoadTextures()
{
_TextureEmptyTile = CTheme.GetSkinTexture(_Theme.TextureEmptyTileName);
_TextureTileSelected = CTheme.GetSkinTexture(_Theme.TextureTileSelectedName);
}
public void ReloadTextures()
{
UnloadTextures();
LoadTextures();
}
private void UpdateVisibleProfiles()
{
VisibleProfiles.Clear();
for (int i = 0; i < CProfiles.Profiles.Length; i++)
{
bool visible = false;
//Show profile only if active
if (CProfiles.Profiles[i].Active == EOffOn.TR_CONFIG_ON)
{
visible = true;
}
for (int p = 0; p < CGame.NumPlayer; p++)
{
//Don't show profile if is selected, but if selected and guest
if (CGame.Player[p].ProfileID == i && CProfiles.Profiles[i].GuestProfile == EOffOn.TR_CONFIG_OFF)
{
visible = false;
}
}
if (visible)
{
VisibleProfiles.Add(i);
}
}
}
#region ThemeEdit
public void MoveElement(int stepX, int stepY)
{
Rect.X += stepX;
Rect.Y += stepY;
}
public void ResizeElement(int stepW, int stepH)
{
Rect.W += stepW;
if (Rect.W <= 0)
Rect.W = 1;
Rect.H += stepH;
if (Rect.H <= 0)
Rect.H = 1;
}
#endregion ThemeEdit
}
}
+1 -1
View File
@@ -585,7 +585,7 @@ namespace Vocaluxe.Menu.SingNotes
for (int i = 0; i < CSettings.NumNoteLines - 1; i++)
{
float y = Rect.Y + Rect.H / CSettings.NumNoteLines * (i + 1);
CDraw.DrawColor(Color, new SRectF(Rect.X, y, Rect.W, 1, -0.5f));
CDraw.DrawColor(Color, new SRectF(Rect.X, y, Rect.W, 1, -1.0f));
}
}
+34
View File
@@ -172,6 +172,7 @@ namespace Vocaluxe.Screens
}
}
}
}
public override void ReloadTheme() {}
@@ -322,6 +323,39 @@ namespace Vocaluxe.Screens
CreditEntryPinky007.direction = EDirection.Right;
_CreditNames.Add(CreditEntryPinky007);
//Prepare Text
int lastY = 280;
for (int i = 0; i < paragraphs.Count; i++)
{
string line = "";
for (int e = 0; e < paragraphs[i].Length; e++ )
{
if (paragraphs[i][e] != null)
{
string newline = line + " " + paragraphs[i][e];
CText text = new CText(75, lastY, -2, 30, -1, EAlignment.Left, EStyle.Bold, "Outline", new SColorF(1, 1, 1, 1), line);
if (CDraw.GetTextBounds(text).Width < (CSettings.iRenderW - 160))
{
line = line + " " + paragraphs[i][e];
//Check if all words are used
if ((e + 1) == paragraphs[i].Length)
{
text.Text = line;
paragraphTexts.Add(text);
line = "";
lastY += 40;
}
}
else
{
paragraphTexts.Add(text);
line = " "+paragraphs[i][e];
lastY += 27;
}
}
}
}
TextTimer.Reset();
LogoTimer.Reset();
CreditsTimer.Reset();
+484 -116
View File
@@ -12,14 +12,29 @@ namespace Vocaluxe.Screens
class CScreenNames : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
const int ScreenVersion = 1;
const int ScreenVersion = 2;
private readonly string[] SelectSlidePlayerMic = new string[] { "SelectSlidePlayerMic1", "SelectSlidePlayerMic2", "SelectSlidePlayerMic3" };
private readonly string[] ButtonPlayer = new string[] { "Button1Player", "Button2Player", "Button3Player" };
private CStatic chooseAvatarStatic;
private int OldMouseX;
private int OldMouseY;
private const string SelectSlidePlayerNumber = "SelectSlidePlayerNumber";
private const string NameSelection = "NameSelection";
private const string ButtonBack = "ButtonBack";
private const string ButtonStart = "ButtonStart";
private const string TextWarning = "TextWarning";
private const string StaticWarning = "StaticWarning";
private const string TextWarningMics = "TextWarningMics";
private const string StaticWarningMics = "StaticWarningMics";
private const string TextWarningProfiles = "TextWarningProfiles";
private const string StaticWarningProfiles = "StaticWarningProfiles";
private readonly string[] StaticPlayer = new string[] { "StaticPlayer1", "StaticPlayer2", "StaticPlayer3", "StaticPlayer4", "StaticPlayer5", "StaticPlayer6" };
private readonly string[] StaticPlayerAvatar = new string[] { "StaticPlayerAvatar1", "StaticPlayerAvatar2", "StaticPlayerAvatar3", "StaticPlayerAvatar4", "StaticPlayerAvatar5", "StaticPlayerAvatar6" };
private readonly string[] TextPlayer = new string[] { "TextPlayer1", "TextPlayer2", "TextPlayer3", "TextPlayer4", "TextPlayer5", "TextPlayer6" };
private STexture[] OriginalPlayerAvatarTextures = new STexture[CSettings.MaxNumPlayer];
private bool selectingMouseActive = false;
private bool selectingKeyboardActive = false;
private int selectingKeyboardPlayerNr = 0;
private int SelectedPlayerNr;
private int[] _PlayerNr;
@@ -36,56 +51,240 @@ namespace Vocaluxe.Screens
_ScreenVersion = ScreenVersion;
List<string> statics = new List<string>();
statics.Add(StaticWarning);
foreach(string text in StaticPlayer){
statics.Add(text);
}
foreach (string text in StaticPlayerAvatar)
{
statics.Add(text);
}
statics.Add(StaticWarningMics);
statics.Add(StaticWarningProfiles);
_ThemeStatics = statics.ToArray();
List<string> texts = new List<string>();
foreach (string text in SelectSlidePlayerMic)
{
texts.Add(text);
}
_ThemeSelectSlides = texts.ToArray();
_ThemeSelectSlides = new string[] { SelectSlidePlayerNumber };
texts.Clear();
texts.Add(TextWarning);
texts.Add(TextWarningMics);
texts.Add(TextWarningProfiles);
foreach(string text in TextPlayer){
texts.Add(text);
}
_ThemeTexts = texts.ToArray();
texts.Clear();
texts.Add(ButtonBack);
texts.Add(ButtonStart);
foreach (string text in ButtonPlayer)
{
texts.Add(text);
}
_ThemeButtons = texts.ToArray();
texts.Clear();
texts.Add(NameSelection);
_ThemeNameSelections = texts.ToArray();
chooseAvatarStatic = new CStatic();
chooseAvatarStatic.Visible = false;
}
public override void LoadTheme()
{
base.LoadTheme();
for (int i = 0; i < SelectSlidePlayerMic.Length; i++)
{
SelectSlides[htSelectSlides(SelectSlidePlayerMic[i])].WithTextures = true;
}
_PlayerNr = new int[CSettings.MaxNumPlayer];
for (int i = 0; i < _PlayerNr.Length; i++)
{
_PlayerNr[i] = i;
}
for (int i = 0; i < CSettings.MaxNumPlayer; i++)
{
OriginalPlayerAvatarTextures[i] = Statics[htStatics(StaticPlayerAvatar[i])].Texture;
}
}
public override bool HandleInput(KeyEvent KeyEvent)
{
base.HandleInput(KeyEvent);
if (KeyEvent.KeyPressed && !Char.IsControl(KeyEvent.Unicode))
switch (KeyEvent.Key)
{
case Keys.Add:
if (CConfig.NumPlayer + 1 <= CSettings.MaxNumPlayer)
{
SelectSlides[htSelectSlides(SelectSlidePlayerNumber)].Selection = CConfig.NumPlayer;
UpdatePlayerNumber();
//Update Tiles-List
NameSelections[htNameSelections(NameSelection)].UpdateList();
}
break;
case Keys.Subtract:
if (CConfig.NumPlayer - 1 > 0)
{
SelectSlides[htSelectSlides(SelectSlidePlayerNumber)].Selection = CConfig.NumPlayer - 2;
UpdatePlayerNumber();
//Update Tiles-List
NameSelections[htNameSelections(NameSelection)].UpdateList();
}
break;
}
//Check if selecting with keyboard is active
if (selectingKeyboardActive)
{
//Handle left/right/up/down
NameSelections[htNameSelections(NameSelection)].HandleInput(KeyEvent);
switch (KeyEvent.Key)
{
case Keys.Enter:
//Check, if a player is selected
if (NameSelections[htNameSelections(NameSelection)].Selection > -1)
{
SelectedPlayerNr = NameSelections[htNameSelections(NameSelection)].Selection;
//Update Game-infos with new player
CGame.Player[selectingKeyboardPlayerNr-1].Name = CProfiles.Profiles[SelectedPlayerNr].PlayerName;
CGame.Player[selectingKeyboardPlayerNr-1].Difficulty = CProfiles.Profiles[SelectedPlayerNr].Difficulty;
CGame.Player[selectingKeyboardPlayerNr-1].ProfileID = SelectedPlayerNr;
//Update config for default players.
CConfig.Players[selectingKeyboardPlayerNr - 1] = CProfiles.Profiles[SelectedPlayerNr].ProfileFile;
CConfig.SaveConfig();
//Update texture and name
Statics[htStatics(StaticPlayerAvatar[selectingKeyboardPlayerNr-1])].Texture = CProfiles.Profiles[SelectedPlayerNr].Avatar.Texture;
Texts[htTexts(TextPlayer[selectingKeyboardPlayerNr-1])].Text = CProfiles.Profiles[SelectedPlayerNr].PlayerName;
//Update profile-warning
CheckPlayers();
//Update Tiles-List
NameSelections[htNameSelections(NameSelection)].UpdateList();
}
//Reset all values
selectingKeyboardPlayerNr = 0;
selectingKeyboardActive = false;
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(false, -1);
break;
case Keys.D1:
case Keys.NumPad1:
if (selectingKeyboardPlayerNr == 1)
{
//Reset all values
selectingKeyboardPlayerNr = 0;
selectingKeyboardActive = false;
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(false, -1);
}
else
{
selectingKeyboardPlayerNr = 1;
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(true, 1);
}
break;
case Keys.D2:
case Keys.NumPad2:
if (selectingKeyboardPlayerNr == 2)
{
//Reset all values
selectingKeyboardPlayerNr = 0;
selectingKeyboardActive = false;
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(false, -1);
}
else
{
selectingKeyboardPlayerNr = 2;
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(true, 2);
}
break;
case Keys.D3:
case Keys.NumPad3:
if (selectingKeyboardPlayerNr == 3)
{
//Reset all values
selectingKeyboardPlayerNr = 0;
selectingKeyboardActive = false;
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(false, -1);
}
else
{
selectingKeyboardPlayerNr = 3;
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(true, 3);
}
break;
case Keys.D4:
case Keys.NumPad4:
if (selectingKeyboardPlayerNr == 4)
{
//Reset all values
selectingKeyboardPlayerNr = 0;
selectingKeyboardActive = false;
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(false, -1);
}
else
{
selectingKeyboardPlayerNr = 4;
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(true, 4);
}
break;
case Keys.D5:
case Keys.NumPad5:
if (selectingKeyboardPlayerNr == 5)
{
//Reset all values
selectingKeyboardPlayerNr = 0;
selectingKeyboardActive = false;
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(false, -1);
}
else
{
selectingKeyboardPlayerNr = 5;
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(true, 5);
}
break;
case Keys.D6:
case Keys.NumPad6:
if (selectingKeyboardPlayerNr == 6)
{
//Reset all values
selectingKeyboardPlayerNr = 0;
selectingKeyboardActive = false;
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(false, -1);
}
else
{
selectingKeyboardPlayerNr = 6;
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(true, 6);
}
break;
case Keys.Escape:
//Reset all values
selectingKeyboardPlayerNr = 0;
selectingKeyboardActive = false;
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(false, -1);
break;
case Keys.Delete:
//Delete profile-selection
CGame.Player[selectingKeyboardPlayerNr-1].ProfileID = -1;
CGame.Player[selectingKeyboardPlayerNr-1].Name = String.Empty;
CGame.Player[selectingKeyboardPlayerNr-1].Difficulty = EGameDifficulty.TR_CONFIG_EASY;
//Update config for default players.
CConfig.Players[selectingKeyboardPlayerNr - 1] = String.Empty;
CConfig.SaveConfig();
//Update texture and name
Statics[htStatics(StaticPlayerAvatar[selectingKeyboardPlayerNr - 1])].Texture = OriginalPlayerAvatarTextures[selectingKeyboardPlayerNr - 1];
Texts[htTexts(TextPlayer[selectingKeyboardPlayerNr - 1])].Text = CLanguage.Translate("TR_SCREENNAMES_PLAYER") + " " + selectingKeyboardPlayerNr.ToString();
//Update profile-warning
CheckPlayers();
//Reset all values
selectingKeyboardPlayerNr = 0;
selectingKeyboardActive = false;
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(false, -1);
//Update Tiles-List
NameSelections[htNameSelections(NameSelection)].UpdateList();
break;
}
}
//Normal Keyboard handling
else
{
base.HandleInput(KeyEvent);
bool processed = false;
switch (KeyEvent.Key)
{
@@ -95,25 +294,6 @@ namespace Vocaluxe.Screens
break;
case Keys.Enter:
for (int i = 0; i < ButtonPlayer.Length; i++)
{
if (Buttons[htButtons(ButtonPlayer[i])].Selected)
{
processed = true;
CGame.NumPlayer = i + 1;
UpdateSelection();
UpdateVisibility();
CConfig.NumPlayer = CGame.NumPlayer;
CConfig.SaveConfig();
CheckMics();
break;
}
}
if (!processed && Buttons[htButtons(ButtonBack)].Selected)
{
@@ -128,10 +308,46 @@ namespace Vocaluxe.Screens
}
break;
case Keys.D1:
case Keys.NumPad1:
selectingKeyboardPlayerNr = 1;
break;
case Keys.D2:
case Keys.NumPad2:
selectingKeyboardPlayerNr = 2;
break;
case Keys.D3:
case Keys.NumPad3:
selectingKeyboardPlayerNr = 3;
break;
case Keys.D4:
case Keys.NumPad4:
selectingKeyboardPlayerNr = 4;
break;
case Keys.D5:
case Keys.NumPad5:
selectingKeyboardPlayerNr = 5;
break;
case Keys.D6:
case Keys.NumPad6:
selectingKeyboardPlayerNr = 6;
break;
}
if (!processed)
UpdateSelection();
UpdatePlayerNumber();
if (selectingKeyboardPlayerNr > 0 && selectingKeyboardPlayerNr <= CConfig.NumPlayer)
{
selectingKeyboardActive = true;
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(true, selectingKeyboardPlayerNr);
}
}
return true;
@@ -141,6 +357,81 @@ namespace Vocaluxe.Screens
{
base.HandleMouse(MouseEvent);
//Check if LeftButton is hold and Select-Mode inactive
if (MouseEvent.LBH && !selectingMouseActive)
{
//Save mouse-coords
OldMouseX = MouseEvent.X;
OldMouseY = MouseEvent.Y;
//Check if mouse if over tile
if (NameSelections[htNameSelections(NameSelection)].isOverTile(MouseEvent))
{
//Get player-number of tile
SelectedPlayerNr = NameSelections[htNameSelections(NameSelection)].TilePlayerNr(MouseEvent);
if (SelectedPlayerNr != -1)
{
//Activate mouse-selecting
selectingMouseActive = true;
//Update of Drag/Drop-Texture
CStatic SelectedPlayer = NameSelections[htNameSelections(NameSelection)].TilePlayerAvatar(MouseEvent);
chooseAvatarStatic.Visible = true;
chooseAvatarStatic.Rect = SelectedPlayer.Rect;
chooseAvatarStatic.Rect.Z = CSettings.zNear + 1;
chooseAvatarStatic.Color = new SColorF(1, 1, 1, 1);
chooseAvatarStatic.Texture = SelectedPlayer.Texture;
}
}
}
//Check if LeftButton is hold and Select-Mode active
if (MouseEvent.LBH && selectingMouseActive)
{
//Update coords for Drag/Drop-Texture
chooseAvatarStatic.Rect.X += (MouseEvent.X - OldMouseX);
chooseAvatarStatic.Rect.Y += (MouseEvent.Y - OldMouseY);
OldMouseX = MouseEvent.X;
OldMouseY = MouseEvent.Y;
}
// LeftButton isn't hold anymore, but Selec-Mode is still active -> "Drop" of Avatar
else if (selectingMouseActive)
{
//Check if really a player was selected
if (SelectedPlayerNr != -1)
{
//Foreach Drop-Area
for (int i = 0; i < StaticPlayer.Length; i++)
{
//Check first, if area is "active"
if (Statics[htStatics(StaticPlayer[i])].Visible == true)
{
//Check if Mouse is in area
if (CHelper.IsInBounds(Statics[htStatics(StaticPlayer[i])].Rect, MouseEvent))
{
//Update Game-infos with new player
CGame.Player[i].Name = CProfiles.Profiles[SelectedPlayerNr].PlayerName;
CGame.Player[i].Difficulty = CProfiles.Profiles[SelectedPlayerNr].Difficulty;
CGame.Player[i].ProfileID = SelectedPlayerNr;
//Update config for default players.
CConfig.Players[i] = CProfiles.Profiles[SelectedPlayerNr].ProfileFile;
CConfig.SaveConfig();
//Update texture and name
Statics[htStatics(StaticPlayerAvatar[i])].Texture = chooseAvatarStatic.Texture;
Texts[htTexts(TextPlayer[i])].Text = CProfiles.Profiles[SelectedPlayerNr].PlayerName;
//Update profile-warning
CheckPlayers();
//Update Tiles-List
NameSelections[htNameSelections(NameSelection)].UpdateList();
}
}
}
SelectedPlayerNr = -1;
}
//Reset variables
selectingMouseActive = false;
chooseAvatarStatic.Visible = false;
}
if (MouseEvent.LB && IsMouseOver(MouseEvent))
{
@@ -149,24 +440,6 @@ namespace Vocaluxe.Screens
if (MouseEvent.LB && IsMouseOver(MouseEvent))
{
bool processed = false;
for (int i = 0; i < ButtonPlayer.Length; i++)
{
if (Buttons[htButtons(ButtonPlayer[i])].Selected)
{
processed = true;
CGame.NumPlayer = i + 1;
UpdateSelection();
UpdateVisibility();
CConfig.NumPlayer = CGame.NumPlayer;
CConfig.SaveConfig();
CheckMics();
break;
}
}
if (!processed && Buttons[htButtons(ButtonBack)].Selected)
{
@@ -181,12 +454,48 @@ namespace Vocaluxe.Screens
}
if (!processed)
UpdateSelection();
UpdatePlayerNumber();
//Update Tiles-List
NameSelections[htNameSelections(NameSelection)].UpdateList();
}
if (MouseEvent.RB)
{
CGraphics.FadeTo(EScreens.ScreenSong);
bool exit = true;
//Remove profile-selection
for (int i = 0; i < CConfig.NumPlayer; i++)
{
if (CHelper.IsInBounds(Statics[htStatics(StaticPlayer[i])].Rect, MouseEvent))
{
CGame.Player[i].ProfileID = -1;
CGame.Player[i].Name = String.Empty;
CGame.Player[i].Difficulty = EGameDifficulty.TR_CONFIG_EASY;
//Update config for default players.
CConfig.Players[i] = String.Empty;
CConfig.SaveConfig();
//Update texture and name
Statics[htStatics(StaticPlayerAvatar[i])].Texture = OriginalPlayerAvatarTextures[i];
Texts[htTexts(TextPlayer[i])].Text = CLanguage.Translate("TR_SCREENNAMES_PLAYER") + " " + (i+1).ToString();
//Update profile-warning
CheckPlayers();
//Update Tiles-List
NameSelections[htNameSelections(NameSelection)].UpdateList();
exit = false;
}
}
if(exit)
CGraphics.FadeTo(EScreens.ScreenSong);
}
//Check mouse-wheel for scrolling
if (MouseEvent.Wheel != 0)
{
if (CHelper.IsInBounds(NameSelections[htNameSelections(NameSelection)].Rect, MouseEvent))
{
int offset = NameSelections[htNameSelections(NameSelection)]._Offset + MouseEvent.Wheel;
NameSelections[htNameSelections(NameSelection)].UpdateList(offset);
}
}
return true;
}
@@ -201,32 +510,53 @@ namespace Vocaluxe.Screens
{
base.OnShow();
NameSelections[htNameSelections(NameSelection)].Init();
UpdateSlides();
UpdateVisibility();
UpdatePlayerNumber();
CheckMics();
CheckPlayers();
for (int i = 0; i < CSettings.MaxNumPlayer; i++)
{
//Update texture and name
if (CConfig.Players[i] != String.Empty)
{
Statics[htStatics(StaticPlayerAvatar[i])].Texture = CProfiles.Profiles[CGame.Player[i].ProfileID].Avatar.Texture;
Texts[htTexts(TextPlayer[i])].Text = CProfiles.Profiles[CGame.Player[i].ProfileID].PlayerName;
}
}
}
public override bool Draw()
{
return base.Draw();
base.Draw();
if (chooseAvatarStatic.Visible)
{
chooseAvatarStatic.Draw();
}
return true;
}
private void StartSong()
{
for (int i = 0; i < CGame.NumPlayer; i++)
{
if (CProfiles.Profiles.Length > 0)
if (CGame.Player[i].ProfileID < 0)
{
int pIndex = SelectSlides[htSelectSlides(SelectSlidePlayerMic[i])].ValueIndex;
CGame.Player[i].Name = CProfiles.Profiles[pIndex].PlayerName;
CGame.Player[i].Difficulty = CProfiles.Profiles[pIndex].Difficulty;
CGame.Player[i].ProfileID = pIndex;
CGame.Player[i].Name = "Player " + (i+1).ToString();
CGame.Player[i].Difficulty = EGameDifficulty.TR_CONFIG_EASY;
CGame.Player[i].ProfileID = -1;
}
else
{
CGame.Player[i].Name = "Player " + i.ToString();
CGame.Player[i].Difficulty = EGameDifficulty.TR_CONFIG_EASY;
CGame.Player[i].ProfileID = -1;
//Just a work-around for not crashing the game
if (CGame.Player[i].Name == null)
{
CGame.Player[i].Name = "";
}
}
}
@@ -235,51 +565,40 @@ namespace Vocaluxe.Screens
private void UpdateSlides()
{
for (int i = 0; i < SelectSlidePlayerMic.Length; i++)
SelectSlides[htSelectSlides(SelectSlidePlayerNumber)].Clear();
for (int i = 1; i <= CSettings.MaxNumPlayer; i++)
{
SelectSlides[htSelectSlides(SelectSlidePlayerMic[i])].Clear();
}
for (int i = 0; i < CProfiles.NumProfiles; i++)
{
if (CProfiles.Profiles[i].Active == EOffOn.TR_CONFIG_ON)
{
for (int p = 0; p < SelectSlidePlayerMic.Length; p++)
{
SelectSlides[htSelectSlides(SelectSlidePlayerMic[p])].AddValue(CProfiles.Profiles[i].PlayerName, CProfiles.Profiles[i].Avatar.Texture, i);
}
}
}
for (int i = 0; i < _PlayerNr.Length; i++)
{
if (i < SelectSlidePlayerMic.Length)
{
if (_PlayerNr[i] < CProfiles.NumProfiles && _PlayerNr[i] >= 0)
{
SelectSlides[htSelectSlides(SelectSlidePlayerMic[i])].Selection = _PlayerNr[i];
}
}
SelectSlides[htSelectSlides(SelectSlidePlayerNumber)].AddValue(CLanguage.Translate("TR_SCREENNAMES_" + i + "PLAYER"));
}
SelectSlides[htSelectSlides(SelectSlidePlayerNumber)].Selection = CConfig.NumPlayer - 1;
}
private void UpdateSelection()
private void UpdatePlayerNumber()
{
for (int i = 0; i < _PlayerNr.Length; i++)
CConfig.NumPlayer = (int)SelectSlides[htSelectSlides(SelectSlidePlayerNumber)].Selection + 1;
CGame.NumPlayer = (int)SelectSlides[htSelectSlides(SelectSlidePlayerNumber)].Selection + 1;
for (int i = 1; i <= CSettings.MaxNumPlayer; i++)
{
if (i < SelectSlidePlayerMic.Length)
if (i <= CGame.NumPlayer)
{
_PlayerNr[i] = SelectSlides[htSelectSlides(SelectSlidePlayerMic[i])].Selection;
Statics[htStatics("StaticPlayer" + i)].Visible = true;
Statics[htStatics("StaticPlayerAvatar" + i)].Visible = true;
Texts[htTexts("TextPlayer" + i)].Visible = true;
if (Texts[htTexts("TextPlayer" + i)].Text == string.Empty)
{
Texts[htTexts("TextPlayer" + i)].Text = CLanguage.Translate("TR_SCREENNAMES_PLAYER") + " " + i.ToString();
}
}
else
{
Statics[htStatics("StaticPlayer" + i)].Visible = false;
Statics[htStatics("StaticPlayerAvatar" + i)].Visible = false;
Texts[htTexts("TextPlayer" + i)].Visible = false;
}
}
}
private void UpdateVisibility()
{
for (int i = 0; i < SelectSlidePlayerMic.Length; i++)
{
SelectSlides[htSelectSlides(SelectSlidePlayerMic[i])].Visible = i < CGame.NumPlayer;
}
CConfig.SaveConfig();
CheckMics();
CheckPlayers();
}
private void CheckMics()
@@ -294,8 +613,8 @@ namespace Vocaluxe.Screens
}
if (_PlayerWithoutMicro.Count > 0)
{
Statics[htStatics(StaticWarning)].Visible = true;
Texts[htTexts(TextWarning)].Visible = true;
Statics[htStatics(StaticWarningMics)].Visible = true;
Texts[htTexts(TextWarningMics)].Visible = true;
if (_PlayerWithoutMicro.Count > 1)
{
@@ -316,17 +635,66 @@ namespace Vocaluxe.Screens
}
}
Texts[htTexts(TextWarning)].Text = CLanguage.Translate("TR_SCREENNAMES_WARNING_PL").Replace("%v", PlayerNums);
Texts[htTexts(TextWarningMics)].Text = CLanguage.Translate("TR_SCREENNAMES_WARNING_MICS_PL").Replace("%v", PlayerNums);
}
else
{
Texts[htTexts(TextWarning)].Text = CLanguage.Translate("TR_SCREENNAMES_WARNING_SG").Replace("%v", _PlayerWithoutMicro[0].ToString());
Texts[htTexts(TextWarningMics)].Text = CLanguage.Translate("TR_SCREENNAMES_WARNING_MICS_SG").Replace("%v", _PlayerWithoutMicro[0].ToString());
}
}
else
{
Statics[htStatics(StaticWarning)].Visible = false;
Texts[htTexts(TextWarning)].Visible = false;
Statics[htStatics(StaticWarningMics)].Visible = false;
Texts[htTexts(TextWarningMics)].Visible = false;
}
}
private void CheckPlayers()
{
List<int> _PlayerWithoutProfile = new List<int>();
for (int player = 0; player < CConfig.NumPlayer; player++)
{
if (CGame.Player[player].ProfileID < 0)
{
_PlayerWithoutProfile.Add(player + 1);
}
}
if (_PlayerWithoutProfile.Count > 0)
{
Statics[htStatics(StaticWarningProfiles)].Visible = true;
Texts[htTexts(TextWarningProfiles)].Visible = true;
if (_PlayerWithoutProfile.Count > 1)
{
string PlayerNums = string.Empty;
for (int i = 0; i < _PlayerWithoutProfile.Count; i++)
{
if (_PlayerWithoutProfile.Count - 1 == i)
{
PlayerNums += _PlayerWithoutProfile[i].ToString();
}
else if (_PlayerWithoutProfile.Count - 2 == i)
{
PlayerNums += _PlayerWithoutProfile[i].ToString() + " " + CLanguage.Translate("TR_GENERAL_AND") + " ";
}
else
{
PlayerNums += _PlayerWithoutProfile[i].ToString() + ", ";
}
}
Texts[htTexts(TextWarningProfiles)].Text = CLanguage.Translate("TR_SCREENNAMES_WARNING_PROFILES_PL").Replace("%v", PlayerNums);
}
else
{
Texts[htTexts(TextWarningProfiles)].Text = CLanguage.Translate("TR_SCREENNAMES_WARNING_PROFILES_SG").Replace("%v", _PlayerWithoutProfile[0].ToString());
}
}
else
{
Statics[htStatics(StaticWarningProfiles)].Visible = false;
Texts[htTexts(TextWarningProfiles)].Visible = false;
}
}
}
+5 -1
View File
@@ -12,7 +12,7 @@ namespace Vocaluxe.Screens
class CScreenOptionsTheme : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
const int ScreenVersion = 2;
const int ScreenVersion = 3;
private const string SelectSlideTheme = "SelectSlideTheme";
private const string SelectSlideSkin = "SelectSlideSkin";
@@ -20,6 +20,7 @@ namespace Vocaluxe.Screens
private const string SelectSlideNoteLines = "SelectSlideNoteLines";
private const string SelectSlideToneHelper = "SelectSlideToneHelper";
private const string SelectSlideTimerLook = "SelectSlideTimerLook";
private const string SelectSlideFadeInfo = "SelectSlideFadeInfo";
private const string SelectSlideCoverLoading = "SelectSlideCoverLoading";
private const string ButtonExit = "ButtonExit";
@@ -49,6 +50,7 @@ namespace Vocaluxe.Screens
SelectSlideNoteLines,
SelectSlideToneHelper,
SelectSlideTimerLook,
SelectSlideFadeInfo,
SelectSlideCoverLoading
};
}
@@ -68,6 +70,7 @@ namespace Vocaluxe.Screens
SelectSlides[htSelectSlides(SelectSlideNoteLines)].SetValues<EOffOn>((int)CConfig.DrawNoteLines);
SelectSlides[htSelectSlides(SelectSlideToneHelper)].SetValues<EOffOn>((int)CConfig.DrawToneHelper);
SelectSlides[htSelectSlides(SelectSlideTimerLook)].SetValues<ETimerLook>((int)CConfig.TimerLook);
SelectSlides[htSelectSlides(SelectSlideFadeInfo)].SetValues<EFadePlayerInfo>((int)CConfig.FadePlayerInfo);
SelectSlides[htSelectSlides(SelectSlideCoverLoading)].SetValues<ECoverLoading>((int)CConfig.CoverLoading);
}
@@ -163,6 +166,7 @@ namespace Vocaluxe.Screens
CConfig.DrawNoteLines = (EOffOn)SelectSlides[htSelectSlides(SelectSlideNoteLines)].Selection;
CConfig.DrawToneHelper = (EOffOn)SelectSlides[htSelectSlides(SelectSlideToneHelper)].Selection;
CConfig.TimerLook = (ETimerLook)SelectSlides[htSelectSlides(SelectSlideTimerLook)].Selection;
CConfig.FadePlayerInfo = (EFadePlayerInfo)SelectSlides[htSelectSlides(SelectSlideFadeInfo)].Selection;
CConfig.CoverLoading = (ECoverLoading)SelectSlides[htSelectSlides(SelectSlideCoverLoading)].Selection;
CConfig.SaveConfig();
+11 -3
View File
@@ -15,7 +15,7 @@ namespace Vocaluxe.Screens
class CScreenScore : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
const int ScreenVersion = 1;
const int ScreenVersion = 2;
private const string TextSong = "TextSong";
@@ -260,8 +260,16 @@ namespace Vocaluxe.Screens
{
Texts[htTexts(TextNames[p, CGame.NumPlayer - 1])].Text = player[p].Name;
Texts[htTexts(TextScores[p, CGame.NumPlayer - 1])].Text = ((int)Math.Round(player[p].Points)).ToString("0000") + " " + CLanguage.Translate("TR_SCREENSCORE_POINTS");
Texts[htTexts(TextRatings[p, CGame.NumPlayer - 1])].Text = CLanguage.Translate("TR_SCREENSCORE_RATING") + ": " + CLanguage.Translate(GetRating((int)Math.Round(player[p].Points)));
Texts[htTexts(TextDifficulty[p, CGame.NumPlayer - 1])].Text = CLanguage.Translate("TR_SCREENSCORE_GAMEDIFFICULTY") + ": " + CLanguage.Translate(player[p].Difficulty.ToString());
if (CGame.NumPlayer <= 3)
{
Texts[htTexts(TextRatings[p, CGame.NumPlayer - 1])].Text = CLanguage.Translate("TR_SCREENSCORE_RATING") + ": " + CLanguage.Translate(GetRating((int)Math.Round(player[p].Points)));
Texts[htTexts(TextDifficulty[p, CGame.NumPlayer - 1])].Text = CLanguage.Translate("TR_SCREENSCORE_GAMEDIFFICULTY") + ": " + CLanguage.Translate(player[p].Difficulty.ToString());
}
else
{
Texts[htTexts(TextRatings[p, CGame.NumPlayer - 1])].Text = CLanguage.Translate(GetRating((int)Math.Round(player[p].Points)));
Texts[htTexts(TextDifficulty[p, CGame.NumPlayer - 1])].Text = CLanguage.Translate(player[p].Difficulty.ToString());
}
StaticPointsBarDrawnPoints[p] = 0.0;
Statics[htStatics(StaticPointsBar[p, CGame.NumPlayer - 1])].Rect.H = 0;
Statics[htStatics(StaticPointsBar[p, CGame.NumPlayer - 1])].Rect.Y = Statics[htStatics(StaticPointsBarBG[p, CGame.NumPlayer - 1])].Rect.H + Statics[htStatics(StaticPointsBarBG[p, CGame.NumPlayer - 1])].Rect.Y - Statics[htStatics(StaticPointsBar[p, CGame.NumPlayer - 1])].Rect.H;
+87 -5
View File
@@ -17,7 +17,7 @@ namespace Vocaluxe.Screens
class CScreenSing : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
const int ScreenVersion = 3;
const int ScreenVersion = 4;
struct TimeRect
{
@@ -30,6 +30,7 @@ namespace Vocaluxe.Screens
private const string TextTime = "TextTime";
private const string TextPause = "TextPause";
private string[,] TextScores;
private string[,] TextNames;
private const string StaticSongText = "StaticSongText";
private const string StaticLyrics = "StaticLyrics";
@@ -46,6 +47,7 @@ namespace Vocaluxe.Screens
private const string StaticPauseBG = "StaticPauseBG";
private string[,] StaticScores;
private string[,] StaticAvatars;
private const string ButtonCancel = "ButtonCancel";
private const string ButtonContinue = "ButtonContinue";
@@ -185,6 +187,19 @@ namespace Vocaluxe.Screens
CConfig.TimerMode = (ETimerMode)mode;
break;
case Keys.I:
mode = (int)CConfig.PlayerInfo;
mode++;
if (mode > Enum.GetNames(typeof(EPlayerInfo)).Length - 1)
{
mode = 0;
}
CConfig.PlayerInfo = (EPlayerInfo)mode;
CConfig.SaveConfig();
SetVisuability();
break;
case Keys.Enter:
if (Buttons[htButtons(ButtonContinue)].Selected && _Pause)
TogglePause();
@@ -269,6 +284,18 @@ namespace Vocaluxe.Screens
for (int p = 0; p < CGame.NumPlayer; p++)
{
SingNotes[htSingNotes(SingBars)].SetAlpha(NoteLines[p], Alpha[CGame.Player[p].LineNr * 2]);
if (CConfig.FadePlayerInfo == EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_INFO || CConfig.FadePlayerInfo == EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_ALL)
{
Statics[htStatics(StaticAvatars[p,CGame.NumPlayer-1])].Alpha = Alpha[0];
Texts[htTexts(TextNames[p,CGame.NumPlayer-1])].Alpha = Alpha[0];
}
if (CConfig.FadePlayerInfo == EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_ALL)
{
Statics[htStatics(StaticScores[p, CGame.NumPlayer - 1])].Alpha = Alpha[0];
Statics[htStatics(StaticAvatars[p, CGame.NumPlayer - 1])].Alpha = Alpha[0];
Texts[htTexts(TextNames[p, CGame.NumPlayer - 1])].Alpha = Alpha[0];
Texts[htTexts(TextScores[p, CGame.NumPlayer - 1])].Alpha = Alpha[0];
}
}
if (Alpha.Length > 2)
@@ -290,7 +317,14 @@ namespace Vocaluxe.Screens
for (int p = 0; p < CGame.NumPlayer; p++)
{
Texts[htTexts(TextScores[p, CGame.NumPlayer - 1])].Text = CGame.Player[p].Points.ToString("00000");
if (CGame.Player[p].Points < 10000)
{
Texts[htTexts(TextScores[p, CGame.NumPlayer - 1])].Text = CGame.Player[p].Points.ToString("0000");
}
else
{
Texts[htTexts(TextScores[p, CGame.NumPlayer - 1])].Text = CGame.Player[p].Points.ToString("00000");
}
}
if (_CurrentVideo != -1 && !_FadeOut && CConfig.VideosInSongs == EOffOn.TR_CONFIG_ON)
@@ -330,7 +364,12 @@ namespace Vocaluxe.Screens
Lyrics[i].LyricStyle = CConfig.LyricStyle;
}
SetVisuability();
UpdateAvatars();
UpdateNames();
CBackgroundMusic.Disabled = true;
}
public override void OnShowFinish()
@@ -501,10 +540,13 @@ namespace Vocaluxe.Screens
SingNotes[htSingNotes(SingBars)].Reset();
bool LyricsOnTop = CGame.NumPlayer == 2 && CConfig.LyricsOnTop == EOffOn.TR_CONFIG_ON;
bool LyricsOnTop = (CGame.NumPlayer != 1) && CConfig.LyricsOnTop == EOffOn.TR_CONFIG_ON;
if (song.IsDuet)
{
CGame.Player[1].LineNr = 1;
{
for (int i = 1; i <= CGame.NumPlayer; i = i + 2)
{
CGame.Player[i].LineNr = 1;
}
Statics[htStatics(StaticLyricsDuet)].Visible = true;
Lyrics[htLyrics(LyricMainDuet)].Visible = true;
Lyrics[htLyrics(LyricSubDuet)].Visible = true;
@@ -678,6 +720,7 @@ namespace Vocaluxe.Screens
private void BuildTextStrings(ref List<string> texts)
{
TextScores = new string[CSettings.MaxNumPlayer, CSettings.MaxNumPlayer];
TextNames = new string[CSettings.MaxNumPlayer, CSettings.MaxNumPlayer];
for (int numplayer = 0; numplayer < CSettings.MaxNumPlayer; numplayer++)
{
@@ -687,8 +730,10 @@ namespace Vocaluxe.Screens
{
string target = "P" + (player + 1).ToString() + "N" + (numplayer + 1).ToString();
TextScores[player, numplayer] = "TextScore" + target;
TextNames[player, numplayer] = "TextName" + target;
texts.Add(TextScores[player, numplayer]);
texts.Add(TextNames[player, numplayer]);
}
}
}
@@ -697,6 +742,7 @@ namespace Vocaluxe.Screens
private void BuildStaticStrings(ref List<string> statics)
{
StaticScores = new string[CSettings.MaxNumPlayer, CSettings.MaxNumPlayer];
StaticAvatars = new string[CSettings.MaxNumPlayer, CSettings.MaxNumPlayer];
for (int numplayer = 0; numplayer < CSettings.MaxNumPlayer; numplayer++)
{
@@ -706,8 +752,10 @@ namespace Vocaluxe.Screens
{
string target = "P" + (player + 1).ToString() + "N" + (numplayer + 1).ToString();
StaticScores[player, numplayer] = "StaticScore" + target;
StaticAvatars[player, numplayer] = "StaticAvatar" + target;
statics.Add(StaticScores[player, numplayer]);
statics.Add(StaticAvatars[player, numplayer]);
}
}
}
@@ -732,7 +780,11 @@ namespace Vocaluxe.Screens
if (player <= numplayer)
{
Texts[htTexts(TextScores[player, numplayer])].Visible = (numplayer + 1 == CGame.NumPlayer);
Texts[htTexts(TextNames[player, numplayer])].Visible = ((numplayer + 1 == CGame.NumPlayer)
&& (CConfig.PlayerInfo == EPlayerInfo.TR_CONFIG_PLAYERINFO_BOTH || CConfig.PlayerInfo == EPlayerInfo.TR_CONFIG_PLAYERINFO_NAME));
Statics[htStatics(StaticScores[player, numplayer])].Visible = (numplayer + 1 == CGame.NumPlayer);
Statics[htStatics(StaticAvatars[player, numplayer])].Visible = ((numplayer + 1 == CGame.NumPlayer)
&& (CConfig.PlayerInfo == EPlayerInfo.TR_CONFIG_PLAYERINFO_BOTH || CConfig.PlayerInfo == EPlayerInfo.TR_CONFIG_PLAYERINFO_AVATAR));
}
}
}
@@ -1111,5 +1163,35 @@ namespace Vocaluxe.Screens
break;
}
}
private void UpdateAvatars()
{
for (int i = 0; i < CGame.NumPlayer; i++)
{
if (CGame.Player[i].ProfileID > -1)
{
Statics[htStatics(StaticAvatars[i, CGame.NumPlayer - 1])].Texture = CProfiles.Profiles[CGame.Player[i].ProfileID].Avatar.Texture;
}
else
{
Statics[htStatics(StaticAvatars[i, CGame.NumPlayer - 1])].Visible = false;
}
}
}
private void UpdateNames()
{
for (int i = 0; i < CGame.NumPlayer; i++)
{
if (CGame.Player[i].ProfileID > -1)
{
Texts[htTexts(TextNames[i, CGame.NumPlayer - 1])].Text = CProfiles.Profiles[CGame.Player[i].ProfileID].PlayerName;
}
else
{
Texts[htTexts(TextNames[i, CGame.NumPlayer - 1])].Visible = false;
}
}
}
}
}
+1
View File
@@ -166,6 +166,7 @@
<Compile Include="Menu\CBackground.cs" />
<Compile Include="Menu\CButton.cs" />
<Compile Include="Menu\CGraphics.cs" />
<Compile Include="Menu\CNameSelection.cs" />
<Compile Include="Menu\CLyric.cs" />
<Compile Include="Menu\CMenu.cs" />
<Compile Include="Menu\CInteraction.cs" />