Merge remote-tracking branch 'remotes/upstream/develop' into webcam
Conflicts: Vocaluxe/Screens/CScreenSing.cs Merged CScreenSing.cs manually
No files matched your search
@@ -23,6 +23,7 @@
|
||||
<TR_GAMEMODE_NORMAL>Normal</TR_GAMEMODE_NORMAL>
|
||||
<TR_GAMEMODE_DUET>Duett</TR_GAMEMODE_DUET>
|
||||
<TR_GAMEMODE_MEDLEY>Medley</TR_GAMEMODE_MEDLEY>
|
||||
<TR_GAMEMODE_SHORTSONG>Kurz-Version</TR_GAMEMODE_SHORTSONG>
|
||||
<!--General: Ratings-->
|
||||
<TR_RATING_VOCAL_HERO>Vocal Hero</TR_RATING_VOCAL_HERO>
|
||||
<TR_RATING_SUPERSTAR>Superstar</TR_RATING_SUPERSTAR>
|
||||
@@ -118,6 +119,16 @@
|
||||
<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_BUTTON_SING>Lied singen</TR_SCREENSONG_BUTTON_SING>
|
||||
<TR_SCREENSONG_BUTTON_PLAYLIST>Zur Playlist hinzufügen</TR_SCREENSONG_BUTTON_PLAYLIST>
|
||||
<TR_SCREENSONG_BUTTON_CANCEL>Schließen</TR_SCREENSONG_BUTTON_CANCEL>
|
||||
<TR_SCREENSONG_BUTTON_RANDOM>Zufälligen Song wählen</TR_SCREENSONG_BUTTON_RANDOM>
|
||||
<TR_SCREENSONG_BUTTON_RANDOMCAT>Zufällige Kategorie wählen</TR_SCREENSONG_BUTTON_RANDOMCAT>
|
||||
<TR_SCREENSONG_BUTTON_SINGALL>Alle Songs singen</TR_SCREENSONG_BUTTON_SINGALL>
|
||||
<TR_SCREENSONG_BUTTON_SINGALLVISIBLE>Alle sichtbaren Songs singen</TR_SCREENSONG_BUTTON_SINGALLVISIBLE>
|
||||
<TR_SCREENSONG_BUTTON_OPENPLAYLIST>Playlist öffnen</TR_SCREENSONG_BUTTON_OPENPLAYLIST>
|
||||
<TR_SCREENSONG_NEWPLAYLIST>Neue Playlist</TR_SCREENSONG_NEWPLAYLIST>
|
||||
<TR_SCREENSONG_SONGOPTIONS>Lied-Optionen</TR_SCREENSONG_SONGOPTIONS>
|
||||
<TR_SCREENSONG_SEARCH>Suche:</TR_SCREENSONG_SEARCH>
|
||||
<TR_SCREENSONG_NOLANGUAGE>Ohne Sprache</TR_SCREENSONG_NOLANGUAGE>
|
||||
<TR_SCREENSONG_NOYEAR>Ohne Jahr</TR_SCREENSONG_NOYEAR>
|
||||
@@ -130,11 +141,13 @@
|
||||
<TR_SCREENSING_PAUSE>Pause</TR_SCREENSING_PAUSE>
|
||||
<TR_SCREENSING_BUTTON_CANCEL>Lied beenden</TR_SCREENSING_BUTTON_CANCEL>
|
||||
<TR_SCREENSING_BUTTON_CONTINUE>Fortfahren</TR_SCREENSING_BUTTON_CONTINUE>
|
||||
<TR_SCREENSING_BUTTON_SKIP>Lied überspringen</TR_SCREENSING_BUTTON_SKIP>
|
||||
<!--ScreenScore-->
|
||||
<TR_SCREENSCORE_SCORES>Auswertung</TR_SCREENSCORE_SCORES>
|
||||
<TR_SCREENSCORE_RATING>Bewertung</TR_SCREENSCORE_RATING>
|
||||
<TR_SCREENSCORE_POINTS>Punkte</TR_SCREENSCORE_POINTS>
|
||||
<TR_SCREENSCORE_GAMEDIFFICULTY>Schwierigkeit</TR_SCREENSCORE_GAMEDIFFICULTY>
|
||||
<TR_SCREENSCORE_OVERALLSCORE>Gesamtpunktzahl</TR_SCREENSCORE_OVERALLSCORE>
|
||||
<!--ScreenHighscore-->
|
||||
<TR_SCREENHIGHSCORE_HIGHSCORE>Highscore</TR_SCREENHIGHSCORE_HIGHSCORE>
|
||||
<!--ScreenProfiles-->
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
<TR_GAMEMODE_NORMAL>Normal</TR_GAMEMODE_NORMAL>
|
||||
<TR_GAMEMODE_DUET>Duet</TR_GAMEMODE_DUET>
|
||||
<TR_GAMEMODE_MEDLEY>Medley</TR_GAMEMODE_MEDLEY>
|
||||
<TR_GAMEMODE_SHORTSONG>Short version</TR_GAMEMODE_SHORTSONG>
|
||||
<!--General: Ratings-->
|
||||
<TR_RATING_VOCAL_HERO>Vocal Hero</TR_RATING_VOCAL_HERO>
|
||||
<TR_RATING_SUPERSTAR>Superstar</TR_RATING_SUPERSTAR>
|
||||
@@ -118,6 +119,16 @@
|
||||
<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_BUTTON_SING>Sing</TR_SCREENSONG_BUTTON_SING>
|
||||
<TR_SCREENSONG_BUTTON_PLAYLIST>Add to playlist</TR_SCREENSONG_BUTTON_PLAYLIST>
|
||||
<TR_SCREENSONG_BUTTON_CANCEL>Close</TR_SCREENSONG_BUTTON_CANCEL>
|
||||
<TR_SCREENSONG_BUTTON_RANDOM>Select a random song</TR_SCREENSONG_BUTTON_RANDOM>
|
||||
<TR_SCREENSONG_BUTTON_RANDOMCAT>Select a random category</TR_SCREENSONG_BUTTON_RANDOMCAT>
|
||||
<TR_SCREENSONG_BUTTON_SINGALL>Sing all songs</TR_SCREENSONG_BUTTON_SINGALL>
|
||||
<TR_SCREENSONG_BUTTON_SINGALLVISIBLE>Sing all visible songs</TR_SCREENSONG_BUTTON_SINGALLVISIBLE>
|
||||
<TR_SCREENSONG_BUTTON_OPENPLAYLIST>Open playlist</TR_SCREENSONG_BUTTON_OPENPLAYLIST>
|
||||
<TR_SCREENSONG_NEWPLAYLIST>New Playlist</TR_SCREENSONG_NEWPLAYLIST>
|
||||
<TR_SCREENSONG_SONGOPTIONS>Song Options</TR_SCREENSONG_SONGOPTIONS>
|
||||
<TR_SCREENSONG_SEARCH>Search:</TR_SCREENSONG_SEARCH>
|
||||
<TR_SCREENSONG_NOLANGUAGE>No Language</TR_SCREENSONG_NOLANGUAGE>
|
||||
<TR_SCREENSONG_NOYEAR>No Year</TR_SCREENSONG_NOYEAR>
|
||||
@@ -130,11 +141,13 @@
|
||||
<TR_SCREENSING_PAUSE>Pause</TR_SCREENSING_PAUSE>
|
||||
<TR_SCREENSING_BUTTON_CANCEL>Stop singing</TR_SCREENSING_BUTTON_CANCEL>
|
||||
<TR_SCREENSING_BUTTON_CONTINUE>Continue</TR_SCREENSING_BUTTON_CONTINUE>
|
||||
<TR_SCREENSING_BUTTON_SKIP>Skip this song</TR_SCREENSING_BUTTON_SKIP>
|
||||
<!--ScreenScore-->
|
||||
<TR_SCREENSCORE_SCORES>Scores</TR_SCREENSCORE_SCORES>
|
||||
<TR_SCREENSCORE_RATING>Rating</TR_SCREENSCORE_RATING>
|
||||
<TR_SCREENSCORE_POINTS>Points</TR_SCREENSCORE_POINTS>
|
||||
<TR_SCREENSCORE_GAMEDIFFICULTY>Difficulty</TR_SCREENSCORE_GAMEDIFFICULTY>
|
||||
<TR_SCREENSCORE_OVERALLSCORE>Overall score</TR_SCREENSCORE_OVERALLSCORE>
|
||||
<!--ScreenHighscore-->
|
||||
<TR_SCREENHIGHSCORE_HIGHSCORE>Highscore</TR_SCREENHIGHSCORE_HIGHSCORE>
|
||||
<!--ScreenProfiles-->
|
||||
|
||||
@@ -117,6 +117,7 @@
|
||||
<TR_SCREENSONG_SEARCH>Rechercher:</TR_SCREENSONG_SEARCH>
|
||||
<TR_SCREENSONG_NOLANGUAGE>Pas de Langue</TR_SCREENSONG_NOLANGUAGE>
|
||||
<TR_SCREENSONG_NOYEAR>Pas d'Année</TR_SCREENSONG_NOYEAR>
|
||||
<TR_SCREENSONG_NEWPLAYLIST>TODO: New Playlist</TR_SCREENSONG_NEWPLAYLIST>
|
||||
<TR_SCREENSONG_NOGENRE>Pas de Genre</TR_SCREENSONG_NOGENRE>
|
||||
<TR_SCREENSONG_NOEDITION>Pas d'Edition</TR_SCREENSONG_NOEDITION>
|
||||
<TR_SCREENSONG_ALLSONGS>Toutes les chansons</TR_SCREENSONG_ALLSONGS>
|
||||
|
||||
@@ -116,6 +116,7 @@
|
||||
<TR_SCREENSONG_MENU>Selección de Canciones</TR_SCREENSONG_MENU>
|
||||
<TR_SCREENSONG_SEARCH>Buscar:</TR_SCREENSONG_SEARCH>
|
||||
<TR_SCREENSONG_NOLANGUAGE>Sin Idioma</TR_SCREENSONG_NOLANGUAGE>
|
||||
<TR_SCREENSONG_NEWPLAYLIST>TODO: New Playlist</TR_SCREENSONG_NEWPLAYLIST>
|
||||
<TR_SCREENSONG_NOYEAR>Sin Año</TR_SCREENSONG_NOYEAR>
|
||||
<TR_SCREENSONG_NOGENRE>Sin Género</TR_SCREENSONG_NOGENRE>
|
||||
<TR_SCREENSONG_NOEDITION>Sin Edición</TR_SCREENSONG_NOEDITION>
|
||||
|
||||
@@ -109,7 +109,8 @@ Vocaluxe.exe -ConfigFile MyConfig.xml -ScoreFile C:\Vocaluxe\Highscores\MyHighsc
|
||||
Songscreen
|
||||
[CTRL] + [R] to select a random song
|
||||
[F3] to open/close the song search menu
|
||||
[A] to sing all songs from a category
|
||||
[A] to sing all songs
|
||||
[SHIFT] + [A] to sing all songs from a category
|
||||
|
||||
|
||||
=================================
|
||||
|
||||
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
@@ -10,10 +10,10 @@
|
||||
<Y>0</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>1181</W>
|
||||
<H>50</H>
|
||||
<H>42</H>
|
||||
<!--<Color>: Static color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>Visible</Color>
|
||||
<Color>StaticColor</Color>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
@@ -22,11 +22,11 @@
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>CoverBackground</Skin>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
|
||||
<X>50</X>
|
||||
<Y>0</Y>
|
||||
<X>55</X>
|
||||
<Y>2</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>50</W>
|
||||
<H>50</H>
|
||||
<W>38</W>
|
||||
<H>38</H>
|
||||
<!--<Color>: Static color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>Visible</Color>
|
||||
@@ -36,14 +36,14 @@
|
||||
</StaticCover>
|
||||
<TextCurrentSong>
|
||||
<!--<X>, <Y>: Text position-->
|
||||
<X>630</X>
|
||||
<Y>0</Y>
|
||||
<X>410</X>
|
||||
<Y>4</Y>
|
||||
<!--<Z>: Text position-->
|
||||
<Z>0,00</Z>
|
||||
<!--<H>: Text height-->
|
||||
<H>50</H>
|
||||
<H>32</H>
|
||||
<!--<MaxW>: Maximum text width (if exists)-->
|
||||
<MaxW>650</MaxW>
|
||||
<MaxW>769</MaxW>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>StaticColor</Color>
|
||||
@@ -58,7 +58,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -70,11 +70,11 @@
|
||||
<!--<SkinSelected>: Texture name for selected button-->
|
||||
<SkinSelected>PlayIcon</SkinSelected>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
|
||||
<X>200</X>
|
||||
<Y>5</Y>
|
||||
<X>146</X>
|
||||
<Y>8</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>40</W>
|
||||
<H>40</H>
|
||||
<W>28</W>
|
||||
<H>28</H>
|
||||
<!--<Color>: Button color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonColor</Color>
|
||||
@@ -103,7 +103,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -119,11 +119,11 @@
|
||||
<!--<SkinSelected>: Texture name for selected button-->
|
||||
<SkinSelected>PauseIcon</SkinSelected>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
|
||||
<X>200</X>
|
||||
<Y>5</Y>
|
||||
<X>145</X>
|
||||
<Y>8</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>40</W>
|
||||
<H>40</H>
|
||||
<W>28</W>
|
||||
<H>28</H>
|
||||
<!--<Color>: Button color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonColor</Color>
|
||||
@@ -152,7 +152,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -168,11 +168,11 @@
|
||||
<!--<SkinSelected>: Texture name for selected button-->
|
||||
<SkinSelected>PreviousIcon</SkinSelected>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
|
||||
<X>125</X>
|
||||
<Y>0</Y>
|
||||
<X>100</X>
|
||||
<Y>2</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>50</W>
|
||||
<H>50</H>
|
||||
<W>38</W>
|
||||
<H>38</H>
|
||||
<!--<Color>: Button color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonColor</Color>
|
||||
@@ -201,7 +201,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -217,11 +217,11 @@
|
||||
<!--<SkinSelected>: Texture name for selected button-->
|
||||
<SkinSelected>NextIcon</SkinSelected>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
|
||||
<X>265</X>
|
||||
<Y>0</Y>
|
||||
<X>185</X>
|
||||
<Y>2</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>50</W>
|
||||
<H>50</H>
|
||||
<W>38</W>
|
||||
<H>38</H>
|
||||
<!--<Color>: Button color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonColor</Color>
|
||||
@@ -250,7 +250,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -266,11 +266,11 @@
|
||||
<!--<SkinSelected>: Texture name for selected button-->
|
||||
<SkinSelected>RepeatIcon</SkinSelected>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
|
||||
<X>330</X>
|
||||
<Y>0</Y>
|
||||
<X>225</X>
|
||||
<Y>2</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>50</W>
|
||||
<H>50</H>
|
||||
<W>38</W>
|
||||
<H>38</H>
|
||||
<!--<Color>: Button color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonColor</Color>
|
||||
@@ -299,7 +299,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -311,15 +311,15 @@
|
||||
</ButtonRepeat>
|
||||
<ButtonShowVideo>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>VideoIcon</Skin>
|
||||
<Skin>VideoIconCO</Skin>
|
||||
<!--<SkinSelected>: Texture name for selected button-->
|
||||
<SkinSelected>VideoIcon</SkinSelected>
|
||||
<SkinSelected>VideoIconCO</SkinSelected>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
|
||||
<X>405</X>
|
||||
<Y>0</Y>
|
||||
<X>270</X>
|
||||
<Y>2</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>50</W>
|
||||
<H>50</H>
|
||||
<W>38</W>
|
||||
<H>38</H>
|
||||
<!--<Color>: Button color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonColor</Color>
|
||||
@@ -348,7 +348,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -364,11 +364,11 @@
|
||||
<!--<SkinSelected>: Texture name for selected button-->
|
||||
<SkinSelected>DuetIcon</SkinSelected>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
|
||||
<X>555</X>
|
||||
<Y>0</Y>
|
||||
<X>360</X>
|
||||
<Y>2</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>50</W>
|
||||
<H>50</H>
|
||||
<W>38</W>
|
||||
<H>38</H>
|
||||
<!--<Color>: Button color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonColor</Color>
|
||||
@@ -397,7 +397,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -409,15 +409,15 @@
|
||||
</ButtonSing>
|
||||
<ButtonToBackgroundVideo>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>VideoIcon</Skin>
|
||||
<Skin>VideoIconBG</Skin>
|
||||
<!--<SkinSelected>: Texture name for selected button-->
|
||||
<SkinSelected>VideoIcon</SkinSelected>
|
||||
<SkinSelected>VideoIconBG</SkinSelected>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
|
||||
<X>480</X>
|
||||
<Y>0</Y>
|
||||
<X>315</X>
|
||||
<Y>2</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>50</W>
|
||||
<H>50</H>
|
||||
<W>38</W>
|
||||
<H>38</H>
|
||||
<!--<Color>: Button color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonColor</Color>
|
||||
@@ -446,7 +446,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENHIGHSCORE_HIGHSCORE</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -97,7 +97,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -126,7 +126,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -155,7 +155,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -184,7 +184,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -213,7 +213,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -242,7 +242,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -271,7 +271,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -300,7 +300,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -329,7 +329,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -358,7 +358,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -387,7 +387,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -416,7 +416,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -445,7 +445,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -474,7 +474,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -503,7 +503,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -532,7 +532,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -561,7 +561,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -590,7 +590,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -619,7 +619,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -648,7 +648,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -677,7 +677,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -706,7 +706,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -735,7 +735,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -764,7 +764,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -793,7 +793,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -822,7 +822,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -851,7 +851,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -880,7 +880,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -909,7 +909,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -938,7 +938,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -967,7 +967,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -996,7 +996,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1025,7 +1025,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1054,7 +1054,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1083,7 +1083,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1112,7 +1112,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1141,7 +1141,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1170,7 +1170,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1199,7 +1199,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1228,7 +1228,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1257,7 +1257,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1286,7 +1286,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_PROGRAM_NAME</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -81,7 +81,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENLOAD_LOADING</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -110,7 +110,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENMAIN_BUTTON_SING</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -125,7 +125,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENMAIN_BUTTON_OPTIONS</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -182,7 +182,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENMAIN_BUTTON_PROFILES</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -239,7 +239,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_BUTTON_EXIT</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<ScreenNames>
|
||||
<ScreenVersion>2</ScreenVersion>
|
||||
<ScreenVersion>3</ScreenVersion>
|
||||
<Background1>
|
||||
<!--<Type>: Background type: None, Color, Texture, Video-->
|
||||
<Type>Video</Type>
|
||||
@@ -276,7 +276,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENNAMES_MENU</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -306,7 +306,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -336,7 +336,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -365,7 +365,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -394,7 +394,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -423,7 +423,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -452,7 +452,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -481,7 +481,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -510,7 +510,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -555,7 +555,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_BUTTON_BACK</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -612,7 +612,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_BUTTON_START</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -695,6 +695,396 @@
|
||||
<!--<NumVisible>: Number of visible elements in the slide-->
|
||||
<NumVisible>6</NumVisible>
|
||||
</SelectSlidePlayerNumber>
|
||||
<SelectSlideDuetPlayer1>
|
||||
<!--<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>Button</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>Button</SkinHighlighted>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
|
||||
<X>41</X>
|
||||
<Y>105</Y>
|
||||
<Z>-4,00</Z>
|
||||
<W>88</W>
|
||||
<H>20</H>
|
||||
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
|
||||
<ArrowLeftX>20</ArrowLeftX>
|
||||
<ArrowLeftY>105</ArrowLeftY>
|
||||
<ArrowLeftZ>-4,01</ArrowLeftZ>
|
||||
<ArrowLeftW>20</ArrowLeftW>
|
||||
<ArrowLeftH>20</ArrowLeftH>
|
||||
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
|
||||
<ArrowRightX>20</ArrowRightX>
|
||||
<ArrowRightY>105</ArrowRightY>
|
||||
<ArrowRightZ>-4,01</ArrowRightZ>
|
||||
<ArrowRightW>20</ArrowRightW>
|
||||
<ArrowRightH>20</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>20,00</TextH>
|
||||
<!--<TextMaxW>: Maximum text width (if exists)-->
|
||||
<TextMaxW>86,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>
|
||||
</SelectSlideDuetPlayer1>
|
||||
<SelectSlideDuetPlayer2>
|
||||
<!--<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>Button</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>Button</SkinHighlighted>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
|
||||
<X>41</X>
|
||||
<Y>260</Y>
|
||||
<Z>-4,00</Z>
|
||||
<W>88</W>
|
||||
<H>20</H>
|
||||
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
|
||||
<ArrowLeftX>20</ArrowLeftX>
|
||||
<ArrowLeftY>260</ArrowLeftY>
|
||||
<ArrowLeftZ>-4,01</ArrowLeftZ>
|
||||
<ArrowLeftW>20</ArrowLeftW>
|
||||
<ArrowLeftH>20</ArrowLeftH>
|
||||
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
|
||||
<ArrowRightX>20</ArrowRightX>
|
||||
<ArrowRightY>260</ArrowRightY>
|
||||
<ArrowRightZ>-4,01</ArrowRightZ>
|
||||
<ArrowRightW>20</ArrowRightW>
|
||||
<ArrowRightH>20</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>20,00</TextH>
|
||||
<!--<TextMaxW>: Maximum text width (if exists)-->
|
||||
<TextMaxW>86,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>
|
||||
</SelectSlideDuetPlayer2>
|
||||
<SelectSlideDuetPlayer3>
|
||||
<!--<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>Button</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>Button</SkinHighlighted>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
|
||||
<X>41</X>
|
||||
<Y>415</Y>
|
||||
<Z>-4,00</Z>
|
||||
<W>88</W>
|
||||
<H>20</H>
|
||||
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
|
||||
<ArrowLeftX>20</ArrowLeftX>
|
||||
<ArrowLeftY>415</ArrowLeftY>
|
||||
<ArrowLeftZ>-4,01</ArrowLeftZ>
|
||||
<ArrowLeftW>20</ArrowLeftW>
|
||||
<ArrowLeftH>20</ArrowLeftH>
|
||||
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
|
||||
<ArrowRightX>20</ArrowRightX>
|
||||
<ArrowRightY>415</ArrowRightY>
|
||||
<ArrowRightZ>-4,01</ArrowRightZ>
|
||||
<ArrowRightW>20</ArrowRightW>
|
||||
<ArrowRightH>20</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>20,00</TextH>
|
||||
<!--<TextMaxW>: Maximum text width (if exists)-->
|
||||
<TextMaxW>86,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>
|
||||
</SelectSlideDuetPlayer3>
|
||||
<SelectSlideDuetPlayer4>
|
||||
<!--<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>Button</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>Button</SkinHighlighted>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
|
||||
<X>1152</X>
|
||||
<Y>105</Y>
|
||||
<Z>-4,00</Z>
|
||||
<W>88</W>
|
||||
<H>20</H>
|
||||
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
|
||||
<ArrowLeftX>1240</ArrowLeftX>
|
||||
<ArrowLeftY>105</ArrowLeftY>
|
||||
<ArrowLeftZ>-4,01</ArrowLeftZ>
|
||||
<ArrowLeftW>20</ArrowLeftW>
|
||||
<ArrowLeftH>20</ArrowLeftH>
|
||||
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
|
||||
<ArrowRightX>1240</ArrowRightX>
|
||||
<ArrowRightY>105</ArrowRightY>
|
||||
<ArrowRightZ>-4,01</ArrowRightZ>
|
||||
<ArrowRightW>20</ArrowRightW>
|
||||
<ArrowRightH>20</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>20,00</TextH>
|
||||
<!--<TextMaxW>: Maximum text width (if exists)-->
|
||||
<TextMaxW>86,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>
|
||||
</SelectSlideDuetPlayer4>
|
||||
<SelectSlideDuetPlayer5>
|
||||
<!--<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>Button</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>Button</SkinHighlighted>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
|
||||
<X>1152</X>
|
||||
<Y>260</Y>
|
||||
<Z>-4,00</Z>
|
||||
<W>88</W>
|
||||
<H>20</H>
|
||||
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
|
||||
<ArrowLeftX>1240</ArrowLeftX>
|
||||
<ArrowLeftY>260</ArrowLeftY>
|
||||
<ArrowLeftZ>-4,01</ArrowLeftZ>
|
||||
<ArrowLeftW>20</ArrowLeftW>
|
||||
<ArrowLeftH>20</ArrowLeftH>
|
||||
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
|
||||
<ArrowRightX>1240</ArrowRightX>
|
||||
<ArrowRightY>260</ArrowRightY>
|
||||
<ArrowRightZ>-4,01</ArrowRightZ>
|
||||
<ArrowRightW>20</ArrowRightW>
|
||||
<ArrowRightH>20</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>20,00</TextH>
|
||||
<!--<TextMaxW>: Maximum text width (if exists)-->
|
||||
<TextMaxW>86,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>
|
||||
</SelectSlideDuetPlayer5>
|
||||
<SelectSlideDuetPlayer6>
|
||||
<!--<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>Button</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>Button</SkinHighlighted>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
|
||||
<X>1152</X>
|
||||
<Y>415</Y>
|
||||
<Z>-4,00</Z>
|
||||
<W>88</W>
|
||||
<H>20</H>
|
||||
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
|
||||
<ArrowLeftX>1240</ArrowLeftX>
|
||||
<ArrowLeftY>415</ArrowLeftY>
|
||||
<ArrowLeftZ>-4,01</ArrowLeftZ>
|
||||
<ArrowLeftW>20</ArrowLeftW>
|
||||
<ArrowLeftH>20</ArrowLeftH>
|
||||
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
|
||||
<ArrowRightX>1240</ArrowRightX>
|
||||
<ArrowRightY>415</ArrowRightY>
|
||||
<ArrowRightZ>-4,01</ArrowRightZ>
|
||||
<ArrowRightW>20</ArrowRightW>
|
||||
<ArrowRightH>20</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>20,00</TextH>
|
||||
<!--<TextMaxW>: Maximum text width (if exists)-->
|
||||
<TextMaxW>86,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>
|
||||
</SelectSlideDuetPlayer6>
|
||||
<NameSelection>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: NameSelection position, width and height-->
|
||||
<X>172</X>
|
||||
@@ -738,5 +1128,167 @@
|
||||
</Name>
|
||||
</Tiles>
|
||||
</NameSelection>
|
||||
<EqualizerPlayer1>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Invisible</Skin>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Equalizer position, width and height-->
|
||||
<X>21</X>
|
||||
<Y>152</Y>
|
||||
<Z>-4,00</Z>
|
||||
<W>108</W>
|
||||
<H>60</H>
|
||||
<!--<NumBars>: Number of equalizer-elements.-->
|
||||
<NumBars>8</NumBars>
|
||||
<!--<Space>: Space between equalizer-elements.-->
|
||||
<Space>2,00</Space>
|
||||
<!--<Style>: Style of equalizer-elements: Collums-->
|
||||
<Style>Collums</Style>
|
||||
<!--<DrawNegative>: Draw negative values: TR_CONFIG_OFF, TR_CONFIG_ON-->
|
||||
<DrawNegative>TR_CONFIG_OFF</DrawNegative>
|
||||
<!--<Color>: Equalizer color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>Player1Dim2</Color>
|
||||
<!--<MaxColor>: Equalizer color for maximal volume from ColorScheme (high priority)-->
|
||||
<!--or <MaxR>, <MaxG>, <MaxB>, <MaxA> (lower priority)-->
|
||||
<MaxColor>Player1Dim2</MaxColor>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</EqualizerPlayer1>
|
||||
<EqualizerPlayer2>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Invisible</Skin>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Equalizer position, width and height-->
|
||||
<X>21</X>
|
||||
<Y>307</Y>
|
||||
<Z>-4,00</Z>
|
||||
<W>108</W>
|
||||
<H>60</H>
|
||||
<!--<NumBars>: Number of equalizer-elements.-->
|
||||
<NumBars>8</NumBars>
|
||||
<!--<Space>: Space between equalizer-elements.-->
|
||||
<Space>2,00</Space>
|
||||
<!--<Style>: Style of equalizer-elements: Collums-->
|
||||
<Style>Collums</Style>
|
||||
<!--<DrawNegative>: Draw negative values: TR_CONFIG_OFF, TR_CONFIG_ON-->
|
||||
<DrawNegative>TR_CONFIG_OFF</DrawNegative>
|
||||
<!--<Color>: Equalizer color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>Player2Dim2</Color>
|
||||
<!--<MaxColor>: Equalizer color for maximal volume from ColorScheme (high priority)-->
|
||||
<!--or <MaxR>, <MaxG>, <MaxB>, <MaxA> (lower priority)-->
|
||||
<MaxColor>Player2Dim2</MaxColor>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</EqualizerPlayer2>
|
||||
<EqualizerPlayer3>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Invisible</Skin>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Equalizer position, width and height-->
|
||||
<X>21</X>
|
||||
<Y>467</Y>
|
||||
<Z>-4,00</Z>
|
||||
<W>108</W>
|
||||
<H>60</H>
|
||||
<!--<NumBars>: Number of equalizer-elements.-->
|
||||
<NumBars>8</NumBars>
|
||||
<!--<Space>: Space between equalizer-elements.-->
|
||||
<Space>2,00</Space>
|
||||
<!--<Style>: Style of equalizer-elements: Collums-->
|
||||
<Style>Collums</Style>
|
||||
<!--<DrawNegative>: Draw negative values: TR_CONFIG_OFF, TR_CONFIG_ON-->
|
||||
<DrawNegative>TR_CONFIG_OFF</DrawNegative>
|
||||
<!--<Color>: Equalizer color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>Player3Dim2</Color>
|
||||
<!--<MaxColor>: Equalizer color for maximal volume from ColorScheme (high priority)-->
|
||||
<!--or <MaxR>, <MaxG>, <MaxB>, <MaxA> (lower priority)-->
|
||||
<MaxColor>Player3Dim2</MaxColor>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</EqualizerPlayer3>
|
||||
<EqualizerPlayer4>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Invisible</Skin>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Equalizer position, width and height-->
|
||||
<X>1153</X>
|
||||
<Y>152</Y>
|
||||
<Z>-4,00</Z>
|
||||
<W>108</W>
|
||||
<H>60</H>
|
||||
<!--<NumBars>: Number of equalizer-elements.-->
|
||||
<NumBars>8</NumBars>
|
||||
<!--<Space>: Space between equalizer-elements.-->
|
||||
<Space>2,00</Space>
|
||||
<!--<Style>: Style of equalizer-elements: Collums-->
|
||||
<Style>Collums</Style>
|
||||
<!--<DrawNegative>: Draw negative values: TR_CONFIG_OFF, TR_CONFIG_ON-->
|
||||
<DrawNegative>TR_CONFIG_OFF</DrawNegative>
|
||||
<!--<Color>: Equalizer color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>Player4Dim2</Color>
|
||||
<!--<MaxColor>: Equalizer color for maximal volume from ColorScheme (high priority)-->
|
||||
<!--or <MaxR>, <MaxG>, <MaxB>, <MaxA> (lower priority)-->
|
||||
<MaxColor>Player4Dim2</MaxColor>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</EqualizerPlayer4>
|
||||
<EqualizerPlayer5>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Invisible</Skin>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Equalizer position, width and height-->
|
||||
<X>1153</X>
|
||||
<Y>307</Y>
|
||||
<Z>-4,00</Z>
|
||||
<W>108</W>
|
||||
<H>60</H>
|
||||
<!--<NumBars>: Number of equalizer-elements.-->
|
||||
<NumBars>8</NumBars>
|
||||
<!--<Space>: Space between equalizer-elements.-->
|
||||
<Space>2,00</Space>
|
||||
<!--<Style>: Style of equalizer-elements: Collums-->
|
||||
<Style>Collums</Style>
|
||||
<!--<DrawNegative>: Draw negative values: TR_CONFIG_OFF, TR_CONFIG_ON-->
|
||||
<DrawNegative>TR_CONFIG_OFF</DrawNegative>
|
||||
<!--<Color>: Equalizer color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>Player5Dim2</Color>
|
||||
<!--<MaxColor>: Equalizer color for maximal volume from ColorScheme (high priority)-->
|
||||
<!--or <MaxR>, <MaxG>, <MaxB>, <MaxA> (lower priority)-->
|
||||
<MaxColor>Player5Dim2</MaxColor>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</EqualizerPlayer5>
|
||||
<EqualizerPlayer6>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Invisible</Skin>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Equalizer position, width and height-->
|
||||
<X>1153</X>
|
||||
<Y>467</Y>
|
||||
<Z>-4,00</Z>
|
||||
<W>108</W>
|
||||
<H>60</H>
|
||||
<!--<NumBars>: Number of equalizer-elements.-->
|
||||
<NumBars>8</NumBars>
|
||||
<!--<Space>: Space between equalizer-elements.-->
|
||||
<Space>2,00</Space>
|
||||
<!--<Style>: Style of equalizer-elements: Collums-->
|
||||
<Style>Collums</Style>
|
||||
<!--<DrawNegative>: Draw negative values: TR_CONFIG_OFF, TR_CONFIG_ON-->
|
||||
<DrawNegative>TR_CONFIG_OFF</DrawNegative>
|
||||
<!--<Color>: Equalizer color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>Player6Dim2</Color>
|
||||
<!--<MaxColor>: Equalizer color for maximal volume from ColorScheme (high priority)-->
|
||||
<!--or <MaxR>, <MaxG>, <MaxB>, <MaxA> (lower priority)-->
|
||||
<MaxColor>Player6Dim2</MaxColor>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</EqualizerPlayer6>
|
||||
</ScreenNames>
|
||||
</root>
|
||||
@@ -52,7 +52,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENO_OPTIONS</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -97,7 +97,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENO_BUTTON_GAME</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -154,7 +154,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCRENNO_BUTTON_SOUND</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -211,7 +211,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENO_BUTTON_RECORD</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -268,7 +268,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENO_BUTTON_VIDEO</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -325,7 +325,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENO_BUTTON_LYRICS</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -382,7 +382,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENO_BUTTON_THEME</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOGAME_OPTIONS</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -177,7 +177,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOGAME_LANGUAGE</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -206,7 +206,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOGAME_DEBUGLEVEL</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -235,7 +235,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOGAME_SONGMENU</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -264,7 +264,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOGAME_SONGSORTING</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -293,7 +293,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOGAME_TABS</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -322,7 +322,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOGAME_TIMERMODE</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -367,7 +367,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_BUTTON_BACK</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOLYRICS_OPTIONS</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -81,7 +81,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOLYRICS_STYLE</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -110,7 +110,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOLYRICS_ONTOP</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -155,7 +155,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_BUTTON_BACK</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<ScreenOptionsRecord>
|
||||
<ScreenVersion>1</ScreenVersion>
|
||||
<ScreenVersion>2</ScreenVersion>
|
||||
<Background1>
|
||||
<!--<Type>: Background type: None, Color, Texture, Video-->
|
||||
<Type>Video</Type>
|
||||
@@ -180,7 +180,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENORECORD_OPTIONS</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -209,7 +209,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENORECORD_DEVICE</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -238,7 +238,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENORECORD_INPUT</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -267,7 +267,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENORECORD_CHANNEL_1</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -296,7 +296,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENORECORD_CHANNEL_2</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -325,7 +325,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENORECORD_MIC_DELAY</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -355,7 +355,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENORECORD_MIC_WARNING</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -384,7 +384,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -413,7 +413,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -458,7 +458,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_BUTTON_BACK</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -515,7 +515,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENORECORD_BUTTON_DELAYTEST</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -858,5 +858,67 @@
|
||||
<!--<NumVisible>: Number of visible elements in the slide-->
|
||||
<NumVisible>5</NumVisible>
|
||||
</SelectSlideDelay>
|
||||
<EqualizerChannel1>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Invisible</Skin>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Equalizer position, width and height-->
|
||||
<X>50</X>
|
||||
<Y>400</Y>
|
||||
<Z>-1,00</Z>
|
||||
<W>230</W>
|
||||
<H>150</H>
|
||||
<!--<NumBars>: Number of equalizer-elements.-->
|
||||
<NumBars>10</NumBars>
|
||||
<!--<Space>: Space between equalizer-elements.-->
|
||||
<Space>2,00</Space>
|
||||
<!--<Style>: Style of equalizer-elements: Collums-->
|
||||
<Style>Collums</Style>
|
||||
<!--<DrawNegative>: Draw negative values: TR_CONFIG_OFF, TR_CONFIG_ON-->
|
||||
<DrawNegative>TR_CONFIG_OFF</DrawNegative>
|
||||
<!--<Color>: Equalizer color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonColor</Color>
|
||||
<!--<MaxColor>: Equalizer color for maximal volume from ColorScheme (high priority)-->
|
||||
<!--or <MaxR>, <MaxG>, <MaxB>, <MaxA> (lower priority)-->
|
||||
<MaxColor>ButtonColor</MaxColor>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
<Reflection>
|
||||
<Space>10</Space>
|
||||
<Height>26</Height>
|
||||
</Reflection>
|
||||
</EqualizerChannel1>
|
||||
<EqualizerChannel2>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Invisible</Skin>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Equalizer position, width and height-->
|
||||
<X>400</X>
|
||||
<Y>400</Y>
|
||||
<Z>-1,00</Z>
|
||||
<W>230</W>
|
||||
<H>150</H>
|
||||
<!--<NumBars>: Number of equalizer-elements.-->
|
||||
<NumBars>10</NumBars>
|
||||
<!--<Space>: Space between equalizer-elements.-->
|
||||
<Space>2,00</Space>
|
||||
<!--<Style>: Style of equalizer-elements: Collums-->
|
||||
<Style>Collums</Style>
|
||||
<!--<DrawNegative>: Draw negative values: TR_CONFIG_OFF, TR_CONFIG_ON-->
|
||||
<DrawNegative>TR_CONFIG_OFF</DrawNegative>
|
||||
<!--<Color>: Equalizer color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonColor</Color>
|
||||
<!--<MaxColor>: Equalizer color for maximal volume from ColorScheme (high priority)-->
|
||||
<!--or <MaxR>, <MaxG>, <MaxB>, <MaxA> (lower priority)-->
|
||||
<MaxColor>ButtonColor</MaxColor>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
<Reflection>
|
||||
<Space>10</Space>
|
||||
<Height>26</Height>
|
||||
</Reflection>
|
||||
</EqualizerChannel2>
|
||||
</ScreenOptionsRecord>
|
||||
</root>
|
||||
@@ -52,7 +52,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOSOUND_OPTIONS</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -81,7 +81,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOSOUND_BACKGROUNDMUSIC</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -110,7 +110,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOSOUND_BACKGROUNDMUSICVOLUME</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -139,7 +139,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -184,7 +184,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_BUTTON_BACK</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
|
||||
@@ -180,7 +180,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOTHEME_OPTIONS</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -209,7 +209,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOTHEME_THEME</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -238,7 +238,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOTHEME_SKIN</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -267,7 +267,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOTHEME_COVERTHEME</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -296,7 +296,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOTHEME_NOTELINES</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -325,7 +325,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOTHEME_TONEHELPER</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -354,7 +354,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOTHEME_TIMERLOOK</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -383,7 +383,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOTHEME_FADEINFO</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -412,7 +412,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOTHEME_COVERLOADING</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -457,7 +457,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_BUTTON_BACK</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOVIDEO_OPTIONS</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -129,7 +129,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOVIDEO_VIDEOBACKGROUNDS</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -158,7 +158,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOVIDEO_VIDEOPREVIEW</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -187,7 +187,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOVIDEO_VIDEOINSONGS</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -216,7 +216,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENO_VIDEO_VIDEOSTOBACKGROUND</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -319,7 +319,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_BUTTON_BACK</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENPROFILES_PROFILES</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -177,7 +177,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENPROFILES_PLAYERNAME</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -206,7 +206,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENPROFILES_GAMEDIFFICULTY</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -235,7 +235,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENPROFILES_AVATAR</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -264,7 +264,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENPROFILES_GUESTPROFILE</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -293,7 +293,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENPROFILES_ACTIVE</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -338,7 +338,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -387,7 +387,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_BUTTON_BACK</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -444,7 +444,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_BUTTON_SAVE</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -501,7 +501,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENPROFILES_BUTTON_NEW</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -558,7 +558,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENPROFILES_BUTTON_DELETE</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
|
||||
@@ -1226,7 +1226,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENSCORE_SCORES</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1255,7 +1255,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1284,7 +1284,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1313,7 +1313,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1342,7 +1342,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1371,7 +1371,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1400,7 +1400,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1429,7 +1429,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1458,7 +1458,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1487,7 +1487,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1516,7 +1516,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1545,7 +1545,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1574,7 +1574,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1603,7 +1603,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1632,7 +1632,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1661,7 +1661,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1690,7 +1690,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1719,7 +1719,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1748,7 +1748,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1777,7 +1777,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1806,7 +1806,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1835,7 +1835,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1864,7 +1864,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1893,7 +1893,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1922,7 +1922,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1951,7 +1951,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1980,7 +1980,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2009,7 +2009,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2039,7 +2039,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2068,7 +2068,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2097,7 +2097,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2126,7 +2126,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2156,7 +2156,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2185,7 +2185,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2214,7 +2214,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2243,7 +2243,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2273,7 +2273,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2302,7 +2302,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2331,7 +2331,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2360,7 +2360,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2390,7 +2390,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2419,7 +2419,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2449,7 +2449,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2479,7 +2479,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2509,7 +2509,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2539,7 +2539,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2569,7 +2569,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2599,7 +2599,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2629,7 +2629,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2659,7 +2659,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2689,7 +2689,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2719,7 +2719,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2749,7 +2749,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2779,7 +2779,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2809,7 +2809,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2839,7 +2839,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2869,7 +2869,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2899,7 +2899,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2929,7 +2929,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2959,7 +2959,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2989,7 +2989,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3019,7 +3019,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3049,7 +3049,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3079,7 +3079,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3109,7 +3109,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3139,7 +3139,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3169,7 +3169,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3199,7 +3199,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3229,7 +3229,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3259,7 +3259,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3289,7 +3289,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3319,7 +3319,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3349,7 +3349,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3379,7 +3379,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3409,7 +3409,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3439,7 +3439,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3469,7 +3469,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3499,7 +3499,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3529,7 +3529,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3559,7 +3559,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3589,7 +3589,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3619,7 +3619,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3649,7 +3649,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3679,7 +3679,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3709,7 +3709,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -3739,7 +3739,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<ScreenSing>
|
||||
<ScreenVersion>4</ScreenVersion>
|
||||
<ScreenVersion>5</ScreenVersion>
|
||||
<Background1>
|
||||
<!--<Type>: Background type: None, Color, Texture, Video-->
|
||||
<Type>None</Type>
|
||||
@@ -982,7 +982,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1011,7 +1011,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1040,12 +1040,70 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENSING_PAUSE</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</TextPause>
|
||||
<TextDuetName1>
|
||||
<!--<X>, <Y>: Text position-->
|
||||
<X>40</X>
|
||||
<Y>80</Y>
|
||||
<!--<Z>: Text position-->
|
||||
<Z>-1,00</Z>
|
||||
<!--<H>: Text height-->
|
||||
<H>35</H>
|
||||
<!--<MaxW>: Maximum text width (if exists)-->
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>TextSColor</Color>
|
||||
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>TextSColor</SColor>
|
||||
<!--<Align>: Text align horizontal: Left, Center, Right-->
|
||||
<Align>Left</Align>
|
||||
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
|
||||
<HAlign>Center</HAlign>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</TextDuetName1>
|
||||
<TextDuetName2>
|
||||
<!--<X>, <Y>: Text position-->
|
||||
<X>40</X>
|
||||
<Y>585</Y>
|
||||
<!--<Z>: Text position-->
|
||||
<Z>-1,00</Z>
|
||||
<!--<H>: Text height-->
|
||||
<H>35</H>
|
||||
<!--<MaxW>: Maximum text width (if exists)-->
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>TextSColor</Color>
|
||||
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>TextSColor</SColor>
|
||||
<!--<Align>: Text align horizontal: Left, Center, Right-->
|
||||
<Align>Left</Align>
|
||||
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
|
||||
<HAlign>Center</HAlign>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</TextDuetName2>
|
||||
<TextScoreP1N1>
|
||||
<!--<X>, <Y>: Text position-->
|
||||
<X>1240</X>
|
||||
@@ -1069,7 +1127,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1101,7 +1159,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1130,7 +1188,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1162,7 +1220,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1191,7 +1249,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1223,7 +1281,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1252,7 +1310,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1284,7 +1342,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1313,7 +1371,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1345,7 +1403,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1374,7 +1432,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1406,7 +1464,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1435,7 +1493,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1467,7 +1525,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1496,7 +1554,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1528,7 +1586,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1557,7 +1615,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1589,7 +1647,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1618,7 +1676,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1650,7 +1708,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1679,7 +1737,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1711,7 +1769,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1740,7 +1798,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1772,7 +1830,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1801,7 +1859,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1833,7 +1891,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1862,7 +1920,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1894,7 +1952,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1923,7 +1981,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1955,7 +2013,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -1984,7 +2042,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2016,7 +2074,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2045,7 +2103,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2077,7 +2135,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2106,7 +2164,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2138,7 +2196,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2167,7 +2225,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2199,7 +2257,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2228,7 +2286,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2260,7 +2318,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2289,7 +2347,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2321,7 +2379,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text />
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -2333,7 +2391,7 @@
|
||||
<!--<SkinSelected>: Texture name for selected button-->
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
|
||||
<X>670</X>
|
||||
<X>775</X>
|
||||
<Y>300</Y>
|
||||
<Z>-2,11</Z>
|
||||
<W>150</W>
|
||||
@@ -2366,7 +2424,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENSING_BUTTON_CANCEL</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -2390,7 +2448,7 @@
|
||||
<!--<SkinSelected>: Texture name for selected button-->
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
|
||||
<X>460</X>
|
||||
<X>355</X>
|
||||
<Y>300</Y>
|
||||
<Z>-2,11</Z>
|
||||
<W>150</W>
|
||||
@@ -2423,7 +2481,7 @@
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENSING_BUTTON_CONTINUE</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
@@ -2441,6 +2499,63 @@
|
||||
<Height>26</Height>
|
||||
</SReflection>
|
||||
</ButtonContinue>
|
||||
<ButtonSkip>
|
||||
<!--<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>565</X>
|
||||
<Y>300</Y>
|
||||
<Z>-2,11</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>ButtonTextColor</Color>
|
||||
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>ButtonTextSColor</SColor>
|
||||
<!--<Align>: Text align horizontal: Left, Center, Right-->
|
||||
<Align>Center</Align>
|
||||
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
|
||||
<HAlign>Center</HAlign>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENSING_BUTTON_SKIP</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
<Reflection>
|
||||
<Space>10</Space>
|
||||
<Height>26</Height>
|
||||
</Reflection>
|
||||
<!--<SReflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space of selected button-->
|
||||
<!-- <Height>: Reflection Height of selected button-->
|
||||
<SReflection>
|
||||
<Space>10</Space>
|
||||
<Height>26</Height>
|
||||
</SReflection>
|
||||
</ButtonSkip>
|
||||
<LyricMain>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Lyric position, width and height-->
|
||||
<X>637</X>
|
||||
|
||||
|
After Width: | Height: | Size: 4.5 KiB |
@@ -130,6 +130,12 @@
|
||||
<B>0,969</B>
|
||||
<A>1,000</A>
|
||||
</StaticColor>
|
||||
<StaticColorAlpha>
|
||||
<R>0,675</R>
|
||||
<G>0,890</G>
|
||||
<B>0,969</B>
|
||||
<A>0,500</A>
|
||||
</StaticColorAlpha>
|
||||
<StaticWarningColor>
|
||||
<R>0,675</R>
|
||||
<G>0,890</G>
|
||||
@@ -166,6 +172,12 @@
|
||||
<B>0,969</B>
|
||||
<A>1,000</A>
|
||||
</SelectSlideColor>
|
||||
<SelectSlideColorAlpha>
|
||||
<R>0,675</R>
|
||||
<G>0,890</G>
|
||||
<B>0,969</B>
|
||||
<A>0,500</A>
|
||||
</SelectSlideColorAlpha>
|
||||
<SelectSlideHColor>
|
||||
<R>0,675</R>
|
||||
<G>0,890</G>
|
||||
@@ -305,6 +317,10 @@
|
||||
<EnergyBeam>EnergyBeam.png</EnergyBeam>
|
||||
<DuetIcon>DuetIcon.png</DuetIcon>
|
||||
<VideoIcon>VideoIcon.png</VideoIcon>
|
||||
<VideoIconCO>VideoIconCO.png</VideoIconCO>
|
||||
<VideoIconBG>VideoIconBG.png</VideoIconBG>
|
||||
<MedleyCalcIcon>MedleyCalcIcon.png</MedleyCalcIcon>
|
||||
<MedleyTagIcon>MedleyTagIcon.png</MedleyTagIcon>
|
||||
<Invisible>Invisible.png</Invisible>
|
||||
<PlayerSelector>PlayerSelector.png</PlayerSelector>
|
||||
<PreviousIcon>PreviousIcon.png</PreviousIcon>
|
||||
@@ -312,6 +328,11 @@
|
||||
<PlayIcon>PlayIcon.png</PlayIcon>
|
||||
<PauseIcon>PauseIcon.png</PauseIcon>
|
||||
<RepeatIcon>RepeatIcon.png</RepeatIcon>
|
||||
<SongMenuBG>SongMenuBG.png</SongMenuBG>
|
||||
<CloseIcon>Close.png</CloseIcon>
|
||||
<DeleteIcon>Delete.png</DeleteIcon>
|
||||
<SaveIcon>Save.png</SaveIcon>
|
||||
<SingIcon>Sing.png</SingIcon>
|
||||
</Skins>
|
||||
<Videos>
|
||||
<BG_Video>[Blue]BG_Video.mp4</BG_Video>
|
||||
|
||||
@@ -130,6 +130,12 @@
|
||||
<B>0,674</B>
|
||||
<A>1,000</A>
|
||||
</StaticColor>
|
||||
<StaticColorAlpha>
|
||||
<R>0,709</R>
|
||||
<G>0,968</G>
|
||||
<B>0,674</B>
|
||||
<A>0,500</A>
|
||||
</StaticColorAlpha>
|
||||
<StaticWarningColor>
|
||||
<R>0,709</R>
|
||||
<G>0,968</G>
|
||||
@@ -305,6 +311,10 @@
|
||||
<EnergyBeam>EnergyBeam.png</EnergyBeam>
|
||||
<DuetIcon>DuetIcon.png</DuetIcon>
|
||||
<VideoIcon>VideoIcon.png</VideoIcon>
|
||||
<VideoIconCO>VideoIconCO.png</VideoIconCO>
|
||||
<VideoIconBG>VideoIconBG.png</VideoIconBG>
|
||||
<MedleyCalcIcon>MedleyCalcIcon.png</MedleyCalcIcon>
|
||||
<MedleyTagIcon>MedleyTagIcon.png</MedleyTagIcon>
|
||||
<Invisible>Invisible.png</Invisible>
|
||||
<PlayerSelector>PlayerSelector.png</PlayerSelector>
|
||||
<PreviousIcon>PreviousIcon.png</PreviousIcon>
|
||||
@@ -312,6 +322,11 @@
|
||||
<PlayIcon>PlayIcon.png</PlayIcon>
|
||||
<PauseIcon>PauseIcon.png</PauseIcon>
|
||||
<RepeatIcon>RepeatIcon.png</RepeatIcon>
|
||||
<SongMenuBG>SongMenuBG.png</SongMenuBG>
|
||||
<CloseIcon>Close.png</CloseIcon>
|
||||
<DeleteIcon>Delete.png</DeleteIcon>
|
||||
<SaveIcon>Save.png</SaveIcon>
|
||||
<SingIcon>Sing.png</SingIcon>
|
||||
</Skins>
|
||||
<Videos>
|
||||
<BG_Video>[Green]BG_Video.mp4</BG_Video>
|
||||
|
||||
@@ -130,6 +130,12 @@
|
||||
<B>0,674</B>
|
||||
<A>1,000</A>
|
||||
</StaticColor>
|
||||
<StaticColorAlpha>
|
||||
<R>0,968</R>
|
||||
<G>0,674</G>
|
||||
<B>0,674</B>
|
||||
<A>0,500</A>
|
||||
</StaticColorAlpha>
|
||||
<StaticWarningColor>
|
||||
<R>0,968</R>
|
||||
<G>0,674</G>
|
||||
@@ -305,6 +311,10 @@
|
||||
<EnergyBeam>EnergyBeam.png</EnergyBeam>
|
||||
<DuetIcon>DuetIcon.png</DuetIcon>
|
||||
<VideoIcon>VideoIcon.png</VideoIcon>
|
||||
<VideoIconCO>VideoIconCO.png</VideoIconCO>
|
||||
<VideoIconBG>VideoIconBG.png</VideoIconBG>
|
||||
<MedleyCalcIcon>MedleyCalcIcon.png</MedleyCalcIcon>
|
||||
<MedleyTagIcon>MedleyTagIcon.png</MedleyTagIcon>
|
||||
<Invisible>Invisible.png</Invisible>
|
||||
<PlayerSelector>PlayerSelector.png</PlayerSelector>
|
||||
<PreviousIcon>PreviousIcon.png</PreviousIcon>
|
||||
@@ -312,6 +322,11 @@
|
||||
<PlayIcon>PlayIcon.png</PlayIcon>
|
||||
<PauseIcon>PauseIcon.png</PauseIcon>
|
||||
<RepeatIcon>RepeatIcon.png</RepeatIcon>
|
||||
<SongMenuBG>SongMenuBG.png</SongMenuBG>
|
||||
<CloseIcon>Close.png</CloseIcon>
|
||||
<DeleteIcon>Delete.png</DeleteIcon>
|
||||
<SaveIcon>Save.png</SaveIcon>
|
||||
<SingIcon>Sing.png</SingIcon>
|
||||
</Skins>
|
||||
<Videos>
|
||||
<BG_Video>[Red]BG_Video.mp4</BG_Video>
|
||||
|
||||
@@ -130,6 +130,12 @@
|
||||
<B>0,674</B>
|
||||
<A>1,000</A>
|
||||
</StaticColor>
|
||||
<StaticColorAlpha>
|
||||
<R>0,968</R>
|
||||
<G>0,956</G>
|
||||
<B>0,674</B>
|
||||
<A>0,500</A>
|
||||
</StaticColorAlpha>
|
||||
<StaticWarningColor>
|
||||
<R>0,968</R>
|
||||
<G>0,956</G>
|
||||
@@ -305,6 +311,10 @@
|
||||
<EnergyBeam>EnergyBeam.png</EnergyBeam>
|
||||
<DuetIcon>DuetIcon.png</DuetIcon>
|
||||
<VideoIcon>VideoIcon.png</VideoIcon>
|
||||
<VideoIconCO>VideoIconCO.png</VideoIconCO>
|
||||
<VideoIconBG>VideoIconBG.png</VideoIconBG>
|
||||
<MedleyCalcIcon>MedleyCalcIcon.png</MedleyCalcIcon>
|
||||
<MedleyTagIcon>MedleyTagIcon.png</MedleyTagIcon>
|
||||
<Invisible>Invisible.png</Invisible>
|
||||
<PlayerSelector>PlayerSelector.png</PlayerSelector>
|
||||
<PreviousIcon>PreviousIcon.png</PreviousIcon>
|
||||
@@ -312,6 +322,11 @@
|
||||
<PlayIcon>PlayIcon.png</PlayIcon>
|
||||
<PauseIcon>PauseIcon.png</PauseIcon>
|
||||
<RepeatIcon>RepeatIcon.png</RepeatIcon>
|
||||
<SongMenuBG>SongMenuBG.png</SongMenuBG>
|
||||
<CloseIcon>Close.png</CloseIcon>
|
||||
<DeleteIcon>Delete.png</DeleteIcon>
|
||||
<SaveIcon>Save.png</SaveIcon>
|
||||
<SingIcon>Sing.png</SingIcon>
|
||||
</Skins>
|
||||
<Videos>
|
||||
<BG_Video>[Yellow]BG_Video.mp4</BG_Video>
|
||||
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
@@ -1,5 +1,11 @@
|
||||
SceenNames
|
||||
|
||||
++++++++++
|
||||
Version 3:
|
||||
|
||||
<EqualizerPlayer[1...6]> (One Equalizer for each player): Equalizer shows input from assigned mic for this player.
|
||||
<SelectSlideDuetPlayer[1...6]> (One SelectSlide for each player)
|
||||
|
||||
++++++++++
|
||||
Version 2:
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
ScreenOptionsRecord
|
||||
|
||||
++++++++++
|
||||
Version 2:
|
||||
|
||||
Add:
|
||||
<EqualizerChannel1> and <EqualizerChannel2>.
|
||||
This is a new theme-element. Check ScreenOptionsRecord.xml for style-possibilities.
|
||||
++++++++++
|
||||
@@ -1,5 +1,17 @@
|
||||
ScreenSing
|
||||
|
||||
+++++++++
|
||||
Version 5
|
||||
|
||||
Add:
|
||||
<TextDuetName1> and <TextDuetName2> (only showed when sining duet)
|
||||
|
||||
++++++++++
|
||||
Version 5:
|
||||
|
||||
Add:
|
||||
<ButtonSkip>
|
||||
|
||||
++++++++++
|
||||
Version 4:
|
||||
Added Elements for 6-player-singing!
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
ScreenSong
|
||||
|
||||
++++++++++
|
||||
Version 3:
|
||||
|
||||
Add:
|
||||
<StaticOptionsBG>
|
||||
<TextOptionsTitle>
|
||||
<ButtonOptionsSing>, <ButtonOptionsClose>, <ButtonOptionsPlaylist>, <ButtonOptionsSingAll>, <ButtonOptionsSingAllVisible>, <ButtonOptionsRandom>, <ButtonOptionsRandom>, <ButtonOptionsRandomCategory>, <ButtonOpenOptions>
|
||||
<SelectSlideOptionsMode>, <SelectSlideOptionsPlaylistAdd>, <SelectSlideOptionsPlaylistOpen>
|
||||
and
|
||||
<Playlist> as a new Screen-Element. For details, look at ScreenSong.xml
|
||||
|
||||
++++++++++
|
||||
Version 2:
|
||||
|
||||
Add:
|
||||
<MedleyCalcIcon> and <MedleyTagIcon>
|
||||
to SongMenu
|
||||
|
||||
Add:
|
||||
<StaticMedleyCalcIcon> and <StaticMedleyTagIcon>
|
||||
to SongMenu.SongMenuTileBoard
|
||||
++++++++++
|
||||
@@ -34,6 +34,7 @@ namespace Vocaluxe.Base
|
||||
private static bool _Playing;
|
||||
private static bool _Disabled;
|
||||
private static bool _CanSing;
|
||||
private static bool _RepeatSong;
|
||||
|
||||
public static bool VideoEnabled
|
||||
{
|
||||
@@ -84,6 +85,18 @@ namespace Vocaluxe.Base
|
||||
}
|
||||
}
|
||||
|
||||
public static bool RepeatSong
|
||||
{
|
||||
get
|
||||
{
|
||||
return _RepeatSong;
|
||||
}
|
||||
set
|
||||
{
|
||||
_RepeatSong = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static int SongID
|
||||
{
|
||||
get
|
||||
@@ -120,7 +133,10 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
get
|
||||
{
|
||||
return _CurrentPlaylistElement.Artist + " - " + _CurrentPlaylistElement.Title;
|
||||
if (_CurrentPlaylistElement.Artist != "" && _CurrentPlaylistElement.Title != "")
|
||||
return _CurrentPlaylistElement.Artist + " - " + _CurrentPlaylistElement.Title;
|
||||
else
|
||||
return Path.GetFileNameWithoutExtension(_CurrentPlaylistElement.MusicFilePath);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,7 +181,7 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
if (_CurrentMusicStream != -1)
|
||||
{
|
||||
CSound.Fade(_CurrentMusicStream, CConfig.BackgroundMusicVolume, CSettings.BackgroundMusicFadeTime);
|
||||
CSound.Fade(_CurrentMusicStream, 100f, CSettings.BackgroundMusicFadeTime);
|
||||
CSound.Play(_CurrentMusicStream);
|
||||
if (_VideoEnabled && _Video != -1)
|
||||
CVideo.VdResume(_Video);
|
||||
@@ -217,10 +233,22 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
if (_AllFileNames.Count > 0 && _CurrentMusicStream != -1)
|
||||
{
|
||||
float timeToPlay = CSound.GetLength(_CurrentMusicStream) - CSound.GetPosition(_CurrentMusicStream);
|
||||
float timeToPlay;
|
||||
if(_CurrentPlaylistElement.Finish == 0f) //No End-Tag defined
|
||||
timeToPlay = CSound.GetLength(_CurrentMusicStream) - CSound.GetPosition(_CurrentMusicStream);
|
||||
else //End-Tag found
|
||||
timeToPlay = _CurrentPlaylistElement.Finish - CSound.GetPosition(_CurrentMusicStream);
|
||||
|
||||
bool finished = CSound.IsFinished(_CurrentMusicStream);
|
||||
if (_Playing && (timeToPlay <= CSettings.BackgroundMusicFadeTime || finished))
|
||||
Next();
|
||||
if (_RepeatSong)
|
||||
{
|
||||
CSound.SetPosition(_CurrentMusicStream, 0);
|
||||
if (_VideoEnabled && _Video != -1)
|
||||
CVideo.VdSkip(_Video, 0f, _CurrentPlaylistElement.VideoGap);
|
||||
}
|
||||
else
|
||||
Next();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -248,6 +276,12 @@ namespace Vocaluxe.Base
|
||||
_CurrentPlaylistElement = _PreviousFileNames[_PreviousMusicIndex];
|
||||
}
|
||||
_CurrentMusicStream = CSound.Load(_CurrentPlaylistElement.MusicFilePath);
|
||||
CSound.SetStreamVolumeMax(_CurrentMusicStream, CConfig.BackgroundMusicVolume);
|
||||
|
||||
//Seek to #Start-Tag, if found
|
||||
if (_CurrentPlaylistElement.Start != 0f)
|
||||
CSound.SetPosition(_CurrentMusicStream, _CurrentPlaylistElement.Start);
|
||||
|
||||
if (_VideoEnabled)
|
||||
LoadVideo();
|
||||
CSound.SetStreamVolume(_CurrentMusicStream, 0f);
|
||||
@@ -261,25 +295,31 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
if (_PreviousFileNames.Count > 0 || _PreviousMusicIndex >= 0)
|
||||
{
|
||||
Stop();
|
||||
float pos = CSound.GetPosition(_CurrentMusicStream);
|
||||
if (CSound.GetPosition(_CurrentMusicStream) >= 1.5f)
|
||||
{
|
||||
CSound.SetPosition(_CurrentMusicStream, 0);
|
||||
if (_VideoEnabled && _Video != -1)
|
||||
CVideo.VdSkip(_Video, 0f, _CurrentPlaylistElement.VideoGap);
|
||||
}
|
||||
else
|
||||
{
|
||||
Stop();
|
||||
_PreviousMusicIndex--;
|
||||
if (_PreviousMusicIndex < 0)
|
||||
_PreviousMusicIndex = 0; //No previous songs left, so play the first
|
||||
|
||||
_PreviousMusicIndex--;
|
||||
if (_PreviousMusicIndex < 0)
|
||||
_PreviousMusicIndex = 0; //No previous songs left, so play the first
|
||||
_CurrentPlaylistElement = _PreviousFileNames[_PreviousMusicIndex];
|
||||
|
||||
_CurrentPlaylistElement = _PreviousFileNames[_PreviousMusicIndex];
|
||||
|
||||
_CurrentMusicStream = CSound.Load(_CurrentPlaylistElement.MusicFilePath);
|
||||
if (_VideoEnabled)
|
||||
LoadVideo();
|
||||
CSound.SetStreamVolume(_CurrentMusicStream, 0f);
|
||||
Play();
|
||||
_CurrentMusicStream = CSound.Load(_CurrentPlaylistElement.MusicFilePath);
|
||||
CSound.SetStreamVolumeMax(_CurrentMusicStream, CConfig.BackgroundMusicVolume);
|
||||
if (_VideoEnabled)
|
||||
LoadVideo();
|
||||
CSound.SetStreamVolume(_CurrentMusicStream, 0f);
|
||||
Play();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void Repeat()
|
||||
{
|
||||
if (_AllFileNames.Count > 0 && _CurrentMusicStream != -1)
|
||||
else if (_CurrentMusicStream != -1)
|
||||
{
|
||||
CSound.SetPosition(_CurrentMusicStream, 0);
|
||||
if (_VideoEnabled && _Video != -1)
|
||||
@@ -289,7 +329,7 @@ namespace Vocaluxe.Base
|
||||
|
||||
public static void ApplyVolume()
|
||||
{
|
||||
CSound.SetStreamVolume(_CurrentMusicStream, CConfig.BackgroundMusicVolume);
|
||||
CSound.SetStreamVolumeMax(_CurrentMusicStream, CConfig.BackgroundMusicVolume);
|
||||
}
|
||||
|
||||
public static void AddOwnMusic()
|
||||
@@ -509,7 +549,7 @@ class PlaylistElement
|
||||
if (_Song != null)
|
||||
return _Song.Title;
|
||||
|
||||
return "Unknown";
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -520,7 +560,29 @@ class PlaylistElement
|
||||
if (_Song != null)
|
||||
return _Song.Artist;
|
||||
|
||||
return "Unknown";
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public float Start
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_Song != null)
|
||||
return _Song.Start;
|
||||
|
||||
return 0f;
|
||||
}
|
||||
}
|
||||
|
||||
public float Finish
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_Song != null)
|
||||
return _Song.Finish;
|
||||
|
||||
return 0f;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -960,6 +960,11 @@ namespace Vocaluxe.Base
|
||||
CSettings.sFileHighscoreDB = value;
|
||||
}
|
||||
break;
|
||||
|
||||
case "playlistfolder":
|
||||
CSettings.CreateFolder(value);
|
||||
CSettings.sFolderPlaylists = value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,6 +117,11 @@ namespace Vocaluxe.Base
|
||||
_Draw.DrawColor(color, rect);
|
||||
}
|
||||
|
||||
public static void DrawColorReflection(SColorF color, SRectF rect, float space, float height)
|
||||
{
|
||||
_Draw.DrawColorReflection(color, rect, space, height);
|
||||
}
|
||||
|
||||
public static void ClearScreen()
|
||||
{
|
||||
_Draw.ClearScreen();
|
||||
|
||||
@@ -40,13 +40,20 @@ namespace Vocaluxe.Base
|
||||
|
||||
class CGlyph
|
||||
{
|
||||
public readonly float SIZEh = 50f;
|
||||
private float _SIZEh = 50f;
|
||||
public float SIZEh
|
||||
{
|
||||
get { return _SIZEh; }
|
||||
}
|
||||
|
||||
public STexture Texture;
|
||||
public char Chr;
|
||||
public int width;
|
||||
|
||||
public CGlyph(char chr)
|
||||
public CGlyph(char chr, float MaxHigh)
|
||||
{
|
||||
_SIZEh = MaxHigh;
|
||||
|
||||
float outline = CFonts.Outline;
|
||||
TextFormatFlags flags = TextFormatFlags.NoPadding | TextFormatFlags.NoPrefix;
|
||||
|
||||
@@ -152,7 +159,8 @@ namespace Vocaluxe.Base
|
||||
private Hashtable _htGlyphs;
|
||||
private PrivateFontCollection fonts;
|
||||
private FontFamily family;
|
||||
|
||||
private float SIZEh;
|
||||
|
||||
public string FilePath;
|
||||
|
||||
|
||||
@@ -181,6 +189,28 @@ namespace Vocaluxe.Base
|
||||
|
||||
_Glyphs = new List<CGlyph>();
|
||||
_htGlyphs = new Hashtable();
|
||||
|
||||
switch (CConfig.TextureQuality)
|
||||
{
|
||||
case ETextureQuality.TR_CONFIG_TEXTURE_LOWEST:
|
||||
SIZEh = 25f;
|
||||
break;
|
||||
case ETextureQuality.TR_CONFIG_TEXTURE_LOW:
|
||||
SIZEh = 50f;
|
||||
break;
|
||||
case ETextureQuality.TR_CONFIG_TEXTURE_MEDIUM:
|
||||
SIZEh = 100f;
|
||||
break;
|
||||
case ETextureQuality.TR_CONFIG_TEXTURE_HIGH:
|
||||
SIZEh = 200f;
|
||||
break;
|
||||
case ETextureQuality.TR_CONFIG_TEXTURE_HIGHEST:
|
||||
SIZEh = 400f;
|
||||
break;
|
||||
default:
|
||||
SIZEh = 100f;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void DrawGlyph(char chr, float x, float y, float h, float z, SColorF color)
|
||||
@@ -243,7 +273,7 @@ namespace Vocaluxe.Base
|
||||
return;
|
||||
|
||||
float h = CFonts.Height;
|
||||
_Glyphs.Add(new CGlyph(chr));
|
||||
_Glyphs.Add(new CGlyph(chr, SIZEh));
|
||||
_htGlyphs.Add(chr, _Glyphs.Count - 1);
|
||||
CFonts.Height = h;
|
||||
}
|
||||
@@ -803,10 +833,10 @@ namespace Vocaluxe.Base
|
||||
writer.WriteElementString("Folder", _Fonts[Index].Folder);
|
||||
|
||||
writer.WriteElementString("Outline", _Fonts[Index].Outline.ToString("#0.00"));
|
||||
writer.WriteElementString("ColorR", _Fonts[Index].OutlineColor.R.ToString("#0.00"));
|
||||
writer.WriteElementString("ColorG", _Fonts[Index].OutlineColor.G.ToString("#0.00"));
|
||||
writer.WriteElementString("ColorB", _Fonts[Index].OutlineColor.B.ToString("#0.00"));
|
||||
writer.WriteElementString("ColorA", _Fonts[Index].OutlineColor.A.ToString("#0.00"));
|
||||
writer.WriteElementString("OutlineColorR", _Fonts[Index].OutlineColor.R.ToString("#0.00"));
|
||||
writer.WriteElementString("OutlineColorG", _Fonts[Index].OutlineColor.G.ToString("#0.00"));
|
||||
writer.WriteElementString("OutlineColorB", _Fonts[Index].OutlineColor.B.ToString("#0.00"));
|
||||
writer.WriteElementString("OutlineColorA", _Fonts[Index].OutlineColor.A.ToString("#0.00"));
|
||||
|
||||
writer.WriteElementString("FileNormal", _Fonts[Index].FileNormal);
|
||||
writer.WriteElementString("FileBold", _Fonts[Index].FileBold);
|
||||
|
||||
@@ -27,6 +27,7 @@ namespace Vocaluxe.Base
|
||||
public int SongID;
|
||||
public bool Medley;
|
||||
public bool Duet;
|
||||
public bool ShortSong;
|
||||
public long DateTicks;
|
||||
public bool SongFinished;
|
||||
}
|
||||
@@ -179,6 +180,11 @@ namespace Vocaluxe.Base
|
||||
return _GameMode.GetSong(Num);
|
||||
}
|
||||
|
||||
public static EGameMode GetGameMode(int Num)
|
||||
{
|
||||
return _GameMode.GetGameMode(Num);
|
||||
}
|
||||
|
||||
public static int GetNumSongs()
|
||||
{
|
||||
return _GameMode.GetNumSongs();
|
||||
@@ -189,6 +195,11 @@ namespace Vocaluxe.Base
|
||||
return _GameMode.GetPoints();
|
||||
}
|
||||
|
||||
public static int NumRounds
|
||||
{
|
||||
get { return _GameMode.GetNumSongs(); }
|
||||
}
|
||||
|
||||
public static int NumPlayer
|
||||
{
|
||||
get { return _NumPlayer; }
|
||||
@@ -214,6 +225,7 @@ namespace Vocaluxe.Base
|
||||
_Player[i].SongID = -1;
|
||||
_Player[i].Medley = false;
|
||||
_Player[i].Duet = false;
|
||||
_Player[i].ShortSong = false;
|
||||
_Player[i].DateTicks = DateTime.Now.Ticks;
|
||||
_Player[i].SongFinished = false;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Lib.Song;
|
||||
using Vocaluxe.Lib.Playlist;
|
||||
|
||||
namespace Vocaluxe.Base
|
||||
{
|
||||
|
||||
static class CPlaylists
|
||||
{
|
||||
private static List<CPlaylistFile> _Playlists;
|
||||
private static CHelper Helper = new CHelper();
|
||||
|
||||
public static CPlaylistFile[] Playlists
|
||||
{
|
||||
get { return _Playlists.ToArray(); }
|
||||
}
|
||||
|
||||
public static string[] PlaylistNames
|
||||
{
|
||||
get
|
||||
{
|
||||
List<string> names = new List<string>();
|
||||
for (int i = 0; i < _Playlists.Count; i++)
|
||||
{
|
||||
names.Add(_Playlists[i].PlaylistName);
|
||||
}
|
||||
return names.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
public static int NumPlaylists
|
||||
{
|
||||
get { return _Playlists.Count; }
|
||||
}
|
||||
|
||||
public static void Init()
|
||||
{
|
||||
LoadPlaylists();
|
||||
}
|
||||
|
||||
public static void LoadPlaylists()
|
||||
{
|
||||
_Playlists = new List<CPlaylistFile>();
|
||||
List<string> files = new List<string>();
|
||||
files.AddRange(Helper.ListFiles(CSettings.sFolderPlaylists, "*.xml", true, true));
|
||||
|
||||
foreach (string file in files)
|
||||
{
|
||||
CPlaylistFile playlist = new CPlaylistFile(file);
|
||||
_Playlists.Add(playlist);
|
||||
}
|
||||
|
||||
SortPlaylistsByName();
|
||||
}
|
||||
|
||||
#region private methods
|
||||
|
||||
private static void SortPlaylistsByName()
|
||||
{
|
||||
_Playlists.Sort(CompareByPlaylistName);
|
||||
}
|
||||
|
||||
private static int CompareByPlaylistName(CPlaylistFile a, CPlaylistFile b)
|
||||
{
|
||||
return String.Compare(a.PlaylistName, b.PlaylistName);
|
||||
}
|
||||
|
||||
public static void DeletePlaylist(int PlaylistID)
|
||||
{
|
||||
if (PlaylistID < 0 || PlaylistID >= _Playlists.Count)
|
||||
return;
|
||||
if (_Playlists[PlaylistID].PlaylistFile != String.Empty)
|
||||
{
|
||||
try
|
||||
{
|
||||
File.Delete(_Playlists[PlaylistID].PlaylistFile);
|
||||
_Playlists.RemoveAt(PlaylistID);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
CLog.LogError("Can't delete Profile File " + _Playlists[PlaylistID].PlaylistFile + ".xml");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void SavePlaylist(int PlaylistID)
|
||||
{
|
||||
if (PlaylistID < 0 || PlaylistID >= _Playlists.Count)
|
||||
return;
|
||||
_Playlists[PlaylistID].SavePlaylist();
|
||||
}
|
||||
|
||||
public static int NewPlaylist()
|
||||
{
|
||||
CPlaylistFile pl = new CPlaylistFile();
|
||||
pl.PlaylistName = "New Playlist";
|
||||
_Playlists.Add(pl);
|
||||
return (_Playlists.Count - 1);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -47,7 +47,7 @@ namespace Vocaluxe.Base
|
||||
public const int iVersionSub = 0; // patches
|
||||
public const ERevision VersionRevision = ERevision.Alpha;
|
||||
|
||||
public const int iBuild = 67; // Increase on every published version! Never Reset!
|
||||
public const int iBuild = 69; // Increase on every published version! Never Reset!
|
||||
|
||||
public const int iDatabaseHighscoreVersion = 1;
|
||||
public const int iDatabaseCoverVersion = 1;
|
||||
@@ -94,6 +94,7 @@ namespace Vocaluxe.Base
|
||||
public const string sFolderLanguages = "Languages";
|
||||
public const string sFolderScreenshots = "Screenshots";
|
||||
public const string sFolderBackgroundMusic = "BackgroundMusic";
|
||||
public static string sFolderPlaylists = "Playlists";
|
||||
|
||||
//public const String[] ToneStrings = new String[]{ "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B" };
|
||||
public const int ToneMin = -36;
|
||||
@@ -112,6 +113,11 @@ namespace Vocaluxe.Base
|
||||
public const float LyricHelperMoveTime = 1.5f;
|
||||
public const float LyricHelperMinTime = 0.2f;
|
||||
|
||||
public const float DefaultMedleyFadeInTime = 8f;
|
||||
public const float DefaultMedleyFadeOutTime = 2f;
|
||||
public const int MedleyMinSeriesLength = 3;
|
||||
public const float MedleyMinDuration = 40f;
|
||||
|
||||
public static bool TabNavigation = false;
|
||||
|
||||
public const float BackgroundMusicFadeTime = 0.5f;
|
||||
@@ -158,7 +164,7 @@ namespace Vocaluxe.Base
|
||||
return (float)iRenderW / (float)iRenderH;
|
||||
}
|
||||
|
||||
public static void MouseInacive()
|
||||
public static void MouseInactive()
|
||||
{
|
||||
MouseMoveDiffMin = 15;
|
||||
}
|
||||
@@ -179,6 +185,7 @@ namespace Vocaluxe.Base
|
||||
Folders.Add(sFolderScreenshots);
|
||||
Folders.Add(sFolderBackgroundMusic);
|
||||
Folders.Add(sFolderSounds);
|
||||
Folders.Add(sFolderPlaylists);
|
||||
|
||||
foreach (string folder in Folders)
|
||||
{
|
||||
@@ -187,5 +194,11 @@ namespace Vocaluxe.Base
|
||||
Directory.CreateDirectory(path);
|
||||
}
|
||||
}
|
||||
|
||||
public static void CreateFolder(string path)
|
||||
{
|
||||
if (!Directory.Exists(path))
|
||||
Directory.CreateDirectory(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -56,6 +56,7 @@ namespace Vocaluxe.Base
|
||||
private static int _CoverLoadIndex = -1;
|
||||
private static int _CatIndex = -1;
|
||||
private static List<CCategory> _Categories = new List<CCategory>();
|
||||
private static List<CCategory> _CategoriesForRandom = new List<CCategory>();
|
||||
|
||||
private static Stopwatch _CoverLoadTimer = new Stopwatch();
|
||||
|
||||
@@ -275,6 +276,35 @@ namespace Vocaluxe.Base
|
||||
_SongsForRandom.AddRange(VisibleSongs);
|
||||
}
|
||||
|
||||
public static int GetRandomCategory()
|
||||
{
|
||||
if (_CategoriesForRandom.Count == 0)
|
||||
UpdateRandomCategoryList();
|
||||
|
||||
if (_CategoriesForRandom.Count == 0)
|
||||
return -1;
|
||||
|
||||
CCategory category = _CategoriesForRandom[CGame.Rand.Next(0, _CategoriesForRandom.Count - 1)];
|
||||
_CategoriesForRandom.Remove(category);
|
||||
return GetCategoryNumber(category);
|
||||
}
|
||||
|
||||
public static void UpdateRandomCategoryList()
|
||||
{
|
||||
_CategoriesForRandom.Clear();
|
||||
_CategoriesForRandom.AddRange(Categories);
|
||||
}
|
||||
|
||||
private static int GetCategoryNumber(CCategory category)
|
||||
{
|
||||
for (int i = 0; i < Categories.Length; i++)
|
||||
{
|
||||
if (Categories[i] == category)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static CSong[] AllSongs
|
||||
{
|
||||
get { return _Songs.ToArray(); }
|
||||
|
||||
@@ -108,6 +108,10 @@ namespace Vocaluxe.Base
|
||||
_Playback.SetStreamVolume(Stream, Volume);
|
||||
}
|
||||
|
||||
public static void SetStreamVolumeMax(int Stream, float Volume)
|
||||
{
|
||||
_Playback.SetStreamVolumeMax(Stream, Volume);
|
||||
}
|
||||
|
||||
public static float GetLength(int Stream)
|
||||
{
|
||||
@@ -315,6 +319,10 @@ namespace Vocaluxe.Base
|
||||
public CBuffer()
|
||||
{
|
||||
_ToneWeigth = new float[_NumHalfTones];
|
||||
for (int i = 0; i < _ToneWeigth.Length; i++)
|
||||
{
|
||||
_ToneWeigth[i] = 0.99f;
|
||||
}
|
||||
_Stream = new MemoryStream();
|
||||
_NewSamples = false;
|
||||
}
|
||||
|
||||
@@ -68,6 +68,7 @@ namespace Vocaluxe.Base
|
||||
public int X;
|
||||
public int Y;
|
||||
public bool LB; //left button click
|
||||
public bool LD; //left button double click
|
||||
public bool RB; //right button click
|
||||
public bool MB; //middle button click
|
||||
|
||||
@@ -82,11 +83,12 @@ namespace Vocaluxe.Base
|
||||
public Modifier Mod;
|
||||
public int Wheel;
|
||||
|
||||
public MouseEvent(bool alt, bool shift, bool ctrl, int x, int y, bool lb, bool rb, int wheel, bool lbh, bool rbh, bool mb, bool mbh)
|
||||
public MouseEvent(bool alt, bool shift, bool ctrl, int x, int y, bool lb, bool ld, bool rb, int wheel, bool lbh, bool rbh, bool mb, bool mbh)
|
||||
{
|
||||
X = x;
|
||||
Y = y;
|
||||
LB = lb;
|
||||
LD = ld;
|
||||
RB = rb;
|
||||
MB = mb;
|
||||
|
||||
@@ -327,6 +329,8 @@ namespace Vocaluxe.Base
|
||||
private bool _ModCTRL;
|
||||
private bool _ModSHIFT;
|
||||
|
||||
private System.Diagnostics.Stopwatch _timer;
|
||||
|
||||
public int X
|
||||
{
|
||||
get { return _x; }
|
||||
@@ -347,13 +351,16 @@ namespace Vocaluxe.Base
|
||||
|
||||
_EventsPool = new List<MouseEvent>();
|
||||
_CurrentPool = new List<MouseEvent>();
|
||||
|
||||
_timer = new System.Diagnostics.Stopwatch();
|
||||
}
|
||||
|
||||
private void Add(bool alt, bool shift, bool ctrl, int x, int y, bool lb, bool rb, int wheel, bool lbh, bool rbh, bool mb, bool mbh)
|
||||
private void Add(bool alt, bool shift, bool ctrl, int x, int y, bool lb, bool ld, bool rb, int wheel, bool lbh, bool rbh, bool mb, bool mbh)
|
||||
{
|
||||
x = (int)((float)x * (float)CSettings.iRenderW / (float)CDraw.GetScreenWidth());
|
||||
y = (int)((float)y * (float)CSettings.iRenderH / (float)CDraw.GetScreenHeight());
|
||||
MouseEvent pool = new MouseEvent(alt, shift, ctrl, x, y, lb, rb, -wheel/120, lbh, rbh, mb, mbh);
|
||||
|
||||
MouseEvent pool = new MouseEvent(alt, shift, ctrl, x, y, lb, ld, rb, -wheel / 120, lbh, rbh, mb, mbh);
|
||||
|
||||
lock (_CopyLock)
|
||||
{
|
||||
@@ -380,21 +387,42 @@ namespace Vocaluxe.Base
|
||||
public void MouseMove(MouseEventArgs e)
|
||||
{
|
||||
CheckModifiers();
|
||||
Add(_ModALT, _ModSHIFT, _ModCTRL, e.X, e.Y, false, false, e.Delta, e.Button == MouseButtons.Left, e.Button == MouseButtons.Right,
|
||||
Add(_ModALT, _ModSHIFT, _ModCTRL, e.X, e.Y, false, false, false, e.Delta, e.Button == MouseButtons.Left, e.Button == MouseButtons.Right,
|
||||
false, e.Button == MouseButtons.Middle);
|
||||
}
|
||||
|
||||
public void MouseWheel(MouseEventArgs e)
|
||||
{
|
||||
CheckModifiers();
|
||||
Add(_ModALT, _ModSHIFT, _ModCTRL, e.X, e.Y, false, false, e.Delta, e.Button == MouseButtons.Left, e.Button == MouseButtons.Right,
|
||||
Add(_ModALT, _ModSHIFT, _ModCTRL, e.X, e.Y, false, false, false, e.Delta, e.Button == MouseButtons.Left, e.Button == MouseButtons.Right,
|
||||
false, e.Button == MouseButtons.Middle);
|
||||
}
|
||||
|
||||
public void MouseDown(MouseEventArgs e)
|
||||
{
|
||||
CheckModifiers();
|
||||
Add(_ModALT, _ModSHIFT, _ModCTRL, e.X, e.Y, e.Button == MouseButtons.Left, e.Button == MouseButtons.Right, e.Delta, false, false,
|
||||
|
||||
bool lb = e.Button == MouseButtons.Left;
|
||||
bool ld = false;
|
||||
if (lb)
|
||||
{
|
||||
if (_timer.IsRunning && _timer.ElapsedMilliseconds < 450)
|
||||
{
|
||||
ld = true;
|
||||
_timer.Reset();
|
||||
}
|
||||
else
|
||||
{
|
||||
_timer.Reset();
|
||||
_timer.Start();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_timer.Reset();
|
||||
}
|
||||
|
||||
Add(_ModALT, _ModSHIFT, _ModCTRL, e.X, e.Y, lb, ld, e.Button == MouseButtons.Right, e.Delta, false, false,
|
||||
e.Button == MouseButtons.Middle, false);
|
||||
}
|
||||
|
||||
|
||||
@@ -71,31 +71,34 @@
|
||||
- PortAudio Record and Playback
|
||||
|
||||
-------------------------------------------------------------
|
||||
+ v0.1.0:
|
||||
+ v0.1.0 (reached: 07.04.2012):
|
||||
- Menu Background Music
|
||||
- Jukebox light (bg music controls)
|
||||
- Theme System Update
|
||||
- A nicer Theme!
|
||||
|
||||
+ v0.2.0:
|
||||
- Medley
|
||||
- WiiMote Support
|
||||
- Jukebox light (bg music controls)
|
||||
- Show Avatars and Player Name in Sing Screen (and perhaps some other screens)
|
||||
- Sing Short Version Mode
|
||||
- Show Avatars and Player Name in Sing Screen
|
||||
- New Lyric Effects
|
||||
- More Player at once (up to 6)
|
||||
- Duet (full support, choose/toggle names)
|
||||
- Playlist-Support
|
||||
- Spectrum Analyzer (Record Screen and Player Selection Screen)
|
||||
|
||||
|
||||
-----------------
|
||||
just some ideas:
|
||||
- WiiMote Support
|
||||
- Installer
|
||||
- More Song List Views
|
||||
- Tile Board: Show title and artist under each tile
|
||||
- OnScreen Keyboard?
|
||||
- Kinect Support?
|
||||
- Help System
|
||||
- Party Mode: Casting Show
|
||||
- More Player at once
|
||||
- Mark newly added songs
|
||||
- Playlist-Support
|
||||
- Party Mode: Casting Show
|
||||
- Mark newly added songs
|
||||
- Theme Editor
|
||||
- Jukebox
|
||||
- Tournament Mode
|
||||
@@ -103,5 +106,4 @@ just some ideas:
|
||||
- Party Mode: Tic, Tac, Toe
|
||||
- Party Mode: 4 in a row
|
||||
- Challenge Mode (with more than 2 player at once)
|
||||
- Song Editor
|
||||
- Duet (full support, choose/toggle names)
|
||||
- Song Editor
|
||||
@@ -39,12 +39,13 @@ namespace Vocaluxe.GameModes
|
||||
_Rounds[round, player].PointsLineBonus = 0f;
|
||||
_Rounds[round, player].Medley = false;
|
||||
_Rounds[round, player].Duet = false;
|
||||
_Rounds[round, player].ShortSong = false;
|
||||
_Rounds[round, player].SongFinished = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void SetPoints(int Round, int SongID, SPlayer[] Player, bool Medley, bool Duet)
|
||||
public void SetPoints(int Round, int SongID, SPlayer[] Player, bool Medley, bool Duet, bool ShortSong)
|
||||
{
|
||||
long DateTicks = DateTime.Now.Ticks;
|
||||
for (int player = 0; player < Player.Length; player++)
|
||||
@@ -56,6 +57,7 @@ namespace Vocaluxe.GameModes
|
||||
_Rounds[Round, player].PointsLineBonus = Player[player].PointsLineBonus;
|
||||
_Rounds[Round, player].Medley = Medley;
|
||||
_Rounds[Round, player].Duet = Duet;
|
||||
_Rounds[Round, player].ShortSong = ShortSong;
|
||||
_Rounds[Round, player].DateTicks = DateTicks;
|
||||
_Rounds[Round, player].SongFinished = Player[player].SongFinished;
|
||||
}
|
||||
@@ -91,6 +93,7 @@ namespace Vocaluxe.GameModes
|
||||
player[p].Difficulty = _Rounds[Round, p].Difficulty;
|
||||
player[p].Medley = _Rounds[Round, p].Medley;
|
||||
player[p].Duet = _Rounds[Round, p].Duet;
|
||||
player[p].ShortSong = _Rounds[Round, p].ShortSong;
|
||||
player[p].DateTicks = _Rounds[Round, p].DateTicks;
|
||||
player[p].SongFinished = _Rounds[Round, p].SongFinished;
|
||||
player[p].ProfileID = _Rounds[Round, p].ProfileID;
|
||||
@@ -119,7 +122,7 @@ namespace Vocaluxe.GameModes
|
||||
{
|
||||
return _SongQueque[_CurrentSong].GameMode;
|
||||
}
|
||||
return EGameMode.Normal;
|
||||
return EGameMode.TR_GAMEMODE_NORMAL;
|
||||
}
|
||||
|
||||
public virtual bool AddVisibleSong(int VisibleIndex, EGameMode GameMode)
|
||||
@@ -127,7 +130,7 @@ namespace Vocaluxe.GameModes
|
||||
if (CSongs.VisibleSongs.Length > VisibleIndex)
|
||||
{
|
||||
int SongID = CSongs.VisibleSongs[VisibleIndex].ID;
|
||||
if (GameMode == EGameMode.Duet && !CSongs.GetSong(SongID).IsDuet)
|
||||
if (GameMode == EGameMode.TR_GAMEMODE_DUET && !CSongs.GetSong(SongID).IsDuet)
|
||||
return false;
|
||||
|
||||
_SongQueque.Add(new SongQueque(SongID, GameMode));
|
||||
@@ -141,7 +144,7 @@ namespace Vocaluxe.GameModes
|
||||
if (CSongs.AllSongs.Length > AbsoluteIndex)
|
||||
{
|
||||
int SongID = CSongs.AllSongs[AbsoluteIndex].ID;
|
||||
if (GameMode == EGameMode.Duet && !CSongs.GetSong(SongID).IsDuet)
|
||||
if (GameMode == EGameMode.TR_GAMEMODE_DUET && !CSongs.GetSong(SongID).IsDuet)
|
||||
return false;
|
||||
|
||||
_SongQueque.Add(new SongQueque(SongID, GameMode));
|
||||
@@ -188,7 +191,6 @@ namespace Vocaluxe.GameModes
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (index == -1)
|
||||
return false;
|
||||
|
||||
@@ -223,8 +225,9 @@ namespace Vocaluxe.GameModes
|
||||
_CurrentSong,
|
||||
_SongQueque[_CurrentSong].SongID,
|
||||
Player,
|
||||
_SongQueque[_CurrentSong].GameMode == EGameMode.Medley,
|
||||
_SongQueque[_CurrentSong].GameMode == EGameMode.Duet);
|
||||
_SongQueque[_CurrentSong].GameMode == EGameMode.TR_GAMEMODE_MEDLEY,
|
||||
_SongQueque[_CurrentSong].GameMode == EGameMode.TR_GAMEMODE_DUET,
|
||||
_SongQueque[_CurrentSong].GameMode == EGameMode.TR_GAMEMODE_SHORTSONG);
|
||||
}
|
||||
_CurrentSong++;
|
||||
}
|
||||
@@ -244,7 +247,32 @@ namespace Vocaluxe.GameModes
|
||||
{
|
||||
if (_CurrentSong >= 0 && _CurrentSong < _SongQueque.Count)
|
||||
{
|
||||
return CSongs.GetSong(_SongQueque[_CurrentSong].SongID);
|
||||
CSong song = CSongs.GetSong(_SongQueque[_CurrentSong].SongID);
|
||||
song = new CSong(song);
|
||||
|
||||
switch (GetCurrentGameMode())
|
||||
{
|
||||
case EGameMode.TR_GAMEMODE_MEDLEY:
|
||||
// set medley mode timings
|
||||
song.Start = CGame.GetTimeFromBeats(song.Medley.StartBeat, song.BPM) - song.Medley.FadeInTime + song.Gap;
|
||||
if (song.Start < 0f)
|
||||
song.Start = 0f;
|
||||
|
||||
song.Finish = CGame.GetTimeFromBeats(song.Medley.EndBeat, song.BPM) + song.Medley.FadeOutTime + song.Gap;
|
||||
|
||||
// set lines to medley mode
|
||||
song.Notes.SetMedley(song.Medley.StartBeat, song.Medley.EndBeat);
|
||||
break;
|
||||
|
||||
case EGameMode.TR_GAMEMODE_SHORTSONG:
|
||||
song.Finish = CGame.GetTimeFromBeats(song.ShortEnd, song.BPM) + CSettings.DefaultMedleyFadeOutTime + song.Gap;
|
||||
|
||||
// set lines to medley mode
|
||||
song.Notes.SetMedley(song.Notes.GetLines(0).Line[0].FirstNoteBeat, song.ShortEnd);
|
||||
break;
|
||||
}
|
||||
|
||||
return song;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -256,16 +284,28 @@ namespace Vocaluxe.GameModes
|
||||
|
||||
public virtual CSong GetSong(int Num)
|
||||
{
|
||||
if (Num - 1 < _SongQueque.Count)
|
||||
if (Num - 1 < _SongQueque.Count && Num - 1 > -1)
|
||||
return CSongs.GetSong(_SongQueque[Num - 1].SongID);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public virtual EGameMode GetGameMode(int Num)
|
||||
{
|
||||
if(Num - 1 < _SongQueque.Count && Num > -1)
|
||||
return _SongQueque[Num].GameMode;
|
||||
|
||||
return EGameMode.TR_GAMEMODE_NORMAL;
|
||||
}
|
||||
|
||||
public virtual CPoints GetPoints()
|
||||
{
|
||||
return _Points;
|
||||
}
|
||||
#endregion Implementation
|
||||
|
||||
protected virtual void SongManipulation(int SongIndex)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@ namespace Vocaluxe.GameModes
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
|
||||
|
||||
_Initialized = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,9 +9,10 @@ namespace Vocaluxe.GameModes
|
||||
{
|
||||
public enum EGameMode
|
||||
{
|
||||
Normal,
|
||||
Medley,
|
||||
Duet
|
||||
TR_GAMEMODE_NORMAL,
|
||||
TR_GAMEMODE_MEDLEY,
|
||||
TR_GAMEMODE_DUET,
|
||||
TR_GAMEMODE_SHORTSONG
|
||||
}
|
||||
|
||||
interface IGameMode
|
||||
@@ -37,5 +38,6 @@ namespace Vocaluxe.GameModes
|
||||
int GetNumSongs();
|
||||
CSong GetSong();
|
||||
CSong GetSong(int Num);
|
||||
EGameMode GetGameMode(int Num);
|
||||
}
|
||||
}
|
||||
@@ -55,6 +55,8 @@ namespace Vocaluxe.Lib.Draw
|
||||
private Queue<Texture> _VerticesTextures;
|
||||
private Queue<Matrix> _VerticesRotationMatrices;
|
||||
|
||||
private bool _NonPowerOf2TextureSupported;
|
||||
|
||||
#endregion private vars
|
||||
|
||||
/// <summary>
|
||||
@@ -182,6 +184,13 @@ namespace Vocaluxe.Lib.Draw
|
||||
flags = CreateFlags.HardwareVertexProcessing;
|
||||
else
|
||||
flags = CreateFlags.SoftwareVertexProcessing;
|
||||
|
||||
//Check if Pow2 textures are needed
|
||||
_NonPowerOf2TextureSupported = true;
|
||||
_NonPowerOf2TextureSupported &= (caps.TextureCaps & TextureCaps.Pow2) == 0;
|
||||
_NonPowerOf2TextureSupported &= (caps.TextureCaps & TextureCaps.NonPow2Conditional) == 0;
|
||||
_NonPowerOf2TextureSupported &= (caps.TextureCaps & TextureCaps.SquareOnly) == 0;
|
||||
|
||||
try
|
||||
{
|
||||
_Device = new Device(_D3D, _D3D.Adapters.DefaultAdapter.Adapter, DeviceType.Hardware, Handle, flags, _PresentParameters);
|
||||
@@ -731,8 +740,8 @@ namespace Vocaluxe.Lib.Draw
|
||||
texture.rect = new SRectF(0f, 0f, texture.width, texture.height, 0f);
|
||||
texture.width = w;
|
||||
texture.height = h;
|
||||
texture.w2 = NextPowerOfTwo(texture.width);
|
||||
texture.h2 = NextPowerOfTwo(texture.height);
|
||||
texture.w2 = CheckForNextPowerOf2(texture.width);
|
||||
texture.h2 = CheckForNextPowerOf2(texture.height);
|
||||
texture.index = _IDs.Dequeue();
|
||||
|
||||
lock (MutexTexture)
|
||||
@@ -836,6 +845,19 @@ namespace Vocaluxe.Lib.Draw
|
||||
{
|
||||
DrawTexture(_BlankTexture, rect, color);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Draws reflection of a colored rectangle
|
||||
/// </summary>
|
||||
/// <param name="color">The color in which the rectangle will be drawn in</param>
|
||||
/// <param name="rect">The coordinates in a SRectF struct</param>
|
||||
/// <param name="space">The space between the texture and the reflection</param>
|
||||
/// <param name="height">The height of the reflection</param>
|
||||
public void DrawColorReflection(SColorF color, SRectF rect, float space, float height)
|
||||
{
|
||||
DrawTextureReflection(_BlankTexture, rect, color, rect, space, height);
|
||||
}
|
||||
|
||||
#endregion Basic Draw Methods
|
||||
#region Textures
|
||||
#region adding
|
||||
@@ -919,8 +941,8 @@ namespace Vocaluxe.Lib.Draw
|
||||
texture.height = h;
|
||||
|
||||
//Older graphics card can only handle textures with sizes being powers of two
|
||||
texture.w2 = (float)NextPowerOfTwo(w);
|
||||
texture.h2 = (float)NextPowerOfTwo(h);
|
||||
texture.w2 = (float)CheckForNextPowerOf2(w);
|
||||
texture.h2 = (float)CheckForNextPowerOf2(h);
|
||||
|
||||
//Create a new Bitmap with the new sizes
|
||||
Bitmap bmp2 = new Bitmap((int)texture.w2, (int)texture.h2);
|
||||
@@ -1014,8 +1036,8 @@ namespace Vocaluxe.Lib.Draw
|
||||
STexture texture = new STexture(-1);
|
||||
texture.width = W;
|
||||
texture.height = H;
|
||||
texture.w2 = NextPowerOfTwo(texture.width);
|
||||
texture.h2 = NextPowerOfTwo(texture.height);
|
||||
texture.w2 = CheckForNextPowerOf2(texture.width);
|
||||
texture.h2 = CheckForNextPowerOf2(texture.height);
|
||||
texture.width_ratio = texture.width / texture.w2;
|
||||
texture.height_ratio = texture.height / texture.h2;
|
||||
|
||||
@@ -1079,8 +1101,8 @@ namespace Vocaluxe.Lib.Draw
|
||||
}
|
||||
_D3DTextures[Texture.index].UnlockRectangle(0);
|
||||
|
||||
Texture.height_ratio = Texture.height / NextPowerOfTwo(Texture.height);
|
||||
Texture.width_ratio = Texture.width / NextPowerOfTwo(Texture.width);
|
||||
Texture.height_ratio = Texture.height / CheckForNextPowerOf2(Texture.height);
|
||||
Texture.width_ratio = Texture.width / CheckForNextPowerOf2(Texture.width);
|
||||
return true;
|
||||
|
||||
/*Surface s = _D3DTextures[Texture.index].GetSurfaceLevel(0);
|
||||
@@ -1434,8 +1456,8 @@ namespace Vocaluxe.Lib.Draw
|
||||
|
||||
texture.width = q.width;
|
||||
texture.height = q.height;
|
||||
texture.w2 = NextPowerOfTwo(texture.width);
|
||||
texture.h2 = NextPowerOfTwo(texture.height);
|
||||
texture.w2 = CheckForNextPowerOf2(texture.width);
|
||||
texture.h2 = CheckForNextPowerOf2(texture.height);
|
||||
|
||||
texture.width_ratio = texture.width / texture.w2;
|
||||
texture.height_ratio = texture.height / texture.h2;
|
||||
@@ -1475,14 +1497,18 @@ namespace Vocaluxe.Lib.Draw
|
||||
|
||||
#region utility
|
||||
/// <summary>
|
||||
/// Calculates the next power of two
|
||||
/// Calculates the next power of two if the device has the POW2 flag set
|
||||
/// </summary>
|
||||
/// <param name="n">The value of which the next power of two will be calculated</param>
|
||||
/// <returns>The next power of two</returns>
|
||||
private static float NextPowerOfTwo(float n)
|
||||
private float CheckForNextPowerOf2(float n)
|
||||
{
|
||||
if (n < 0) throw new ArgumentOutOfRangeException("n", "Must be positive.");
|
||||
return (float)System.Math.Pow(2, System.Math.Ceiling(System.Math.Log((double)n, 2)));
|
||||
if (!_NonPowerOf2TextureSupported)
|
||||
{
|
||||
if (n < 0) throw new ArgumentOutOfRangeException("n", "Must be positive.");
|
||||
return (float)System.Math.Pow(2, System.Math.Ceiling(System.Math.Log((double)n, 2)));
|
||||
}
|
||||
else return n;
|
||||
}
|
||||
|
||||
private Matrix CalculateRotationMatrix(float rot, float rx1, float rx2, float ry1, float ry2)
|
||||
|
||||
@@ -352,6 +352,11 @@ namespace Vocaluxe.Lib.Draw
|
||||
|
||||
}
|
||||
|
||||
public void DrawColorReflection(SColorF color, SRectF rect, float space, float height)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public STexture AddTexture(Bitmap bmp)
|
||||
{
|
||||
Bitmap bmp2 = new Bitmap(bmp);
|
||||
|
||||
@@ -661,6 +661,59 @@ namespace Vocaluxe.Lib.Draw
|
||||
GL.Disable(EnableCap.Blend);
|
||||
}
|
||||
|
||||
public void DrawColorReflection(SColorF color, SRectF rect, float space, float height)
|
||||
{
|
||||
|
||||
if (rect.H < height)
|
||||
height = rect.H;
|
||||
|
||||
float rx1 = rect.X;
|
||||
float rx2 = rect.X + rect.W;
|
||||
float ry1 = rect.Y + rect.H + space;
|
||||
float ry2 = rect.Y + rect.H + space + height;
|
||||
|
||||
if (rx1 < rect.X)
|
||||
rx1 = rect.X;
|
||||
|
||||
if (rx2 > rect.X + rect.W)
|
||||
rx2 = rect.X + rect.W;
|
||||
|
||||
if (ry1 < rect.Y + space)
|
||||
ry1 = rect.Y + space;
|
||||
|
||||
if (ry2 > rect.Y + rect.H + space + height)
|
||||
ry2 = rect.Y + rect.H + space + height;
|
||||
|
||||
|
||||
GL.Enable(EnableCap.Blend);
|
||||
|
||||
if (rect.Rotation != 0f)
|
||||
{
|
||||
GL.Translate(0.5f, 0.5f, 0);
|
||||
GL.Rotate(-rect.Rotation, 0f, 0f, 1f);
|
||||
GL.Translate(-0.5f, -0.5f, 0);
|
||||
}
|
||||
|
||||
GL.Begin(BeginMode.Quads);
|
||||
|
||||
GL.Color4(color.R, color.G, color.B, color.A * CGraphics.GlobalAlpha);
|
||||
GL.Vertex3(rx2, ry1, rect.Z + CGraphics.ZOffset);
|
||||
|
||||
GL.Color4(color.R, color.G, color.B, 0f);
|
||||
GL.Vertex3(rx2, ry2, rect.Z + CGraphics.ZOffset);
|
||||
|
||||
GL.Color4(color.R, color.G, color.B, 0f);
|
||||
GL.Vertex3(rx1, ry2, rect.Z + CGraphics.ZOffset);
|
||||
|
||||
GL.Color4(color.R, color.G, color.B, color.A * CGraphics.GlobalAlpha);
|
||||
GL.Vertex3(rx1, ry1, rect.Z + CGraphics.ZOffset);
|
||||
|
||||
GL.End();
|
||||
|
||||
GL.Disable(EnableCap.Blend);
|
||||
|
||||
}
|
||||
|
||||
#endregion Basic Draw Methods
|
||||
|
||||
#region Textures
|
||||
|
||||
@@ -125,6 +125,7 @@ namespace Vocaluxe.Lib.Draw
|
||||
// Basic Draw Methods
|
||||
void DrawLine(int a, int r, int g, int b, int w, int x1, int y1, int x2, int y2);
|
||||
void DrawColor(SColorF color, SRectF rect);
|
||||
void DrawColorReflection(SColorF color, SRectF rect, float space, float height);
|
||||
|
||||
void ClearScreen();
|
||||
STexture CopyScreen();
|
||||
|
||||
@@ -0,0 +1,282 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.GameModes;
|
||||
using Vocaluxe.Lib.Song;
|
||||
|
||||
|
||||
namespace Vocaluxe.Lib.Playlist
|
||||
{
|
||||
public class CPlaylistSong
|
||||
{
|
||||
public int SongID;
|
||||
public EGameMode GameMode;
|
||||
|
||||
public CPlaylistSong(int SongID, EGameMode gm)
|
||||
{
|
||||
this.SongID = SongID;
|
||||
this.GameMode = gm;
|
||||
}
|
||||
|
||||
public CPlaylistSong()
|
||||
{
|
||||
GameMode = EGameMode.TR_GAMEMODE_NORMAL;
|
||||
}
|
||||
|
||||
public CPlaylistSong(CPlaylistSong ps)
|
||||
{
|
||||
SongID = ps.SongID;
|
||||
GameMode = ps.GameMode;
|
||||
}
|
||||
}
|
||||
|
||||
public class CPlaylistFile
|
||||
{
|
||||
private static XmlWriterSettings _settings = new XmlWriterSettings();
|
||||
private static CHelper Helper = new CHelper();
|
||||
|
||||
public string PlaylistName;
|
||||
public string PlaylistFile;
|
||||
public List<CPlaylistSong> Songs = new List<CPlaylistSong>();
|
||||
|
||||
public CPlaylistFile()
|
||||
{
|
||||
Init();
|
||||
PlaylistName = string.Empty;
|
||||
PlaylistFile = string.Empty;
|
||||
}
|
||||
|
||||
public CPlaylistFile(string file)
|
||||
{
|
||||
Init();
|
||||
PlaylistFile = file;
|
||||
LoadPlaylist();
|
||||
}
|
||||
|
||||
private void Init()
|
||||
{
|
||||
_settings.Indent = true;
|
||||
_settings.Encoding = System.Text.Encoding.UTF8;
|
||||
_settings.ConformanceLevel = ConformanceLevel.Document;
|
||||
}
|
||||
|
||||
|
||||
public void SavePlaylist()
|
||||
{
|
||||
if (PlaylistFile == string.Empty)
|
||||
{
|
||||
string filename = string.Empty;
|
||||
foreach (char chr in PlaylistName)
|
||||
{
|
||||
if (char.IsLetter(chr))
|
||||
filename += chr.ToString();
|
||||
}
|
||||
|
||||
if (filename == String.Empty)
|
||||
filename = "1";
|
||||
|
||||
int i = 0;
|
||||
while (File.Exists(Path.Combine(CSettings.sFolderPlaylists, filename + ".xml")))
|
||||
{
|
||||
i++;
|
||||
if (!File.Exists(Path.Combine(CSettings.sFolderPlaylists, filename + i + ".xml")))
|
||||
{
|
||||
filename += i;
|
||||
}
|
||||
}
|
||||
|
||||
PlaylistFile = Path.Combine(CSettings.sFolderPlaylists, filename + ".xml");
|
||||
}
|
||||
|
||||
XmlWriter writer;
|
||||
try
|
||||
{
|
||||
writer = XmlWriter.Create(PlaylistFile, _settings);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error creating/opening Playlist File " + PlaylistFile + ": " + e.Message);
|
||||
return;
|
||||
}
|
||||
|
||||
if (writer == null)
|
||||
{
|
||||
CLog.LogError("Error creating/opening Playlist File " + PlaylistFile);
|
||||
return;
|
||||
}
|
||||
|
||||
writer.WriteStartDocument();
|
||||
writer.WriteStartElement("root");
|
||||
|
||||
writer.WriteStartElement("Info");
|
||||
writer.WriteElementString("PlaylistName", PlaylistName);
|
||||
writer.WriteEndElement();
|
||||
|
||||
writer.WriteStartElement("Songs");
|
||||
for (int i = 0; i < Songs.Count; i++)
|
||||
{
|
||||
CSong song = CSongs.GetSong(Songs[i].SongID);
|
||||
if (song != null)
|
||||
{
|
||||
writer.WriteStartElement("Song" + (i + 1).ToString());
|
||||
writer.WriteElementString("Artist", song.Artist);
|
||||
writer.WriteElementString("Title", song.Title);
|
||||
writer.WriteElementString("GameMode", Enum.GetName(typeof(EGameMode), Songs[i].GameMode));
|
||||
writer.WriteEndElement();
|
||||
}
|
||||
else
|
||||
{
|
||||
CLog.LogError("Playlist.SavePlaylist(): Can't find Song. This should never happen!");
|
||||
}
|
||||
}
|
||||
writer.WriteEndElement();
|
||||
|
||||
writer.WriteEndElement(); //end of root
|
||||
writer.WriteEndDocument();
|
||||
|
||||
writer.Flush();
|
||||
writer.Close();
|
||||
}
|
||||
|
||||
private void LoadPlaylist()
|
||||
{
|
||||
bool loaded = false;
|
||||
XPathDocument xPathDoc = null;
|
||||
XPathNavigator navigator = null;
|
||||
|
||||
try
|
||||
{
|
||||
xPathDoc = new XPathDocument(PlaylistFile);
|
||||
navigator = xPathDoc.CreateNavigator();
|
||||
loaded = true;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
loaded = false;
|
||||
if (navigator != null)
|
||||
navigator = null;
|
||||
|
||||
if (xPathDoc != null)
|
||||
xPathDoc = null;
|
||||
|
||||
CLog.LogError("Error opening Playlist File " + PlaylistFile + ": " + e.Message);
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
{
|
||||
string value = String.Empty;
|
||||
if (CHelper.GetValueFromXML("//root/Info/PlaylistName", navigator, ref value, value))
|
||||
{
|
||||
PlaylistName = value;
|
||||
|
||||
Songs = new List<CPlaylistSong>();
|
||||
|
||||
List<string> songs = CHelper.GetValuesFromXML("Songs", navigator);
|
||||
string artist = String.Empty;
|
||||
string title = String.Empty;
|
||||
EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL;
|
||||
|
||||
for (int i = 0; i < songs.Count; i++)
|
||||
{
|
||||
CHelper.GetValueFromXML("//root/Songs/" + songs[i] + "/Artist", navigator, ref artist, String.Empty);
|
||||
CHelper.GetValueFromXML("//root/Songs/" + songs[i] + "/Title", navigator, ref title, String.Empty);
|
||||
CHelper.TryGetEnumValueFromXML<EGameMode>("//root/Songs/" + songs[i] + "/GameMode", navigator, ref gm);
|
||||
|
||||
CPlaylistSong song = new CPlaylistSong();
|
||||
song.SongID = -1;
|
||||
CSong[] AllSongs = CSongs.AllSongs;
|
||||
|
||||
for (int s = 0; s < AllSongs.Length; s++)
|
||||
{
|
||||
if (AllSongs[s].Artist == artist && AllSongs[s].Title == title)
|
||||
{
|
||||
song.SongID = AllSongs[s].ID;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (song.SongID != -1)
|
||||
{
|
||||
song.GameMode = gm;
|
||||
Songs.Add(song);
|
||||
}
|
||||
else
|
||||
{
|
||||
CLog.LogError("Can't find song '" + title + "' from '" + artist + "' in playlist file: " + PlaylistFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CLog.LogError("Can't find PlaylistName in Playlist File: " + PlaylistFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void AddSong(int SongID)
|
||||
{
|
||||
CPlaylistSong song = new CPlaylistSong();
|
||||
song.SongID = SongID;
|
||||
if (CSongs.GetSong(SongID).IsDuet)
|
||||
song.GameMode = EGameMode.TR_GAMEMODE_DUET;
|
||||
else
|
||||
song.GameMode = EGameMode.TR_GAMEMODE_NORMAL;
|
||||
|
||||
Songs.Add(song);
|
||||
}
|
||||
|
||||
public void AddSong(int SongID, EGameMode gm)
|
||||
{
|
||||
CPlaylistSong song = new CPlaylistSong();
|
||||
song.SongID = SongID;
|
||||
song.GameMode = gm;
|
||||
|
||||
Songs.Add(song);
|
||||
}
|
||||
|
||||
public void DeleteSong(int SongNr)
|
||||
{
|
||||
Songs.RemoveAt(SongNr);
|
||||
}
|
||||
|
||||
public void SongUp(int SongNr)
|
||||
{
|
||||
if (SongNr < Songs.Count - 1 && SongNr > 0)
|
||||
{
|
||||
Songs.Reverse(SongNr - 1, 2);
|
||||
}
|
||||
}
|
||||
|
||||
public void SongDown(int SongNr)
|
||||
{
|
||||
if (SongNr < Songs.Count - 1 && SongNr >= 0)
|
||||
{
|
||||
Songs.Reverse(SongNr, 2);
|
||||
}
|
||||
}
|
||||
|
||||
public void SongMove(int SourceNr, int DestNr)
|
||||
{
|
||||
if (SourceNr < 0 || DestNr < 0 || SourceNr == DestNr || SourceNr > Songs.Count - 1 || DestNr > Songs.Count - 1)
|
||||
return;
|
||||
|
||||
CPlaylistSong ps = new CPlaylistSong(Songs[SourceNr]);
|
||||
Songs.RemoveAt(SourceNr);
|
||||
Songs.Insert(DestNr, ps);
|
||||
}
|
||||
|
||||
public void SongInsert(int DestNr, int SongID, EGameMode gm)
|
||||
{
|
||||
if (DestNr < 0 || DestNr > Songs.Count - 1)
|
||||
return;
|
||||
|
||||
CPlaylistSong ps = new CPlaylistSong(SongID, gm);
|
||||
Songs.Insert(DestNr, ps);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ using Vocaluxe.Base;
|
||||
|
||||
namespace Vocaluxe.Lib.Song
|
||||
{
|
||||
class CNotes
|
||||
class CNotes
|
||||
{
|
||||
private List<CLines> _Lines = new List<CLines>();
|
||||
|
||||
@@ -15,6 +15,18 @@ namespace Vocaluxe.Lib.Song
|
||||
get { return _Lines.ToArray(); }
|
||||
}
|
||||
|
||||
public CNotes()
|
||||
{
|
||||
}
|
||||
|
||||
public CNotes(CNotes notes)
|
||||
{
|
||||
foreach (CLines lines in notes._Lines)
|
||||
{
|
||||
_Lines.Add(new CLines(lines));
|
||||
}
|
||||
}
|
||||
|
||||
public CLines GetLines(int Index)
|
||||
{
|
||||
while (Index >= _Lines.Count)
|
||||
@@ -60,6 +72,13 @@ namespace Vocaluxe.Lib.Song
|
||||
_Lines.Clear();
|
||||
}
|
||||
|
||||
public void SetMedley(int StartBeat, int EndBeat)
|
||||
{
|
||||
foreach (CLines lines in _Lines)
|
||||
{
|
||||
lines.SetMedley(StartBeat, EndBeat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum ENoteType
|
||||
@@ -91,6 +110,17 @@ namespace Vocaluxe.Lib.Song
|
||||
_Perfect = false;
|
||||
}
|
||||
|
||||
public CNote(CNote note)
|
||||
{
|
||||
_StartBeat = note._StartBeat;
|
||||
_Duration = note._Duration;
|
||||
_Tone = note._Tone;
|
||||
_NoteType = note._NoteType;
|
||||
_Text = note._Text;
|
||||
_Hit = note._Hit;
|
||||
_Perfect = note._Perfect;
|
||||
}
|
||||
|
||||
public CNote(int StartBeat, int Duration, int Tone, string Text)
|
||||
: this()
|
||||
{
|
||||
@@ -250,22 +280,43 @@ namespace Vocaluxe.Lib.Song
|
||||
private int _StartBeat;
|
||||
private int _EndBeat;
|
||||
private bool _PerfectLine; // for drawing perfect line effect
|
||||
private bool _VisibleInTimeLine;
|
||||
|
||||
private int _MinBeat = int.MaxValue;
|
||||
private int _MaxBeat = int.MinValue;
|
||||
private List<CNote> _Notes;
|
||||
private List<CNote> _Notes = new List<CNote>();
|
||||
|
||||
#region Constructors
|
||||
public CLine()
|
||||
{
|
||||
_Notes = new List<CNote>();
|
||||
StartBeat = int.MinValue;
|
||||
EndBeat = int.MaxValue;
|
||||
_PerfectLine = false;
|
||||
_VisibleInTimeLine = true;
|
||||
}
|
||||
|
||||
public CLine(CLine line)
|
||||
{
|
||||
foreach (CNote note in line._Notes)
|
||||
{
|
||||
_Notes.Add(new CNote(note));
|
||||
}
|
||||
_StartBeat = line._StartBeat;
|
||||
_EndBeat = line._EndBeat;
|
||||
_PerfectLine = line._PerfectLine;
|
||||
_MinBeat = line._MinBeat;
|
||||
_MaxBeat = line._MaxBeat;
|
||||
_VisibleInTimeLine = line._VisibleInTimeLine;
|
||||
}
|
||||
#endregion Constructors
|
||||
|
||||
#region Properties
|
||||
public bool VisibleInTimeLine
|
||||
{
|
||||
get { return _VisibleInTimeLine; }
|
||||
set { _VisibleInTimeLine = value; }
|
||||
}
|
||||
|
||||
public int StartBeat
|
||||
{
|
||||
get { return _StartBeat; }
|
||||
@@ -292,7 +343,7 @@ namespace Vocaluxe.Lib.Song
|
||||
set { _PerfectLine = value; }
|
||||
}
|
||||
|
||||
public int FirstBeat
|
||||
public int FirstNoteBeat
|
||||
{
|
||||
get
|
||||
{
|
||||
@@ -300,7 +351,7 @@ namespace Vocaluxe.Lib.Song
|
||||
}
|
||||
}
|
||||
|
||||
public int LastBeat
|
||||
public int LastNoteBeat
|
||||
{
|
||||
get
|
||||
{
|
||||
@@ -465,6 +516,17 @@ namespace Vocaluxe.Lib.Song
|
||||
_MaxBeat = int.MinValue;
|
||||
}
|
||||
|
||||
public void SetMedley(int StartBeat, int EndBeat)
|
||||
{
|
||||
foreach (CNote note in _Notes)
|
||||
{
|
||||
if (note.StartBeat < StartBeat || note.EndBeat > EndBeat)
|
||||
note.NoteType = ENoteType.Freestyle;
|
||||
}
|
||||
|
||||
_VisibleInTimeLine = _MinBeat >= StartBeat && _MaxBeat <= EndBeat;
|
||||
}
|
||||
|
||||
private void updateMinMaxBeat(CNote Note)
|
||||
{
|
||||
if (Note.StartBeat < _MinBeat)
|
||||
@@ -487,16 +549,24 @@ namespace Vocaluxe.Lib.Song
|
||||
updateMinMaxBeat(note);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Methods
|
||||
}
|
||||
|
||||
public class CLines
|
||||
{
|
||||
private List<CLine> _Lines;
|
||||
private List<CLine> _Lines = new List<CLine>();
|
||||
|
||||
public CLines()
|
||||
{
|
||||
_Lines = new List<CLine>();
|
||||
}
|
||||
|
||||
public CLines(CLines lines)
|
||||
{
|
||||
foreach (CLine line in lines._Lines)
|
||||
{
|
||||
_Lines.Add(new CLine(line));
|
||||
}
|
||||
}
|
||||
|
||||
public CLine[] Line
|
||||
@@ -521,15 +591,15 @@ namespace Vocaluxe.Lib.Song
|
||||
int startbeat = int.MaxValue;
|
||||
for (int i = 0; i < _Lines.Count; i++)
|
||||
{
|
||||
if (_Lines[i].FirstBeat < startbeat)
|
||||
startbeat = _Lines[i].FirstBeat;
|
||||
if (_Lines[i].FirstNoteBeat < startbeat)
|
||||
startbeat = _Lines[i].FirstNoteBeat;
|
||||
}
|
||||
|
||||
int endbeat = int.MinValue;
|
||||
for (int i = 0; i < _Lines.Count; i++)
|
||||
{
|
||||
if (_Lines[i].LastBeat < endbeat)
|
||||
endbeat = _Lines[i].LastBeat;
|
||||
if (_Lines[i].LastNoteBeat < endbeat)
|
||||
endbeat = _Lines[i].LastNoteBeat;
|
||||
}
|
||||
|
||||
int result = endbeat - startbeat;
|
||||
@@ -688,6 +758,13 @@ namespace Vocaluxe.Lib.Song
|
||||
}
|
||||
}
|
||||
|
||||
public void SetMedley(int StartBeat, int EndBeat)
|
||||
{
|
||||
foreach (CLine line in _Lines)
|
||||
{
|
||||
line.SetMedley(StartBeat, EndBeat);
|
||||
}
|
||||
}
|
||||
#endregion Methods
|
||||
}
|
||||
}
|
||||
@@ -7,19 +7,45 @@ using System.Text.RegularExpressions;
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
using Vocaluxe.Menu;
|
||||
using Vocaluxe.GameModes;
|
||||
|
||||
namespace Vocaluxe.Lib.Song
|
||||
{
|
||||
[Flags]
|
||||
enum EHeaderFlags
|
||||
{
|
||||
Title,
|
||||
Artist,
|
||||
MP3,
|
||||
BPM,
|
||||
PreviewStart,
|
||||
MedleyStartBeat,
|
||||
MedleyEndBeat
|
||||
Title = 1,
|
||||
Artist = 2,
|
||||
MP3 = 4,
|
||||
BPM = 8,
|
||||
PreviewStart = 16,
|
||||
MedleyStartBeat = 32,
|
||||
MedleyEndBeat = 64
|
||||
}
|
||||
|
||||
enum EMedleySource
|
||||
{
|
||||
None,
|
||||
Calculated,
|
||||
Tag
|
||||
}
|
||||
|
||||
struct SMedley
|
||||
{
|
||||
public EMedleySource Source;
|
||||
public int StartBeat;
|
||||
public int EndBeat;
|
||||
public float FadeInTime;
|
||||
public float FadeOutTime;
|
||||
|
||||
public SMedley(int dummy)
|
||||
{
|
||||
Source = EMedleySource.None;
|
||||
StartBeat = 0;
|
||||
EndBeat = 0;
|
||||
FadeInTime = 0f;
|
||||
FadeOutTime = 0f;
|
||||
}
|
||||
}
|
||||
|
||||
class CSong
|
||||
@@ -29,10 +55,18 @@ namespace Vocaluxe.Lib.Song
|
||||
private STexture _CoverTextureSmall = new STexture(-1);
|
||||
private STexture _CoverTextureBig = new STexture(-1);
|
||||
|
||||
public SMedley Medley = new SMedley(0);
|
||||
|
||||
public bool CalculateMedley = true;
|
||||
public float PreviewStart = 0f;
|
||||
|
||||
public int ShortEnd = 0;
|
||||
|
||||
public Encoding Encoding = Encoding.Default;
|
||||
public string Folder = String.Empty;
|
||||
public string FolderName = String.Empty;
|
||||
public string FileName = String.Empty;
|
||||
public EOffOn Relative = EOffOn.TR_CONFIG_OFF;
|
||||
|
||||
public string MP3FileName = String.Empty;
|
||||
public string CoverFileName = String.Empty;
|
||||
@@ -45,9 +79,12 @@ namespace Vocaluxe.Lib.Song
|
||||
{
|
||||
get { return _CoverLoaded; }
|
||||
}
|
||||
public bool NotesLoaded
|
||||
{
|
||||
get { return _NotesLoaded; }
|
||||
}
|
||||
|
||||
public bool CoverBigLoaded = false;
|
||||
public bool BackgroundLoaded = false;
|
||||
|
||||
public STexture CoverTextureSmall
|
||||
{
|
||||
@@ -84,8 +121,6 @@ namespace Vocaluxe.Lib.Song
|
||||
set { _CoverTextureBig = value; }
|
||||
}
|
||||
|
||||
public CBackground Background = new CBackground();
|
||||
|
||||
public string Title = String.Empty;
|
||||
public string Artist = String.Empty;
|
||||
|
||||
@@ -99,6 +134,9 @@ namespace Vocaluxe.Lib.Song
|
||||
public float Gap = 0f;
|
||||
public float VideoGap = 0f;
|
||||
|
||||
public string DuetPart1 = String.Empty;
|
||||
public string DuetPart2 = String.Empty;
|
||||
|
||||
public List<string> Comment = new List<string>();
|
||||
|
||||
// Sorting
|
||||
@@ -119,6 +157,104 @@ namespace Vocaluxe.Lib.Song
|
||||
// Notes
|
||||
public CNotes Notes = new CNotes();
|
||||
|
||||
public EGameMode[] AvailableGameModes
|
||||
{
|
||||
get
|
||||
{
|
||||
List<EGameMode> gms = new List<EGameMode>();
|
||||
if (IsDuet)
|
||||
gms.Add(EGameMode.TR_GAMEMODE_DUET);
|
||||
else
|
||||
gms.Add(EGameMode.TR_GAMEMODE_NORMAL);
|
||||
if (Medley.Source != EMedleySource.None)
|
||||
gms.Add(EGameMode.TR_GAMEMODE_MEDLEY);
|
||||
gms.Add(EGameMode.TR_GAMEMODE_SHORTSONG);
|
||||
|
||||
return gms.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
public CSong()
|
||||
{
|
||||
}
|
||||
|
||||
public CSong(CSong song)
|
||||
{
|
||||
this._CoverTextureSmall = song._CoverTextureSmall;
|
||||
this._CoverTextureBig = song._CoverTextureBig;
|
||||
|
||||
this.Medley = new SMedley();
|
||||
this.Medley.Source = song.Medley.Source;
|
||||
this.Medley.StartBeat = song.Medley.StartBeat;
|
||||
this.Medley.EndBeat = song.Medley.EndBeat;
|
||||
this.Medley.FadeInTime = song.Medley.FadeInTime;
|
||||
this.Medley.FadeOutTime = song.Medley.FadeOutTime;
|
||||
|
||||
this.CalculateMedley = song.CalculateMedley;
|
||||
this.PreviewStart = song.PreviewStart;
|
||||
|
||||
this.ShortEnd = song.ShortEnd;
|
||||
|
||||
this.Encoding = song.Encoding;
|
||||
this.Folder = song.Folder;
|
||||
this.FolderName = song.FolderName;
|
||||
this.FileName = song.FileName;
|
||||
this.Relative = song.Relative;
|
||||
|
||||
this.MP3FileName = song.MP3FileName;
|
||||
this.CoverFileName = song.CoverFileName;
|
||||
this.BackgroundFileName = song.BackgroundFileName;
|
||||
this.VideoFileName = song.VideoFileName;
|
||||
|
||||
this.VideoAspect = song.VideoAspect;
|
||||
this._CoverLoaded = song._CoverLoaded;
|
||||
this.CoverBigLoaded = song.CoverBigLoaded;
|
||||
this._NotesLoaded = song._NotesLoaded;
|
||||
|
||||
this.Artist = song.Artist;
|
||||
this.Title = song.Title;
|
||||
|
||||
this.Start = song.Start;
|
||||
this.Finish = song.Finish;
|
||||
|
||||
this.BPM = song.BPM;
|
||||
this.Gap = song.Gap;
|
||||
this.VideoGap = song.VideoGap;
|
||||
|
||||
this.Comment = new List<string>();
|
||||
foreach (string value in song.Comment)
|
||||
{
|
||||
this.Comment.Add(value);
|
||||
}
|
||||
|
||||
this.ID = song.ID;
|
||||
this.Visible = song.Visible;
|
||||
this.CatIndex = song.CatIndex;
|
||||
this.Selected = song.Selected;
|
||||
|
||||
this.Edition = new List<string>();
|
||||
foreach (string value in song.Edition)
|
||||
{
|
||||
this.Edition.Add(value);
|
||||
}
|
||||
|
||||
this.Genre = new List<string>();
|
||||
foreach (string value in song.Genre)
|
||||
{
|
||||
this.Genre.Add(value);
|
||||
}
|
||||
|
||||
this.Year = song.Year;
|
||||
|
||||
this.Language = new List<string>();
|
||||
foreach (string value in song.Language)
|
||||
{
|
||||
this.Language.Add(value);
|
||||
}
|
||||
|
||||
this.Notes = new CNotes(song.Notes);
|
||||
}
|
||||
|
||||
public string GetMP3()
|
||||
{
|
||||
return Path.Combine(Folder, MP3FileName);
|
||||
@@ -254,6 +390,18 @@ namespace Vocaluxe.Lib.Song
|
||||
this.ArtistSorting = Value;
|
||||
}
|
||||
break;
|
||||
case "P1":
|
||||
if (Value != String.Empty)
|
||||
{
|
||||
this.DuetPart1 = Value;
|
||||
}
|
||||
break;
|
||||
case "P2":
|
||||
if (Value != String.Empty)
|
||||
{
|
||||
this.DuetPart2 = Value;
|
||||
}
|
||||
break;
|
||||
case "MP3":
|
||||
if (File.Exists(Path.Combine(this.Folder, Value)))
|
||||
{
|
||||
@@ -328,6 +476,29 @@ namespace Vocaluxe.Lib.Song
|
||||
if (CHelper.TryParse(Value, out this.Finish))
|
||||
this.Finish /= 1000f;
|
||||
break;
|
||||
case "PREVIEWSTART":
|
||||
if (CHelper.TryParse(Value, out this.PreviewStart))
|
||||
if (this.PreviewStart < 0f)
|
||||
this.PreviewStart = 0f;
|
||||
else
|
||||
HeaderFlags |= EHeaderFlags.PreviewStart;
|
||||
break;
|
||||
case "MEDLEYSTARTBEAT":
|
||||
if (int.TryParse(Value, out this.Medley.StartBeat))
|
||||
HeaderFlags |= EHeaderFlags.MedleyStartBeat;
|
||||
break;
|
||||
case "MEDLEYENDBEAT":
|
||||
if (int.TryParse(Value, out this.Medley.EndBeat))
|
||||
HeaderFlags |= EHeaderFlags.MedleyEndBeat;
|
||||
break;
|
||||
case "CALCMEDLEY":
|
||||
if (Value.ToUpper() == "OFF")
|
||||
this.CalculateMedley = false;
|
||||
break;
|
||||
case "RELATIVE":
|
||||
if (Value.ToUpper() == "YES" && Value.ToUpper() != "NO")
|
||||
this.Relative = EOffOn.TR_CONFIG_ON;
|
||||
break;
|
||||
default:
|
||||
;
|
||||
break;
|
||||
@@ -343,25 +514,82 @@ namespace Vocaluxe.Lib.Song
|
||||
}
|
||||
} //end of while
|
||||
|
||||
if (HeaderFlags != (EHeaderFlags.Title | EHeaderFlags.Artist | EHeaderFlags.MP3 | EHeaderFlags.BPM))
|
||||
if ((HeaderFlags & EHeaderFlags.Title) == 0)
|
||||
{
|
||||
CLog.LogError("Title tag missing: " + FilePath);
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((HeaderFlags & EHeaderFlags.Artist) == 0)
|
||||
{
|
||||
CLog.LogError("Artist tag missing: " + FilePath);
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((HeaderFlags & EHeaderFlags.MP3) == 0)
|
||||
{
|
||||
CLog.LogError("MP3 tag missing: " + FilePath);
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((HeaderFlags & EHeaderFlags.BPM) == 0)
|
||||
{
|
||||
CLog.LogError("BPM tag missing: " + FilePath);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.Relative == EOffOn.TR_CONFIG_ON)
|
||||
{
|
||||
CLog.LogError("Relative songs are not supported by Vocaluxe (perhaps later)! (" + FilePath + ")");
|
||||
return false;
|
||||
}
|
||||
|
||||
#region check medley tags
|
||||
if ((HeaderFlags & EHeaderFlags.MedleyStartBeat) != 0 && (HeaderFlags & EHeaderFlags.MedleyEndBeat) != 0)
|
||||
{
|
||||
if (this.Medley.StartBeat > this.Medley.EndBeat)
|
||||
{
|
||||
CLog.LogError("MedleyStartBeat is bigger than MedleyEndBeat in file: " + FilePath);
|
||||
HeaderFlags = HeaderFlags - EHeaderFlags.MedleyStartBeat - EHeaderFlags.MedleyEndBeat;
|
||||
}
|
||||
}
|
||||
|
||||
if ((HeaderFlags & EHeaderFlags.PreviewStart) == 0 || this.PreviewStart == 0f)
|
||||
{
|
||||
//PreviewStart is not set or <=0
|
||||
if ((HeaderFlags & EHeaderFlags.MedleyStartBeat) != 0)
|
||||
//fallback to MedleyStart
|
||||
this.PreviewStart = CGame.GetTimeFromBeats(this.Medley.StartBeat, this.BPM);
|
||||
else
|
||||
//else set to 0, it will be set in FindRefrainStart
|
||||
this.PreviewStart = 0f;
|
||||
}
|
||||
|
||||
if ((HeaderFlags & EHeaderFlags.MedleyStartBeat) != 0 && (HeaderFlags & EHeaderFlags.MedleyEndBeat) != 0)
|
||||
{
|
||||
this.Medley.Source = EMedleySource.Tag;
|
||||
this.Medley.FadeInTime = CSettings.DefaultMedleyFadeInTime;
|
||||
this.Medley.FadeOutTime = CSettings.DefaultMedleyFadeOutTime;
|
||||
}
|
||||
#endregion check medley tags
|
||||
|
||||
this.Encoding = sr.CurrentEncoding;
|
||||
}
|
||||
catch (Exception)
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error reading txt header in file \"" + FilePath + "\": " + e.Message);
|
||||
return false;
|
||||
}
|
||||
|
||||
CheckFiles();
|
||||
|
||||
//Before saving this tags to .txt: Check, if ArtistSorting and Artist are equal, then don't save this tag.
|
||||
if (this.ArtistSorting == "")
|
||||
if (this.ArtistSorting == String.Empty)
|
||||
{
|
||||
this.ArtistSorting = this.Artist;
|
||||
}
|
||||
|
||||
if (this.TitleSorting == "")
|
||||
if (this.TitleSorting == String.Empty)
|
||||
{
|
||||
this.TitleSorting = this.Title;
|
||||
}
|
||||
@@ -420,9 +648,10 @@ namespace Vocaluxe.Lib.Song
|
||||
FileLineNo++;
|
||||
if (TempC.CompareTo('P') == 0)
|
||||
{
|
||||
char chr = (char)sr.Read();
|
||||
int.TryParse(chr.ToString(), out Param1);
|
||||
char chr;
|
||||
while ((chr = (char)sr.Read()) == ' '){ }
|
||||
|
||||
int.TryParse(chr.ToString(), out Param1);
|
||||
if (Param1 == 1)
|
||||
Player = 0;
|
||||
else if (Param1 == 2)
|
||||
@@ -481,7 +710,7 @@ namespace Vocaluxe.Lib.Song
|
||||
|
||||
char chr = (char)sr.Read();
|
||||
Param1 = CHelper.TryReadInt(sr);
|
||||
|
||||
|
||||
NewSentence(Player, Param1);
|
||||
|
||||
isNewSentence = true;
|
||||
@@ -504,7 +733,11 @@ namespace Vocaluxe.Lib.Song
|
||||
CLog.LogError("Error loading song. Line No.: " + FileLineNo.ToString() + ". An unhandled exception occured (" + e.Message + "): " + FilePath);
|
||||
return false;
|
||||
}
|
||||
FindRefrain();
|
||||
FindShortEnd();
|
||||
_NotesLoaded = true;
|
||||
if(IsDuet)
|
||||
CheckDuet();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -570,5 +803,224 @@ namespace Vocaluxe.Lib.Song
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void CheckDuet()
|
||||
{
|
||||
if (DuetPart1 == String.Empty)
|
||||
{
|
||||
DuetPart1 = "Part 1";
|
||||
CLog.LogError("Warning: Can't find #P1-tag for duets in \"" + this.Artist + " - " + this.Title + "\".");
|
||||
}
|
||||
if (DuetPart2 == String.Empty)
|
||||
{
|
||||
DuetPart2 = "Part 2";
|
||||
CLog.LogError("Warning: Can't find #P2-tag for duets in \"" + this.Artist + " - " + this.Title + "\".");
|
||||
}
|
||||
}
|
||||
|
||||
private struct Series
|
||||
{
|
||||
public int start;
|
||||
public int end;
|
||||
public int length;
|
||||
}
|
||||
|
||||
private void FindRefrain()
|
||||
{
|
||||
if (this.IsDuet)
|
||||
{
|
||||
this.Medley.Source = EMedleySource.None;
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.Medley.Source == EMedleySource.Tag)
|
||||
return;
|
||||
|
||||
if (!this.CalculateMedley)
|
||||
return;
|
||||
|
||||
CLines lines = this.Notes.GetLines(0);
|
||||
|
||||
if (lines.LineCount == 0)
|
||||
return;
|
||||
|
||||
// build sentences list
|
||||
List<string> sentences = new List<string>();
|
||||
foreach (CLine line in lines.Line)
|
||||
{
|
||||
if (line.Points != 0)
|
||||
sentences.Add(line.Lyrics);
|
||||
else
|
||||
sentences.Add(String.Empty);
|
||||
}
|
||||
|
||||
// find equal sentences series
|
||||
List<Series> series = new List<Series>();
|
||||
for (int i = 0; i < lines.LineCount - 1; i++)
|
||||
{
|
||||
for (int j = i + 1; j < lines.LineCount; j++)
|
||||
{
|
||||
if (sentences[i] == sentences[j] && sentences[i] != String.Empty)
|
||||
{
|
||||
Series tempSeries = new Series();
|
||||
tempSeries.start = i;
|
||||
tempSeries.end = i;
|
||||
|
||||
int max = 0;
|
||||
if (j + j - i - 1 > lines.LineCount - 1)
|
||||
max = lines.LineCount - 1 - j;
|
||||
else
|
||||
max = j - i - 1;
|
||||
|
||||
for (int k = 1; k <= max; k++)
|
||||
{
|
||||
if (sentences[i + k] == sentences[j + k] && sentences[i + k] != String.Empty)
|
||||
tempSeries.end = i + k;
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
tempSeries.length = tempSeries.end - tempSeries.start + 1;
|
||||
series.Add(tempSeries);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// search for longest series
|
||||
int longest = 0;
|
||||
for (int i = 0; i < series.Count; i++)
|
||||
{
|
||||
if (series[i].length > series[longest].length)
|
||||
longest = i;
|
||||
}
|
||||
|
||||
// set medley vars
|
||||
if (series.Count > 0 && series[longest].length > CSettings.MedleyMinSeriesLength)
|
||||
{
|
||||
this.Medley.StartBeat = lines.Line[series[longest].start].FirstNoteBeat;
|
||||
this.Medley.EndBeat = lines.Line[series[longest].end].LastNoteBeat;
|
||||
|
||||
bool foundEnd = false;
|
||||
|
||||
// set end if duration > MedleyMinDuration
|
||||
if (CGame.GetTimeFromBeats(this.Medley.StartBeat, this.BPM) + CSettings.MedleyMinDuration >
|
||||
CGame.GetTimeFromBeats(this.Medley.EndBeat, this.BPM))
|
||||
foundEnd = true;
|
||||
|
||||
if (!foundEnd)
|
||||
{
|
||||
for (int i = series[longest].start + 1; i < lines.LineCount - 1; i++)
|
||||
{
|
||||
if (CGame.GetTimeFromBeats(this.Medley.StartBeat, this.BPM) + CSettings.MedleyMinDuration >
|
||||
CGame.GetTimeFromBeats(lines.Line[i].LastNoteBeat, this.BPM))
|
||||
{
|
||||
foundEnd = true;
|
||||
this.Medley.EndBeat = lines.Line[i].LastNoteBeat;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (foundEnd)
|
||||
{
|
||||
this.Medley.Source = EMedleySource.Calculated;
|
||||
this.Medley.FadeInTime = CSettings.DefaultMedleyFadeInTime;
|
||||
this.Medley.FadeOutTime = CSettings.DefaultMedleyFadeOutTime;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.PreviewStart == 0f)
|
||||
{
|
||||
if (this.Medley.Source == EMedleySource.Calculated)
|
||||
this.PreviewStart = CGame.GetTimeFromBeats(this.Medley.StartBeat, this.BPM);
|
||||
}
|
||||
}
|
||||
|
||||
private void FindShortEnd(){
|
||||
CLines lines = this.Notes.GetLines(0);
|
||||
|
||||
if (lines.LineCount == 0)
|
||||
return;
|
||||
|
||||
// build sentences list
|
||||
List<string> sentences = new List<string>();
|
||||
foreach (CLine line in lines.Line)
|
||||
{
|
||||
if (line.Points != 0)
|
||||
sentences.Add(line.Lyrics);
|
||||
else
|
||||
sentences.Add(String.Empty);
|
||||
}
|
||||
|
||||
// find equal sentences series
|
||||
List<Series> series = new List<Series>();
|
||||
for (int i = 0; i < lines.LineCount - 1; i++)
|
||||
{
|
||||
for (int j = i + 1; j < lines.LineCount; j++)
|
||||
{
|
||||
if (sentences[i] == sentences[j] && sentences[i] != String.Empty)
|
||||
{
|
||||
Series tempSeries = new Series();
|
||||
tempSeries.start = i;
|
||||
tempSeries.end = i;
|
||||
|
||||
int max = 0;
|
||||
if (j + j - i - 1 > lines.LineCount - 1)
|
||||
max = lines.LineCount - 1 - j;
|
||||
else
|
||||
max = j - i - 1;
|
||||
|
||||
for (int k = 1; k <= max; k++)
|
||||
{
|
||||
if (sentences[i + k] == sentences[j + k] && sentences[i + k] != String.Empty)
|
||||
tempSeries.end = i + k;
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
tempSeries.length = tempSeries.end - tempSeries.start + 1;
|
||||
series.Add(tempSeries);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Calculate length of singing
|
||||
int stop = (lines.Line[lines.Line.Length - 1].LastNoteBeat - lines.Line[0].FirstNoteBeat) / 2;
|
||||
|
||||
//Check if stop is in series
|
||||
for (int i = 0; i < series.Count; i++)
|
||||
{
|
||||
if (lines.Line[series[i].start].FirstNoteBeat < stop && lines.Line[series[i].end].LastNoteBeat > stop)
|
||||
{
|
||||
if (stop < (lines.Line[series[i].start].FirstNoteBeat + ((lines.Line[series[i].end].LastNoteBeat - lines.Line[series[i].start].FirstNoteBeat) / 2)))
|
||||
{
|
||||
this.ShortEnd = lines.Line[series[i].start-1].LastNote.EndBeat;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.ShortEnd = lines.Line[series[i].end].LastNote.EndBeat;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Check if stop is in line
|
||||
for (int i = 0; i < lines.Line.Length; i++)
|
||||
{
|
||||
if (lines.Line[i].FirstNoteBeat < stop && lines.Line[i].LastNoteBeat > stop)
|
||||
{
|
||||
this.ShortEnd = lines.Line[i].LastNoteBeat;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
ShortEnd = stop;
|
||||
|
||||
}
|
||||
|
||||
public object Clone()
|
||||
{
|
||||
return base.MemberwiseClone();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -234,6 +234,21 @@ namespace Vocaluxe.Lib.Sound
|
||||
}
|
||||
}
|
||||
|
||||
public void SetStreamVolumeMax(int Stream, float Volume)
|
||||
{
|
||||
if (_Initialized)
|
||||
{
|
||||
lock (MutexDecoder)
|
||||
{
|
||||
if (AlreadyAdded(Stream))
|
||||
{
|
||||
_Decoder[GetStreamIndex(Stream)].VolumeMax = Volume;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public float GetLength(int Stream)
|
||||
{
|
||||
if (_Initialized)
|
||||
@@ -399,6 +414,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
private bool _Initialized;
|
||||
private int _ByteCount = 4;
|
||||
private float _Volume = 1f;
|
||||
private float _VolumeMax = 1f;
|
||||
|
||||
private Stopwatch _fadeTimer = new Stopwatch();
|
||||
|
||||
@@ -500,6 +516,23 @@ namespace Vocaluxe.Lib.Sound
|
||||
}
|
||||
}
|
||||
|
||||
public float VolumeMax
|
||||
{
|
||||
get { return _VolumeMax * 100f; }
|
||||
set
|
||||
{
|
||||
lock (MutexData)
|
||||
{
|
||||
_VolumeMax = value / 100f;
|
||||
if (_VolumeMax < 0f)
|
||||
_VolumeMax = 0f;
|
||||
|
||||
if (_VolumeMax > 1f)
|
||||
_VolumeMax = 1f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public float Position
|
||||
{
|
||||
get
|
||||
@@ -804,7 +837,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
{
|
||||
AL.GetSource(_source, ALGetSourcei.BuffersProcessed, out processed_count);
|
||||
doit = false;
|
||||
Console.WriteLine("Buffers Prozessed on Stream " + _source.ToString() + " = " + processed_count.ToString());
|
||||
Console.WriteLine("Buffers Processed on Stream " + _source.ToString() + " = " + processed_count.ToString());
|
||||
if (processed_count < 1)
|
||||
return;
|
||||
}
|
||||
@@ -826,7 +859,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
b[0] = buf[i];
|
||||
b[1] = buf[i + 1];
|
||||
|
||||
b = BitConverter.GetBytes((Int16)(BitConverter.ToInt16(b, 0) * _Volume));
|
||||
b = BitConverter.GetBytes((Int16)(BitConverter.ToInt16(b, 0) * _Volume * _VolumeMax));
|
||||
buf[i] = b[0];
|
||||
buf[i + 1] = b[1];
|
||||
|
||||
@@ -835,7 +868,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
b[0] = buf[i + 2];
|
||||
b[1] = buf[i + 3];
|
||||
|
||||
b = BitConverter.GetBytes((Int16)(BitConverter.ToInt16(b, 0) * _Volume));
|
||||
b = BitConverter.GetBytes((Int16)(BitConverter.ToInt16(b, 0) * _Volume * _VolumeMax));
|
||||
buf[i + 2] = b[0];
|
||||
buf[i + 3] = b[1];
|
||||
}
|
||||
|
||||
@@ -218,6 +218,21 @@ namespace Vocaluxe.Lib.Sound
|
||||
}
|
||||
}
|
||||
|
||||
public void SetStreamVolumeMax(int Stream, float Volume)
|
||||
{
|
||||
if (_Initialized)
|
||||
{
|
||||
lock (MutexDecoder)
|
||||
{
|
||||
if (AlreadyAdded(Stream))
|
||||
{
|
||||
_Decoder[GetStreamIndex(Stream)].VolumeMax = Volume;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public float GetLength(int Stream)
|
||||
{
|
||||
if (_Initialized)
|
||||
@@ -375,6 +390,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
private bool _Initialized;
|
||||
private int _ByteCount = 4;
|
||||
private float _Volume = 1f;
|
||||
private float _VolumeMax = 1f;
|
||||
|
||||
private Stopwatch _fadeTimer = new Stopwatch();
|
||||
|
||||
@@ -480,6 +496,23 @@ namespace Vocaluxe.Lib.Sound
|
||||
}
|
||||
}
|
||||
|
||||
public float VolumeMax
|
||||
{
|
||||
get { return _VolumeMax * 100f; }
|
||||
set
|
||||
{
|
||||
lock (_LockData)
|
||||
{
|
||||
_VolumeMax = value / 100f;
|
||||
if (_VolumeMax < 0f)
|
||||
_VolumeMax = 0f;
|
||||
|
||||
if (_VolumeMax > 1f)
|
||||
_VolumeMax = 1f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public float Position
|
||||
{
|
||||
get
|
||||
@@ -817,7 +850,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
b[0] = buf[i];
|
||||
b[1] = buf[i + 1];
|
||||
|
||||
b = BitConverter.GetBytes((Int16)(BitConverter.ToInt16(b, 0) * _Volume));
|
||||
b = BitConverter.GetBytes((Int16)(BitConverter.ToInt16(b, 0) * _Volume * _VolumeMax));
|
||||
buf[i] = b[0];
|
||||
buf[i + 1] = b[1];
|
||||
|
||||
@@ -826,7 +859,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
b[0] = buf[i + 2];
|
||||
b[1] = buf[i + 3];
|
||||
|
||||
b = BitConverter.GetBytes((Int16)(BitConverter.ToInt16(b, 0) * _Volume));
|
||||
b = BitConverter.GetBytes((Int16)(BitConverter.ToInt16(b, 0) * _Volume * _VolumeMax));
|
||||
buf[i + 2] = b[0];
|
||||
buf[i + 3] = b[1];
|
||||
}
|
||||
|
||||
@@ -37,7 +37,8 @@ namespace Vocaluxe.Lib.Sound
|
||||
void Fade(int Stream, float TargetVolume, float Seconds);
|
||||
void FadeAndPause(int Stream, float TargetVolume, float Seconds);
|
||||
void FadeAndStop(int Stream, float TargetVolume, float Seconds);
|
||||
void SetStreamVolume(int Stream, float Volume);
|
||||
void SetStreamVolume(int Stream, float Volume);
|
||||
void SetStreamVolumeMax(int Stream, float Volume);
|
||||
|
||||
float GetLength(int Stream);
|
||||
float GetPosition(int Stream);
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
|
||||
namespace Vocaluxe.Menu.Animations
|
||||
{
|
||||
public class CAnimation:IAnimation
|
||||
{
|
||||
private IAnimation _Animation;
|
||||
|
||||
public CAnimation(EAnimationType Type)
|
||||
{
|
||||
setAnimation(Type);
|
||||
}
|
||||
|
||||
public void Init()
|
||||
{
|
||||
_Animation.Init();
|
||||
}
|
||||
|
||||
public bool LoadAnimation(string item, XPathNavigator navigator)
|
||||
{
|
||||
return _Animation.LoadAnimation(item, navigator);
|
||||
}
|
||||
|
||||
public bool SaveAnimation(XmlWriter writer)
|
||||
{
|
||||
return _Animation.SaveAnimation(writer);
|
||||
}
|
||||
|
||||
public void StartAnimation()
|
||||
{
|
||||
_Animation.StartAnimation();
|
||||
}
|
||||
|
||||
public void StopAnimation()
|
||||
{
|
||||
_Animation.StopAnimation();
|
||||
}
|
||||
|
||||
public void ResetAnimation()
|
||||
{
|
||||
_Animation.ResetAnimation();
|
||||
}
|
||||
|
||||
public bool AnimationActive()
|
||||
{
|
||||
return _Animation.AnimationActive();
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
_Animation.Update();
|
||||
}
|
||||
|
||||
public void setRect(SRectF rect)
|
||||
{
|
||||
_Animation.setRect(rect);
|
||||
}
|
||||
|
||||
public SRectF getRect()
|
||||
{
|
||||
return _Animation.getRect();
|
||||
}
|
||||
|
||||
public void setColor(SColorF color)
|
||||
{
|
||||
_Animation.setColor(color);
|
||||
}
|
||||
|
||||
public SColorF getColor()
|
||||
{
|
||||
return _Animation.getColor();
|
||||
}
|
||||
|
||||
public void setAnimation(EAnimationType Type)
|
||||
{
|
||||
switch (Type)
|
||||
{
|
||||
case EAnimationType.Resize:
|
||||
_Animation = new CAnimationResize();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
|
||||
namespace Vocaluxe.Menu.Animations
|
||||
{
|
||||
public enum EAnimationType
|
||||
{
|
||||
Resize
|
||||
}
|
||||
|
||||
public enum EAnimationRepeat
|
||||
{
|
||||
None,
|
||||
Reset,
|
||||
Repeat,
|
||||
RepeatWithReset
|
||||
}
|
||||
|
||||
public abstract class CAnimationFramework:IAnimation
|
||||
{
|
||||
public bool _AnimationLoaded;
|
||||
|
||||
public EAnimationType Type;
|
||||
public EAnimationRepeat Repeat;
|
||||
public float Speed;
|
||||
|
||||
public Stopwatch Timer = new Stopwatch();
|
||||
public bool ResetMode = false;
|
||||
|
||||
public abstract void Init();
|
||||
|
||||
public virtual bool LoadAnimation(string item, XPathNavigator navigator)
|
||||
{
|
||||
_AnimationLoaded = true;
|
||||
|
||||
_AnimationLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Speed", navigator, ref Speed);
|
||||
_AnimationLoaded &= CHelper.TryGetEnumValueFromXML<EAnimationRepeat>(item + "/Repeat", navigator, ref Repeat);
|
||||
|
||||
return _AnimationLoaded;
|
||||
}
|
||||
|
||||
public virtual bool SaveAnimation(XmlWriter writer)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public virtual void StartAnimation()
|
||||
{
|
||||
Timer.Start();
|
||||
}
|
||||
|
||||
public virtual void StopAnimation()
|
||||
{
|
||||
Timer.Stop();
|
||||
Timer.Reset();
|
||||
}
|
||||
|
||||
public virtual void ResetAnimation()
|
||||
{
|
||||
ResetMode = !ResetMode;
|
||||
}
|
||||
|
||||
public virtual bool AnimationActive()
|
||||
{
|
||||
return Timer.IsRunning;
|
||||
}
|
||||
|
||||
public virtual void setRect(SRectF rect)
|
||||
{
|
||||
}
|
||||
|
||||
public virtual SRectF getRect()
|
||||
{
|
||||
return new SRectF();
|
||||
}
|
||||
|
||||
public virtual void setColor(SColorF color)
|
||||
{
|
||||
}
|
||||
|
||||
public virtual SColorF getColor()
|
||||
{
|
||||
return new SColorF();
|
||||
}
|
||||
|
||||
public abstract void Update();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
|
||||
namespace Vocaluxe.Menu.Animations
|
||||
{
|
||||
public class CAnimationResize : CAnimationFramework
|
||||
{
|
||||
public SRectF FinalRect;
|
||||
public SRectF CurrentRect;
|
||||
public SRectF OriginalRect;
|
||||
|
||||
public CAnimationResize()
|
||||
{
|
||||
}
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
Type = EAnimationType.Resize;
|
||||
}
|
||||
|
||||
public override bool LoadAnimation(string item, XPathNavigator navigator)
|
||||
{
|
||||
//Load normal animation-options
|
||||
_AnimationLoaded &= base.LoadAnimation(item, navigator);
|
||||
|
||||
//Load specific animation-options
|
||||
_AnimationLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref FinalRect.X);
|
||||
_AnimationLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref FinalRect.Y);
|
||||
_AnimationLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref FinalRect.W);
|
||||
_AnimationLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref FinalRect.H);
|
||||
|
||||
return _AnimationLoaded;
|
||||
}
|
||||
|
||||
public override void setRect(SRectF rect)
|
||||
{
|
||||
OriginalRect = rect;
|
||||
}
|
||||
|
||||
public override SRectF getRect()
|
||||
{
|
||||
return CurrentRect;
|
||||
}
|
||||
|
||||
public override void StartAnimation()
|
||||
{
|
||||
base.StartAnimation();
|
||||
|
||||
CurrentRect = OriginalRect;
|
||||
}
|
||||
|
||||
public override void Update()
|
||||
{
|
||||
//Update CurrentRect
|
||||
if (!ResetMode)
|
||||
{
|
||||
CLog.LogError((CurrentRect.X + ((FinalRect.X - CurrentRect.X) / Speed * Timer.ElapsedMilliseconds)).ToString("#.#####"));
|
||||
CurrentRect.X = CurrentRect.X + ((FinalRect.X - CurrentRect.X) / Speed * Timer.ElapsedMilliseconds);
|
||||
CurrentRect.Y = CurrentRect.Y + ((FinalRect.Y - CurrentRect.Y) / Speed * Timer.ElapsedMilliseconds);
|
||||
CurrentRect.H = CurrentRect.H + ((FinalRect.H - CurrentRect.H) / Speed * Timer.ElapsedMilliseconds);
|
||||
CurrentRect.W = CurrentRect.W + ((FinalRect.W - CurrentRect.W) / Speed * Timer.ElapsedMilliseconds);
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentRect.X = CurrentRect.X + ((OriginalRect.X - CurrentRect.X) / Speed * Timer.ElapsedMilliseconds);
|
||||
CurrentRect.Y = CurrentRect.Y + ((OriginalRect.Y - CurrentRect.Y) / Speed * Timer.ElapsedMilliseconds);
|
||||
CurrentRect.H = CurrentRect.H + ((OriginalRect.H - CurrentRect.H) / Speed * Timer.ElapsedMilliseconds);
|
||||
CurrentRect.W = CurrentRect.W + ((OriginalRect.W - CurrentRect.W) / Speed * Timer.ElapsedMilliseconds);
|
||||
}
|
||||
|
||||
if (CurrentRect.X == FinalRect.X && CurrentRect.Y == FinalRect.Y && CurrentRect.H == FinalRect.H && CurrentRect.W == FinalRect.W)
|
||||
{
|
||||
switch (Repeat)
|
||||
{
|
||||
case EAnimationRepeat.Repeat:
|
||||
StopAnimation();
|
||||
CurrentRect = OriginalRect;
|
||||
StartAnimation();
|
||||
break;
|
||||
|
||||
case EAnimationRepeat.RepeatWithReset:
|
||||
ResetAnimation();
|
||||
break;
|
||||
|
||||
case EAnimationRepeat.Reset:
|
||||
if (!ResetMode)
|
||||
ResetAnimation();
|
||||
else
|
||||
StopAnimation();
|
||||
break;
|
||||
|
||||
case EAnimationRepeat.None:
|
||||
StopAnimation();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
|
||||
namespace Vocaluxe.Menu.Animations
|
||||
{
|
||||
interface IAnimation
|
||||
{
|
||||
void Init();
|
||||
bool LoadAnimation(string item, XPathNavigator navigator);
|
||||
bool SaveAnimation(XmlWriter writer);
|
||||
|
||||
void setRect(SRectF rect);
|
||||
SRectF getRect();
|
||||
void setColor(SColorF color);
|
||||
SColorF getColor();
|
||||
|
||||
void StartAnimation();
|
||||
void StopAnimation();
|
||||
void ResetAnimation();
|
||||
bool AnimationActive();
|
||||
void Update();
|
||||
}
|
||||
}
|
||||
@@ -38,6 +38,11 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public SColorF Color;
|
||||
|
||||
public string GetThemeName()
|
||||
{
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
#region Constructors
|
||||
public CBackground()
|
||||
{
|
||||
|
||||
@@ -30,7 +30,9 @@ namespace Vocaluxe.Menu
|
||||
public SColorF Color;
|
||||
public SColorF SColor;
|
||||
|
||||
public bool SelText;
|
||||
public CText Text;
|
||||
public CText SText;
|
||||
|
||||
public bool Reflection;
|
||||
public float ReflectionSpace;
|
||||
@@ -40,8 +42,19 @@ namespace Vocaluxe.Menu
|
||||
public float SReflectionSpace;
|
||||
public float SReflectionHeight;
|
||||
|
||||
private bool _Selected;
|
||||
public bool Pressed;
|
||||
|
||||
public bool EditMode
|
||||
{
|
||||
get { return Text.EditMode; }
|
||||
set
|
||||
{
|
||||
Text.EditMode = value;
|
||||
SText.EditMode = value;
|
||||
}
|
||||
}
|
||||
|
||||
private bool _Selected;
|
||||
public bool Selected
|
||||
{
|
||||
get { return _Selected; }
|
||||
@@ -53,6 +66,11 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
public bool Visible;
|
||||
|
||||
public string GetThemeName()
|
||||
{
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public CButton()
|
||||
{
|
||||
_Theme = new SThemeButton();
|
||||
@@ -60,9 +78,12 @@ namespace Vocaluxe.Menu
|
||||
Color = new SColorF();
|
||||
SColor = new SColorF();
|
||||
|
||||
SelText = false;
|
||||
Text = new CText();
|
||||
SText = new CText();
|
||||
Selected = false;
|
||||
Visible = true;
|
||||
EditMode = false;
|
||||
|
||||
Reflection = false;
|
||||
ReflectionSpace = 0f;
|
||||
@@ -113,6 +134,13 @@ namespace Vocaluxe.Menu
|
||||
|
||||
_ThemeLoaded &= Text.LoadTheme(item, "Text", navigator, SkinIndex, true);
|
||||
Text.Z = Rect.Z;
|
||||
if (CHelper.ItemExistsInXML(item + "/SText", navigator))
|
||||
{
|
||||
SelText = true;
|
||||
_ThemeLoaded &= SText.LoadTheme(item, "SText", navigator, SkinIndex, true);
|
||||
SText.Z = Rect.Z;
|
||||
}
|
||||
|
||||
|
||||
//Reflections
|
||||
if (CHelper.ItemExistsInXML(item + "/Reflection", navigator))
|
||||
@@ -189,6 +217,8 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
|
||||
Text.SaveTheme(writer);
|
||||
if (SelText)
|
||||
SText.SaveTheme(writer);
|
||||
|
||||
writer.WriteComment("<Reflection> If exists:");
|
||||
writer.WriteComment(" <Space>: Reflection Space");
|
||||
@@ -240,28 +270,42 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
texture = CTheme.GetSkinTexture(_Theme.TextureName);
|
||||
CDraw.DrawTexture(texture, Rect, Color);
|
||||
Text.DrawRelative(Rect.X, Rect.Y);
|
||||
if (Reflection)
|
||||
{
|
||||
CDraw.DrawTextureReflection(texture, Rect, Color, Rect, ReflectionSpace, ReflectionHeight);
|
||||
Text.DrawRelative(Rect.X, Rect.Y, ReflectionSpace, ReflectionHeight, Rect.H);
|
||||
}
|
||||
}
|
||||
else
|
||||
else if(!SelText)
|
||||
{
|
||||
texture = CTheme.GetSkinTexture(_Theme.STextureName);
|
||||
CDraw.DrawTexture(texture, Rect, SColor);
|
||||
Text.DrawRelative(Rect.X, Rect.Y);
|
||||
if (Reflection)
|
||||
{
|
||||
CDraw.DrawTextureReflection(texture, Rect, SColor, Rect, ReflectionSpace, ReflectionHeight);
|
||||
Text.DrawRelative(Rect.X, Rect.Y, ReflectionSpace, ReflectionHeight, Rect.H);
|
||||
}
|
||||
}
|
||||
|
||||
Text.DrawRelative(Rect.X, Rect.Y);
|
||||
if (Reflection)
|
||||
else if(SelText)
|
||||
{
|
||||
Text.DrawRelative(Rect.X, Rect.Y, ReflectionSpace, ReflectionHeight, Rect.H);
|
||||
texture = CTheme.GetSkinTexture(_Theme.STextureName);
|
||||
CDraw.DrawTexture(texture, Rect, SColor);
|
||||
SText.DrawRelative(Rect.X, Rect.Y);
|
||||
if (Reflection)
|
||||
{
|
||||
CDraw.DrawTextureReflection(texture, Rect, SColor, Rect, ReflectionSpace, ReflectionHeight);
|
||||
SText.DrawRelative(Rect.X, Rect.Y, ReflectionSpace, ReflectionHeight, Rect.H);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void ProcessMouseMove(int x, int y)
|
||||
{
|
||||
Selected = CHelper.IsInBounds(Rect, x, y);
|
||||
}
|
||||
|
||||
public void UnloadTextures()
|
||||
{
|
||||
Text.UnloadTextures();
|
||||
|
||||
@@ -0,0 +1,310 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
|
||||
namespace Vocaluxe.Menu
|
||||
{
|
||||
enum EEqualizerStyle
|
||||
{
|
||||
Collums
|
||||
}
|
||||
|
||||
struct SThemeEqualizer
|
||||
{
|
||||
public string Name;
|
||||
|
||||
public string ColorName;
|
||||
public string MaxColorName;
|
||||
public string TextureName;
|
||||
|
||||
public int NumBars;
|
||||
|
||||
public EEqualizerStyle Style;
|
||||
public EOffOn DrawNegative;
|
||||
}
|
||||
|
||||
class CEqualizer : IMenuElement
|
||||
{
|
||||
private SThemeEqualizer _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
public SRectF Rect;
|
||||
public SColorF Color;
|
||||
public SColorF MaxColor;
|
||||
public float Space;
|
||||
|
||||
public bool Reflection;
|
||||
public float ReflectionSpace;
|
||||
public float ReflectionHeight;
|
||||
|
||||
public bool Selected;
|
||||
public bool Visible;
|
||||
public bool ScreenHandles;
|
||||
|
||||
public string GetThemeName()
|
||||
{
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
private float[] _Bars;
|
||||
|
||||
public CEqualizer()
|
||||
{
|
||||
_Theme = new SThemeEqualizer();
|
||||
_ThemeLoaded = false;
|
||||
|
||||
Rect = new SRectF();
|
||||
Color = new SColorF();
|
||||
MaxColor = new SColorF();
|
||||
|
||||
Selected = false;
|
||||
Visible = true;
|
||||
ScreenHandles = false;
|
||||
|
||||
Reflection = false;
|
||||
ReflectionSpace = 0f;
|
||||
ReflectionHeight = 0f;
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Skin", navigator, ref _Theme.TextureName, String.Empty);
|
||||
|
||||
_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.TryGetIntValueFromXML(item + "/NumBars", navigator, ref _Theme.NumBars);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Space", navigator, ref Space);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EEqualizerStyle>(item + "/Style", navigator, ref _Theme.Style);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EOffOn>(item + "/DrawNegative", navigator, ref _Theme.DrawNegative);
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= CTheme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
|
||||
}
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/MaxColor", navigator, ref _Theme.MaxColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= CTheme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/MaxR", navigator, ref MaxColor.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/MaxG", navigator, ref MaxColor.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/MaxB", navigator, ref MaxColor.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/MaxA", navigator, ref MaxColor.A);
|
||||
}
|
||||
|
||||
//Reflection
|
||||
if (CHelper.ItemExistsInXML(item + "/Reflection", navigator))
|
||||
{
|
||||
Reflection = true;
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Space", navigator, ref ReflectionSpace);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Height", navigator, ref ReflectionHeight);
|
||||
}
|
||||
else
|
||||
Reflection = false;
|
||||
|
||||
if (_ThemeLoaded)
|
||||
{
|
||||
_Theme.Name = ElementName;
|
||||
_Bars = new float[_Theme.NumBars];
|
||||
for (int i = 0; i < _Bars.Length; i++)
|
||||
{
|
||||
_Bars[i] = 0f;
|
||||
}
|
||||
LoadTextures();
|
||||
}
|
||||
return _ThemeLoaded;
|
||||
}
|
||||
|
||||
public bool SaveTheme(XmlWriter writer)
|
||||
{
|
||||
if (_ThemeLoaded)
|
||||
{
|
||||
writer.WriteStartElement(_Theme.Name);
|
||||
|
||||
writer.WriteComment("<Skin>: Texture name");
|
||||
writer.WriteElementString("Skin", _Theme.TextureName);
|
||||
|
||||
writer.WriteComment("<X>, <Y>, <Z>, <W>, <H>: Equalizer 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("<NumBars>: Number of equalizer-elements.");
|
||||
writer.WriteElementString("NumBars", _Theme.NumBars.ToString("#0"));
|
||||
writer.WriteComment("<Space>: Space between equalizer-elements.");
|
||||
writer.WriteElementString("Space", Space.ToString("#0.00"));
|
||||
writer.WriteComment("<Style>: Style of equalizer-elements: " + CConfig.ListStrings(Enum.GetNames(typeof(EEqualizerStyle))));
|
||||
writer.WriteElementString("Style", Enum.GetName(typeof(EEqualizerStyle), _Theme.Style));
|
||||
writer.WriteComment("<DrawNegative>: Draw negative values: " + CConfig.ListStrings(Enum.GetNames(typeof(EOffOn))));
|
||||
writer.WriteElementString("DrawNegative", Enum.GetName(typeof(EOffOn), _Theme.DrawNegative));
|
||||
|
||||
writer.WriteComment("<Color>: Equalizer color from ColorScheme (high priority)");
|
||||
writer.WriteComment("or <R>, <G>, <B>, <A> (lower priority)");
|
||||
if (_Theme.ColorName != String.Empty)
|
||||
{
|
||||
writer.WriteElementString("Color", _Theme.ColorName);
|
||||
}
|
||||
else
|
||||
{
|
||||
writer.WriteElementString("R", Color.R.ToString("#0.00"));
|
||||
writer.WriteElementString("G", Color.G.ToString("#0.00"));
|
||||
writer.WriteElementString("B", Color.B.ToString("#0.00"));
|
||||
writer.WriteElementString("A", Color.A.ToString("#0.00"));
|
||||
}
|
||||
writer.WriteComment("<MaxColor>: Equalizer color for maximal volume from ColorScheme (high priority)");
|
||||
writer.WriteComment("or <MaxR>, <MaxG>, <MaxB>, <MaxA> (lower priority)");
|
||||
if (_Theme.ColorName != String.Empty)
|
||||
{
|
||||
writer.WriteElementString("MaxColor", _Theme.ColorName);
|
||||
}
|
||||
else
|
||||
{
|
||||
writer.WriteElementString("MaxR", Color.R.ToString("#0.00"));
|
||||
writer.WriteElementString("MaxG", Color.G.ToString("#0.00"));
|
||||
writer.WriteElementString("MaxB", Color.B.ToString("#0.00"));
|
||||
writer.WriteElementString("MaxA", Color.A.ToString("#0.00"));
|
||||
}
|
||||
|
||||
writer.WriteComment("<Reflection> If exists:");
|
||||
writer.WriteComment(" <Space>: Reflection Space");
|
||||
writer.WriteComment(" <Height>: Reflection Height");
|
||||
if (Reflection)
|
||||
{
|
||||
writer.WriteStartElement("Reflection");
|
||||
writer.WriteElementString("Space", ReflectionSpace.ToString("#0"));
|
||||
writer.WriteElementString("Height", ReflectionHeight.ToString("#0"));
|
||||
writer.WriteEndElement();
|
||||
}
|
||||
|
||||
writer.WriteEndElement();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void Update(float[] weights)
|
||||
{
|
||||
if (weights == null || weights.Length == 0 || _Bars == null)
|
||||
return;
|
||||
for (int i = 0; i < _Bars.Length; i++)
|
||||
{
|
||||
if (weights.Length > i){
|
||||
_Bars[i] = 1f - weights[i];
|
||||
if (_Theme.DrawNegative == EOffOn.TR_CONFIG_OFF && weights[i] < 0)
|
||||
_Bars[i] = (1f + weights[i]);
|
||||
}
|
||||
else
|
||||
_Bars[i] = 0f;
|
||||
}
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
if (_Bars == null || _Bars.Length == 0)
|
||||
return;
|
||||
|
||||
for (int i = 0; i < _Bars.Length; i++)
|
||||
{
|
||||
_Bars[i] = 0f;
|
||||
}
|
||||
}
|
||||
|
||||
public void Draw()
|
||||
{
|
||||
if (_Bars == null)
|
||||
return;
|
||||
|
||||
float dx = (Rect.W ) / _Bars.Length;
|
||||
int max = _Bars.Length - 1;
|
||||
float maxB = _Bars[max];
|
||||
for (int i = 0; i < _Bars.Length - 1; i++)
|
||||
{
|
||||
if (_Bars[i] > maxB)
|
||||
{
|
||||
maxB = _Bars[i];
|
||||
max = i;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < _Bars.Length; i++)
|
||||
{
|
||||
SRectF bar = new SRectF(Rect.X + dx * i, Rect.Y + Rect.H - _Bars[i] * Rect.H, dx - Space, _Bars[i] * Rect.H, Rect.Z);
|
||||
SColorF color = Color;
|
||||
if (i == max)
|
||||
{
|
||||
color = MaxColor;
|
||||
}
|
||||
|
||||
CDraw.DrawColor(color, bar);
|
||||
|
||||
if (Reflection)
|
||||
CDraw.DrawColorReflection(color, bar, ReflectionSpace, ReflectionHeight);
|
||||
}
|
||||
}
|
||||
|
||||
public void UnloadTextures()
|
||||
{
|
||||
}
|
||||
|
||||
public void LoadTextures()
|
||||
{
|
||||
if (_Theme.ColorName != String.Empty)
|
||||
Color = CTheme.GetColor(_Theme.ColorName);
|
||||
|
||||
if (_Theme.MaxColorName != String.Empty)
|
||||
MaxColor = CTheme.GetColor(_Theme.MaxColorName);
|
||||
}
|
||||
|
||||
public void ReloadTextures()
|
||||
{
|
||||
UnloadTextures();
|
||||
LoadTextures();
|
||||
}
|
||||
|
||||
#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
|
||||
}
|
||||
}
|
||||
@@ -451,20 +451,21 @@ namespace Vocaluxe.Menu
|
||||
KeyEvent KeyEvent = new KeyEvent();
|
||||
MouseEvent MouseEvent = new MouseEvent();
|
||||
|
||||
bool PopupPlayerControlAllowed = _CurrentScreen != EScreens.ScreenOptionsRecord && _CurrentScreen != EScreens.ScreenSing && _CurrentScreen != EScreens.ScreenSong;
|
||||
bool PopupPlayerControlAllowed = _CurrentScreen != EScreens.ScreenOptionsRecord && _CurrentScreen != EScreens.ScreenSing &&
|
||||
_CurrentScreen != EScreens.ScreenSong && _CurrentScreen != EScreens.ScreenCredits;
|
||||
|
||||
bool Resume = true;
|
||||
while (keys.PollEvent(ref KeyEvent))
|
||||
{
|
||||
if (KeyEvent.Key == Keys.Left || KeyEvent.Key == Keys.Right || KeyEvent.Key == Keys.Up || KeyEvent.Key == Keys.Down)
|
||||
{
|
||||
CSettings.MouseInacive();
|
||||
CSettings.MouseInactive();
|
||||
_Cursor.FadeOut();
|
||||
}
|
||||
|
||||
if (PopupPlayerControlAllowed && KeyEvent.Key == Keys.Tab)
|
||||
{
|
||||
if (_CurrentPopupScreen == EPopupScreens.NoPopup)
|
||||
if (_CurrentPopupScreen == EPopupScreens.NoPopup && CConfig.BackgroundMusic == EOffOn.TR_CONFIG_ON)
|
||||
ShowPopup(EPopupScreens.PopupPlayerControl);
|
||||
else
|
||||
HidePopup(EPopupScreens.PopupPlayerControl);
|
||||
@@ -509,7 +510,7 @@ namespace Vocaluxe.Menu
|
||||
bool isOverPopupPlayerControl = CHelper.IsInBounds(_PopupScreens[(int)EPopupScreens.PopupPlayerControl].ScreenArea, MouseEvent);
|
||||
if (PopupPlayerControlAllowed && isOverPopupPlayerControl)
|
||||
{
|
||||
if (_CurrentPopupScreen == EPopupScreens.NoPopup)
|
||||
if (_CurrentPopupScreen == EPopupScreens.NoPopup && CConfig.BackgroundMusic == EOffOn.TR_CONFIG_ON)
|
||||
ShowPopup(EPopupScreens.PopupPlayerControl);
|
||||
}
|
||||
|
||||
@@ -520,7 +521,7 @@ namespace Vocaluxe.Menu
|
||||
if (_CurrentPopupScreen != EPopupScreens.NoPopup)
|
||||
handled = _PopupScreens[(int)_CurrentPopupScreen].HandleMouse(MouseEvent);
|
||||
|
||||
if (!handled && !_Fading && (_Cursor.IsActive || MouseEvent.LB || MouseEvent.RB))
|
||||
if (!handled && !_Fading && (_Cursor.IsActive || MouseEvent.LB || MouseEvent.RB || MouseEvent.MB))
|
||||
Resume &= _Screens[(int)_CurrentScreen].HandleMouse(MouseEvent);
|
||||
}
|
||||
return Resume;
|
||||
|
||||
@@ -14,7 +14,9 @@ namespace Vocaluxe.Menu
|
||||
TSongMenu,
|
||||
TLyric,
|
||||
TSingNote,
|
||||
TNameSelection
|
||||
TNameSelection,
|
||||
TEqualizer,
|
||||
TPlaylist
|
||||
}
|
||||
|
||||
class CInteraction
|
||||
@@ -42,7 +44,9 @@ namespace Vocaluxe.Menu
|
||||
_Type == EType.TStatic ||
|
||||
_Type == EType.TSongMenu ||
|
||||
_Type == EType.TLyric ||
|
||||
_Type == EType.TSingNote);
|
||||
_Type == EType.TSingNote ||
|
||||
_Type == EType.TEqualizer ||
|
||||
_Type == EType.TPlaylist);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -47,6 +47,11 @@ namespace Vocaluxe.Menu
|
||||
|
||||
private float _Alpha = 1f;
|
||||
|
||||
public string GetThemeName()
|
||||
{
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public SRectF Rect
|
||||
{
|
||||
get { return new SRectF(_X, _Y, _MaxW, _H, _Z); }
|
||||
|
||||
@@ -36,6 +36,8 @@ namespace Vocaluxe.Menu
|
||||
private List<CLyric> _Lyrics;
|
||||
private List<CSingNotes> _SingNotes;
|
||||
private List<CNameSelection> _NameSelections;
|
||||
private List<CEqualizer> _Equalizers;
|
||||
private List<CPlaylist> _Playlists;
|
||||
|
||||
private Hashtable _htBackgrounds;
|
||||
private Hashtable _htStatics;
|
||||
@@ -46,6 +48,8 @@ namespace Vocaluxe.Menu
|
||||
private Hashtable _htSelectSlides;
|
||||
private Hashtable _htSingNotes;
|
||||
private Hashtable _htNameSelections;
|
||||
private Hashtable _htEqualizers;
|
||||
private Hashtable _htPlaylists;
|
||||
|
||||
|
||||
private int _PrevMouseX;
|
||||
@@ -67,6 +71,8 @@ namespace Vocaluxe.Menu
|
||||
protected string[] _ThemeSelectSlides;
|
||||
protected string[] _ThemeSingNotes;
|
||||
protected string[] _ThemeNameSelections;
|
||||
protected string[] _ThemeEqualizers;
|
||||
protected string[] _ThemePlaylists;
|
||||
|
||||
protected SRectF _ScreenArea;
|
||||
|
||||
@@ -99,6 +105,8 @@ namespace Vocaluxe.Menu
|
||||
_Lyrics = new List<CLyric>();
|
||||
_SingNotes = new List<CSingNotes>();
|
||||
_NameSelections = new List<CNameSelection>();
|
||||
_Equalizers = new List<CEqualizer>();
|
||||
_Playlists = new List<CPlaylist>();
|
||||
|
||||
_htBackgrounds = new Hashtable();
|
||||
_htStatics = new Hashtable();
|
||||
@@ -109,6 +117,8 @@ namespace Vocaluxe.Menu
|
||||
_htSelectSlides = new Hashtable();
|
||||
_htSingNotes = new Hashtable();
|
||||
_htNameSelections = new Hashtable();
|
||||
_htEqualizers = new Hashtable();
|
||||
_htPlaylists = new Hashtable();
|
||||
|
||||
_PrevMouseX = 0;
|
||||
_PrevMouseY = 0;
|
||||
@@ -129,6 +139,8 @@ namespace Vocaluxe.Menu
|
||||
_ThemeSelectSlides = null;
|
||||
_ThemeSingNotes = null;
|
||||
_ThemeNameSelections = null;
|
||||
_ThemeEqualizers = null;
|
||||
_ThemePlaylists = null;
|
||||
|
||||
}
|
||||
#region ThemeHandler
|
||||
@@ -311,6 +323,38 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (_ThemeEqualizers != null)
|
||||
{
|
||||
for (int i = 0; i < _ThemeEqualizers.Length; i++)
|
||||
{
|
||||
CEqualizer eq = new CEqualizer();
|
||||
if (eq.LoadTheme("//root/" + _ThemeName, _ThemeEqualizers[i], navigator, SkinIndex))
|
||||
{
|
||||
_htEqualizers.Add(_ThemeEqualizers[i], AddEqualizer(eq));
|
||||
}
|
||||
else
|
||||
{
|
||||
CLog.LogError("Can't load equalizer \"" + _ThemeEqualizers[i] + "\" in screen " + _ThemeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (_ThemePlaylists != null)
|
||||
{
|
||||
for (int i = 0; i < _ThemePlaylists.Length; i++)
|
||||
{
|
||||
CPlaylist pls = new CPlaylist();
|
||||
if (pls.LoadTheme("//root/" + _ThemeName, _ThemePlaylists[i], navigator, SkinIndex))
|
||||
{
|
||||
_htPlaylists.Add(_ThemePlaylists[i], AddPlaylist(pls));
|
||||
}
|
||||
else
|
||||
{
|
||||
CLog.LogError("Can't load Playlist \"" + _ThemePlaylists[i] + "\" in screen " + _ThemeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -386,6 +430,18 @@ namespace Vocaluxe.Menu
|
||||
_NameSelections[i].SaveTheme(writer);
|
||||
}
|
||||
|
||||
//Equalizers
|
||||
for (int i = 0; i < _Equalizers.Count; i++)
|
||||
{
|
||||
_Equalizers[i].SaveTheme(writer);
|
||||
}
|
||||
|
||||
//Playlists
|
||||
for (int i = 0; i < _Playlists.Count; i++)
|
||||
{
|
||||
_Playlists[i].SaveTheme(writer);
|
||||
}
|
||||
|
||||
writer.WriteEndElement();
|
||||
|
||||
// End of File
|
||||
@@ -442,6 +498,16 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
ns.ReloadTextures();
|
||||
}
|
||||
|
||||
foreach (CEqualizer eq in _Equalizers)
|
||||
{
|
||||
eq.ReloadTextures();
|
||||
}
|
||||
|
||||
foreach (CPlaylist pls in _Playlists)
|
||||
{
|
||||
pls.ReloadTextures();
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void UnloadTextures()
|
||||
@@ -490,7 +556,15 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
ns.UnloadTextures();
|
||||
}
|
||||
foreach (CPlaylist pls in _Playlists)
|
||||
{
|
||||
pls.UnloadTextures();
|
||||
}
|
||||
|
||||
foreach (CEqualizer eq in _Equalizers)
|
||||
{
|
||||
eq.UnloadTextures();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -547,6 +621,16 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
return _NameSelections;
|
||||
}
|
||||
|
||||
public List<CEqualizer> GetEqualizers()
|
||||
{
|
||||
return _Equalizers;
|
||||
}
|
||||
|
||||
public List<CPlaylist> GetPlaylists()
|
||||
{
|
||||
return _Playlists;
|
||||
}
|
||||
#endregion GetLists
|
||||
|
||||
#region ElementHandler
|
||||
@@ -622,6 +706,22 @@ namespace Vocaluxe.Menu
|
||||
return _NameSelections.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
public CEqualizer[] Equalizers
|
||||
{
|
||||
get
|
||||
{
|
||||
return _Equalizers.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
public CPlaylist[] Playlists
|
||||
{
|
||||
get
|
||||
{
|
||||
return _Playlists.ToArray();
|
||||
}
|
||||
}
|
||||
#endregion Get Arrays
|
||||
|
||||
#region Hashtables
|
||||
@@ -741,6 +841,32 @@ namespace Vocaluxe.Menu
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public int htEqualizer(string key)
|
||||
{
|
||||
try
|
||||
{
|
||||
return (int)_htEqualizers[key];
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
CLog.LogError("Can't find Equalizer Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public int htPlaylists(string key)
|
||||
{
|
||||
try
|
||||
{
|
||||
return (int)_htPlaylists[key];
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
CLog.LogError("Can't find Playlist Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
#endregion Hashtables
|
||||
#endregion ElementHandler
|
||||
|
||||
@@ -752,22 +878,22 @@ namespace Vocaluxe.Menu
|
||||
if (KeyEvent.Key == Keys.Left)
|
||||
{
|
||||
if (_Interactions.Count > 0 && _Interactions[_Selection].Type == EType.TSelectSlide && KeyEvent.Mod != Modifier.Shift)
|
||||
PrevElement();
|
||||
KeyEvent.Handled = PrevElement();
|
||||
else
|
||||
_NextInteraction(KeyEvent);
|
||||
KeyEvent.Handled = _NextInteraction(KeyEvent);
|
||||
}
|
||||
|
||||
if (KeyEvent.Key == Keys.Right)
|
||||
{
|
||||
if (_Interactions.Count > 0 && _Interactions[_Selection].Type == EType.TSelectSlide && KeyEvent.Mod != Modifier.Shift)
|
||||
NextElement();
|
||||
KeyEvent.Handled = NextElement();
|
||||
else
|
||||
_NextInteraction(KeyEvent);
|
||||
KeyEvent.Handled = _NextInteraction(KeyEvent);
|
||||
}
|
||||
|
||||
if (KeyEvent.Key == Keys.Up || KeyEvent.Key == Keys.Down)
|
||||
{
|
||||
_NextInteraction(KeyEvent);
|
||||
KeyEvent.Handled = _NextInteraction(KeyEvent);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -999,7 +1125,9 @@ namespace Vocaluxe.Menu
|
||||
_Interactions[i].Type == EType.TStatic ||
|
||||
_Interactions[i].Type == EType.TNameSelection ||
|
||||
_Interactions[i].Type == EType.TText ||
|
||||
_Interactions[i].Type == EType.TSongMenu))
|
||||
_Interactions[i].Type == EType.TSongMenu ||
|
||||
_Interactions[i].Type == EType.TEqualizer ||
|
||||
_Interactions[i].Type == EType.TPlaylist))
|
||||
{
|
||||
ZSort zs = new ZSort();
|
||||
zs.ID = i;
|
||||
@@ -1085,6 +1213,20 @@ namespace Vocaluxe.Menu
|
||||
_AddInteraction(_NameSelections.Count - 1, EType.TNameSelection);
|
||||
return _NameSelections.Count - 1;
|
||||
}
|
||||
|
||||
public int AddEqualizer(CEqualizer eq)
|
||||
{
|
||||
_Equalizers.Add(eq);
|
||||
_AddInteraction(_Equalizers.Count - 1, EType.TEqualizer);
|
||||
return _Equalizers.Count - 1;
|
||||
}
|
||||
|
||||
public int AddPlaylist(CPlaylist pls)
|
||||
{
|
||||
_Playlists.Add(pls);
|
||||
_AddInteraction(_Playlists.Count - 1, EType.TPlaylist);
|
||||
return _Playlists.Count - 1;
|
||||
}
|
||||
#endregion Elements
|
||||
|
||||
#region InteractionHandling
|
||||
@@ -1100,16 +1242,28 @@ namespace Vocaluxe.Menu
|
||||
_PrevInteraction();
|
||||
}
|
||||
|
||||
public void NextElement()
|
||||
/// <summary>
|
||||
/// Selects the next element in a menu interaction.
|
||||
/// </summary>
|
||||
/// <returns>True if the next element is selected. False if either there is no next element or the interaction does not provide such a method.</returns>
|
||||
public bool NextElement()
|
||||
{
|
||||
if (_Interactions.Count > 0)
|
||||
_NextElement();
|
||||
return _NextElement();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void PrevElement()
|
||||
/// <summary>
|
||||
/// Selects the previous element in a menu interaction.
|
||||
/// </summary>
|
||||
/// <returns>True if the previous element is selected. False if either there is no next element or the interaction does not provide such a method.</returns>
|
||||
public bool PrevElement()
|
||||
{
|
||||
if (_Interactions.Count > 0)
|
||||
_PrevElement();
|
||||
return _PrevElement();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool SetInteractionToButton(CButton button)
|
||||
@@ -1233,6 +1387,14 @@ namespace Vocaluxe.Menu
|
||||
if (CHelper.IsInBounds(_NameSelections[interact.Num].Rect, x, y))
|
||||
return true;
|
||||
break;
|
||||
case EType.TEqualizer:
|
||||
if (CHelper.IsInBounds(_Equalizers[interact.Num].Rect, x, y))
|
||||
return true;
|
||||
break;
|
||||
case EType.TPlaylist:
|
||||
if (CHelper.IsInBounds(_Playlists[interact.Num].Rect, x, y))
|
||||
return true;
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -1255,6 +1417,10 @@ namespace Vocaluxe.Menu
|
||||
return _Lyrics[interact.Num].Rect.Z;
|
||||
case EType.TNameSelection:
|
||||
return _NameSelections[interact.Num].Rect.Z;
|
||||
case EType.TEqualizer:
|
||||
return _Equalizers[interact.Num].Rect.Z;
|
||||
case EType.TPlaylist:
|
||||
return _Playlists[interact.Num].Rect.Z;
|
||||
}
|
||||
return CSettings.zFar;
|
||||
}
|
||||
@@ -1283,6 +1449,12 @@ namespace Vocaluxe.Menu
|
||||
|
||||
case EType.TNameSelection:
|
||||
return _NameSelections[_Interactions[interaction].Num].Rect.Z;
|
||||
|
||||
case EType.TEqualizer:
|
||||
return _Equalizers[_Interactions[interaction].Num].Rect.Z;
|
||||
|
||||
case EType.TPlaylist:
|
||||
return _Playlists[_Interactions[interaction].Num].Rect.Z;
|
||||
}
|
||||
|
||||
return CSettings.zFar;
|
||||
@@ -1342,7 +1514,12 @@ namespace Vocaluxe.Menu
|
||||
_SetSelected();
|
||||
}
|
||||
|
||||
private void _NextInteraction(KeyEvent Key)
|
||||
/// <summary>
|
||||
/// Selects the next best interaction in a menu.
|
||||
/// </summary>
|
||||
/// <param name="Key"></param>
|
||||
/// <returns></returns>
|
||||
private bool _NextInteraction(KeyEvent Key)
|
||||
{
|
||||
KeyEvent[] Directions = new KeyEvent[4];
|
||||
float[] Distances = new float[4];
|
||||
@@ -1408,8 +1585,11 @@ namespace Vocaluxe.Menu
|
||||
_Selection = element;
|
||||
_SetSelected();
|
||||
_SetHighlighted(_Selection);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private int _GetNextElement(KeyEvent Key, out float Distance, out int Stage)
|
||||
@@ -1501,22 +1681,22 @@ namespace Vocaluxe.Menu
|
||||
switch (Key.Key)
|
||||
{
|
||||
case Keys.Up:
|
||||
if (vector.Y < 0f && (targetRect.X + targetRect.W > actualRect.X || actualRect.X + actualRect.W > targetRect.X))
|
||||
if (vector.Y < 0f && (targetRect.X + targetRect.W > actualRect.X && actualRect.X + actualRect.W > targetRect.X))
|
||||
inDirection = true;
|
||||
break;
|
||||
|
||||
case Keys.Down:
|
||||
if (vector.Y > 0f && (targetRect.X + targetRect.W > actualRect.X || actualRect.X + actualRect.W > targetRect.X))
|
||||
if (vector.Y > 0f && (targetRect.X + targetRect.W > actualRect.X && actualRect.X + actualRect.W > targetRect.X))
|
||||
inDirection = true;
|
||||
break;
|
||||
|
||||
case Keys.Left:
|
||||
if (vector.X < 0f && (targetRect.Y + targetRect.H > actualRect.Y || actualRect.Y + actualRect.H > targetRect.Y))
|
||||
if (vector.X < 0f && (targetRect.Y + targetRect.H > actualRect.Y && actualRect.Y + actualRect.H > targetRect.Y))
|
||||
inDirection = true;
|
||||
break;
|
||||
|
||||
case Keys.Right:
|
||||
if (vector.X > 0f && (targetRect.Y + targetRect.H > actualRect.Y || actualRect.Y + actualRect.H > targetRect.Y))
|
||||
if (vector.X > 0f && (targetRect.Y + targetRect.H > actualRect.Y && actualRect.Y + actualRect.H > targetRect.Y))
|
||||
inDirection = true;
|
||||
break;
|
||||
|
||||
@@ -1568,16 +1748,30 @@ namespace Vocaluxe.Menu
|
||||
return distance;
|
||||
}
|
||||
|
||||
private void _NextElement()
|
||||
/// <summary>
|
||||
/// Selects the next element in a menu interaction.
|
||||
/// </summary>
|
||||
/// <returns>True if the next element is selected. False if either there is no next element or the interaction does not provide such a method.</returns>
|
||||
private bool _NextElement()
|
||||
{
|
||||
if (_Interactions[_Selection].Type == EType.TSelectSlide)
|
||||
_SelectSlides[_Interactions[_Selection].Num].NextValue();
|
||||
return _SelectSlides[_Interactions[_Selection].Num].NextValue();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private void _PrevElement()
|
||||
/// <summary>
|
||||
/// Selects the previous element in a menu interaction.
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// True if the previous element is selected. False if either there is no previous element or the interaction does not provide such a method.
|
||||
/// </returns>
|
||||
private bool _PrevElement()
|
||||
{
|
||||
if (_Interactions[_Selection].Type == EType.TSelectSlide)
|
||||
_SelectSlides[_Interactions[_Selection].Num].PrevValue();
|
||||
return _SelectSlides[_Interactions[_Selection].Num].PrevValue();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private void _SetSelected()
|
||||
@@ -1605,6 +1799,12 @@ namespace Vocaluxe.Menu
|
||||
case EType.TNameSelection:
|
||||
_NameSelections[_Interactions[_Selection].Num].Selected = true;
|
||||
break;
|
||||
case EType.TEqualizer:
|
||||
_Equalizers[_Interactions[_Selection].Num].Selected = true;
|
||||
break;
|
||||
case EType.TPlaylist:
|
||||
_Playlists[_Interactions[_Selection].Num].Selected = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1633,6 +1833,12 @@ namespace Vocaluxe.Menu
|
||||
case EType.TNameSelection:
|
||||
_NameSelections[_Interactions[_Selection].Num].Selected = false;
|
||||
break;
|
||||
case EType.TEqualizer:
|
||||
_Equalizers[_Interactions[_Selection].Num].Selected = false;
|
||||
break;
|
||||
case EType.TPlaylist:
|
||||
_Playlists[_Interactions[_Selection].Num].Selected = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1664,6 +1870,9 @@ namespace Vocaluxe.Menu
|
||||
case EType.TNameSelection:
|
||||
//_NameSelections[_Interactions[selection].Num].Selected = true;
|
||||
break;
|
||||
case EType.TPlaylist:
|
||||
//_Playlists[_Interactions[_Selection].Num].Selected = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1695,6 +1904,9 @@ namespace Vocaluxe.Menu
|
||||
case EType.TNameSelection:
|
||||
//_NameSelections[_Interactions[selection].Num].Selected = false;
|
||||
break;
|
||||
case EType.TPlaylist:
|
||||
//_Playlists[_Interactions[_Selection].Num].Selected = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1744,6 +1956,12 @@ namespace Vocaluxe.Menu
|
||||
|
||||
case EType.TNameSelection:
|
||||
return _NameSelections[_Interactions[interaction].Num].Visible;
|
||||
|
||||
case EType.TEqualizer:
|
||||
return _Equalizers[_Interactions[interaction].Num].Visible;
|
||||
|
||||
case EType.TPlaylist:
|
||||
return _Playlists[_Interactions[interaction].Num].Visible;
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -1774,6 +1992,12 @@ namespace Vocaluxe.Menu
|
||||
|
||||
case EType.TNameSelection:
|
||||
return _NameSelections[_Interactions[interaction].Num].Rect;
|
||||
|
||||
case EType.TEqualizer:
|
||||
return _Equalizers[_Interactions[interaction].Num].Rect;
|
||||
|
||||
case EType.TPlaylist:
|
||||
return _Playlists[_Interactions[interaction].Num].Rect;
|
||||
}
|
||||
|
||||
return Result;
|
||||
@@ -1815,6 +2039,19 @@ namespace Vocaluxe.Menu
|
||||
case EType.TNameSelection:
|
||||
_NameSelections[_Interactions[interaction].Num].Draw();
|
||||
break;
|
||||
|
||||
case EType.TEqualizer:
|
||||
if (!_Equalizers[_Interactions[interaction].Num].ScreenHandles)
|
||||
{
|
||||
//TODO:
|
||||
//Call Update-Method of Equalizer and give infos about bg-sound.
|
||||
//_Equalizers[_Interactions[interaction].Num].Draw();
|
||||
}
|
||||
break;
|
||||
|
||||
case EType.TPlaylist:
|
||||
_Playlists[_Interactions[interaction].Num].Draw();
|
||||
break;
|
||||
|
||||
//TODO:
|
||||
//case EType.TLyric:
|
||||
@@ -1859,6 +2096,10 @@ namespace Vocaluxe.Menu
|
||||
case EType.TNameSelection:
|
||||
_NameSelections[_Interactions[_Selection].Num].MoveElement(stepX, stepY);
|
||||
break;
|
||||
|
||||
case EType.TPlaylist:
|
||||
_Playlists[_Interactions[_Selection].Num].MoveElement(stepX, stepY);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1896,6 +2137,10 @@ namespace Vocaluxe.Menu
|
||||
case EType.TNameSelection:
|
||||
_NameSelections[_Interactions[_Selection].Num].ResizeElement(stepW, stepH);
|
||||
break;
|
||||
|
||||
case EType.TPlaylist:
|
||||
_Playlists[_Interactions[_Selection].Num].ResizeElement(stepW, stepH);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,6 +49,11 @@ namespace Vocaluxe.Menu
|
||||
private SThemeNameSelection _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
public string GetThemeName()
|
||||
{
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool Selected = false;
|
||||
public bool Visible = true;
|
||||
|
||||
|
||||
@@ -38,11 +38,16 @@ namespace Vocaluxe.Menu
|
||||
public EStyle TextStyle;
|
||||
}
|
||||
|
||||
class CSelectSlide : IMenuElement
|
||||
class CSelectSlide : IMenuElement, ICloneable
|
||||
{
|
||||
private SThemeSelectSlide _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
public string GetThemeName()
|
||||
{
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public SRectF Rect;
|
||||
public SRectF RectArrowLeft;
|
||||
public SRectF RectArrowRight;
|
||||
@@ -56,6 +61,9 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public SColorF TextColor;
|
||||
public SColorF STextColor;
|
||||
|
||||
public float TextRelativeX;
|
||||
public float TextRelativeY;
|
||||
public float TextH;
|
||||
public float MaxW;
|
||||
|
||||
@@ -112,6 +120,14 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
}
|
||||
|
||||
public int NumValues
|
||||
{
|
||||
get
|
||||
{
|
||||
return _ValueNames.Count;
|
||||
}
|
||||
}
|
||||
|
||||
private int _NumVisible = -1;
|
||||
public int NumVisible
|
||||
{
|
||||
@@ -151,6 +167,63 @@ namespace Vocaluxe.Menu
|
||||
_ValueNames = new List<string>();
|
||||
}
|
||||
|
||||
public CSelectSlide(CSelectSlide slide)
|
||||
{
|
||||
_Theme = new SThemeSelectSlide();
|
||||
|
||||
_Theme.TextureArrowLeftName = slide._Theme.TextureArrowLeftName;
|
||||
_Theme.TextureArrowRightName = slide._Theme.TextureArrowRightName;
|
||||
|
||||
_Theme.STextureName = slide._Theme.STextureName;
|
||||
_Theme.STextureArrowLeftName = slide._Theme.STextureArrowLeftName;
|
||||
_Theme.STextureArrowRightName = slide._Theme.STextureArrowRightName;
|
||||
|
||||
_Theme.HTextureName = slide._Theme.HTextureName;
|
||||
|
||||
_Theme.ColorName = slide._Theme.ColorName;
|
||||
_Theme.SColorName = slide._Theme.SColorName;
|
||||
_Theme.HColorName = slide._Theme.HColorName;
|
||||
|
||||
_Theme.ArrowColorName = slide._Theme.ArrowColorName;
|
||||
_Theme.SArrowColorName = slide._Theme.SArrowColorName;
|
||||
|
||||
_Theme.TextColorName = slide._Theme.TextColorName;
|
||||
_Theme.STextColorName = slide._Theme.STextColorName;
|
||||
|
||||
_Theme.TextFont = slide._Theme.TextFont;
|
||||
_Theme.TextStyle = slide._Theme.TextStyle;
|
||||
|
||||
_ThemeLoaded = false;
|
||||
|
||||
Rect = new SRectF(slide.Rect);
|
||||
RectArrowLeft = new SRectF(slide.RectArrowLeft);
|
||||
RectArrowRight = new SRectF(slide.RectArrowRight);
|
||||
|
||||
Color = new SColorF(slide.Color);
|
||||
SColor = new SColorF(slide.SColor);
|
||||
|
||||
ColorArrow = new SColorF(slide.ColorArrow);
|
||||
SColorArrow = new SColorF(slide.SColorArrow);
|
||||
|
||||
TextColor = new SColorF(slide.TextColor);
|
||||
STextColor = new SColorF(slide.STextColor);
|
||||
TextH = slide.TextH;
|
||||
TextRelativeX = slide.TextRelativeX;
|
||||
TextRelativeY = slide.TextRelativeY;
|
||||
MaxW = slide.MaxW;
|
||||
|
||||
_Selected = slide._Selected;
|
||||
_Textures = new List<STexture>(slide._Textures);
|
||||
_ValueIndexes = new List<int>(slide._ValueIndexes);
|
||||
_ValueNames = new List<string>(slide._ValueNames);
|
||||
_ValueBounds = new List<SRectF>(slide._ValueBounds);
|
||||
_Selection = slide._Selection;
|
||||
_NumVisible = slide._NumVisible;
|
||||
|
||||
WithTextures = slide.WithTextures;
|
||||
Visible = slide.Visible;
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
@@ -269,6 +342,10 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextH", navigator, ref TextH);
|
||||
if(CHelper.TryGetFloatValueFromXML(item + "/TextRelativeX", navigator, ref TextRelativeX))
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextRelativeX", navigator, ref TextRelativeX);
|
||||
if(CHelper.TryGetFloatValueFromXML(item + "/TextRelativeY", navigator, ref TextRelativeY))
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextRelativeY", navigator, ref TextRelativeY);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextMaxW", navigator, ref MaxW);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/TextFont", navigator, ref _Theme.TextFont, "Normal");
|
||||
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EStyle>(item + "/TextStyle", navigator, ref _Theme.TextStyle);
|
||||
@@ -433,6 +510,14 @@ namespace Vocaluxe.Menu
|
||||
writer.WriteComment("<TextH>: Text height");
|
||||
writer.WriteElementString("TextH", TextH.ToString("#0.00"));
|
||||
|
||||
writer.WriteComment("<TextRelativeX>: Text relative x-position");
|
||||
if (TextRelativeX != 0)
|
||||
writer.WriteElementString("TextRelativeX", TextRelativeX.ToString("#0.00"));
|
||||
|
||||
writer.WriteComment("<TextRelativeY>: Text relative y-position");
|
||||
if (TextRelativeY != 0)
|
||||
writer.WriteElementString("TextRelativeY", TextRelativeY.ToString("#0.00"));
|
||||
|
||||
writer.WriteComment("<TextMaxW>: Maximum text width (if exists)");
|
||||
writer.WriteElementString("TextMaxW", MaxW.ToString("#0.00"));
|
||||
|
||||
@@ -581,14 +666,13 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public void ProcessMouseMove(int x, int y)
|
||||
{
|
||||
_ArrowLeftSelected = CHelper.IsInBounds(RectArrowLeft, x, y);
|
||||
_ArrowRightSelected = CHelper.IsInBounds(RectArrowRight, x, y);
|
||||
_ArrowLeftSelected = CHelper.IsInBounds(RectArrowLeft, x, y) && _Selection > 0;
|
||||
_ArrowRightSelected = CHelper.IsInBounds(RectArrowRight, x, y) && _Selection < _ValueNames.Count - 1;
|
||||
}
|
||||
|
||||
public void ProcessMouseLBClick(int x, int y)
|
||||
{
|
||||
_ArrowLeftSelected = CHelper.IsInBounds(RectArrowLeft, x, y);
|
||||
_ArrowRightSelected = CHelper.IsInBounds(RectArrowRight, x, y);
|
||||
ProcessMouseMove(x, y);
|
||||
|
||||
if (_ArrowLeftSelected)
|
||||
PrevValue();
|
||||
@@ -688,12 +772,12 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
|
||||
RectangleF bounds = CDraw.GetTextBounds(Text);
|
||||
Text.X = x + dx/2f + dx * i;
|
||||
Text.X = (x + dx/2f + dx * i)+TextRelativeX;
|
||||
|
||||
if (!WithTextures)
|
||||
Text.Y = (int)(Rect.Y + (Rect.H - bounds.Height) / 2);
|
||||
Text.Y = (int)((Rect.Y + (Rect.H - bounds.Height) / 2) + TextRelativeY);
|
||||
else
|
||||
Text.Y = (int)(Rect.Y + (Rect.H - bounds.Height));
|
||||
Text.Y = (int)((Rect.Y + (Rect.H - bounds.Height)) + TextRelativeY);
|
||||
|
||||
Text.Z = Rect.Z;
|
||||
Text.Draw();
|
||||
@@ -746,6 +830,11 @@ namespace Vocaluxe.Menu
|
||||
LoadTextures();
|
||||
}
|
||||
|
||||
public object Clone()
|
||||
{
|
||||
return base.MemberwiseClone();
|
||||
}
|
||||
|
||||
#region ThemeEdit
|
||||
public void MoveElement(int stepX, int stepY)
|
||||
{
|
||||
|
||||
@@ -22,6 +22,11 @@ namespace Vocaluxe.Menu
|
||||
private SThemeStatic _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
public string GetThemeName()
|
||||
{
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
private STexture _Texture;
|
||||
public STexture Texture
|
||||
{
|
||||
@@ -65,6 +70,23 @@ namespace Vocaluxe.Menu
|
||||
Visible = true;
|
||||
}
|
||||
|
||||
public CStatic(CStatic s)
|
||||
{
|
||||
_Theme = new SThemeStatic();
|
||||
_ThemeLoaded = false;
|
||||
|
||||
_Texture = s.Texture;
|
||||
Color = new SColorF(s.Color);
|
||||
Rect = new SRectF(s.Rect);
|
||||
Reflection = s.Reflection;
|
||||
ReflectionSpace = s.ReflectionHeight;
|
||||
ReflectionHeight = s.ReflectionSpace;
|
||||
|
||||
Selected = s.Selected;
|
||||
Alpha = s.Alpha;
|
||||
Visible = s.Visible;
|
||||
}
|
||||
|
||||
public CStatic(STexture texture, SColorF color, SRectF rect)
|
||||
{
|
||||
_Theme = new SThemeStatic();
|
||||
|
||||
@@ -41,6 +41,12 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
private SThemeText _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
public string GetThemeName()
|
||||
{
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
private bool _ButtonText;
|
||||
private bool _PositionNeedsUpdate = true;
|
||||
|
||||
@@ -211,6 +217,7 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public bool Selected;
|
||||
public bool Visible = true;
|
||||
public bool EditMode = false;
|
||||
|
||||
public float Alpha = 1f;
|
||||
|
||||
@@ -243,6 +250,37 @@ namespace Vocaluxe.Menu
|
||||
Alpha = 1f;
|
||||
}
|
||||
|
||||
public CText(CText text)
|
||||
{
|
||||
_Theme = new SThemeText();
|
||||
_ThemeLoaded = false;
|
||||
_ButtonText = false;
|
||||
|
||||
X = text._X;
|
||||
Y = text._Y;
|
||||
Z = text._Z;
|
||||
Height = text._Height;
|
||||
MaxWidth = text._MaxWidth;
|
||||
Bounds = new SRectF(text._Bounds);
|
||||
Align = text._Align;
|
||||
HAlign = text._HAlign;
|
||||
Style = text._Style;
|
||||
Fon = text._Fon;
|
||||
|
||||
Color = new SColorF(text.Color);
|
||||
SColor = new SColorF(text.SColor);
|
||||
Reflection = text.Reflection;
|
||||
ReflectionSpace = text.ReflectionSpace;
|
||||
ReflectionHeight = text.ReflectionHeight;
|
||||
|
||||
Text = text._Text;
|
||||
Selected = text.Selected;
|
||||
Visible = text.Visible;
|
||||
Alpha = text.Alpha;
|
||||
|
||||
EditMode = text.EditMode;
|
||||
}
|
||||
|
||||
public CText(float x, float y, float z, EAlignment align, float h, float mw, float r, float g, float b, float a, EStyle style, string font, string text, float rspace, float rheight)
|
||||
{
|
||||
_Theme = new SThemeText();
|
||||
@@ -538,7 +576,7 @@ namespace Vocaluxe.Menu
|
||||
writer.WriteComment("<Font>: Text font name");
|
||||
writer.WriteElementString("Font", Fon);
|
||||
|
||||
writer.WriteComment("<Text>: Text or translation tag");
|
||||
writer.WriteComment("<Text>: Nothing or translation tag");
|
||||
if (CLanguage.TranslationExists(_Theme.Text))
|
||||
writer.WriteElementString("Text", _Theme.Text);
|
||||
else
|
||||
@@ -596,8 +634,10 @@ namespace Vocaluxe.Menu
|
||||
|
||||
SColorF color = new SColorF(CurrentColor.R, CurrentColor.G, CurrentColor.B, CurrentColor.A * Alpha);
|
||||
|
||||
|
||||
CFonts.DrawText(_Text, _DrawPosition.tH, _DrawPosition.X, _DrawPosition.Y, Z, color);
|
||||
if (!EditMode)
|
||||
CFonts.DrawText(_Text, _DrawPosition.tH, _DrawPosition.X, _DrawPosition.Y, Z, color);
|
||||
else
|
||||
CFonts.DrawText(_Text + "|", _DrawPosition.tH, _DrawPosition.X, _DrawPosition.Y, Z, color);
|
||||
|
||||
if (Reflection)
|
||||
{
|
||||
@@ -616,7 +656,10 @@ namespace Vocaluxe.Menu
|
||||
default:
|
||||
break;
|
||||
}
|
||||
CFonts.DrawTextReflection(_Text, _DrawPosition.tH, _DrawPosition.X, _DrawPosition.Y, Z, color, ReflectionSpace + sFactor, ReflectionHeight);
|
||||
if (!EditMode)
|
||||
CFonts.DrawTextReflection(_Text, _DrawPosition.tH, _DrawPosition.X, _DrawPosition.Y, Z, color, ReflectionSpace + sFactor, ReflectionHeight);
|
||||
else
|
||||
CFonts.DrawTextReflection(_Text + "|", _DrawPosition.tH, _DrawPosition.X, _DrawPosition.Y, Z, color, ReflectionSpace + sFactor, ReflectionHeight);
|
||||
}
|
||||
|
||||
if (Selected && (CSettings.GameState == EGameState.EditTheme))
|
||||
@@ -653,7 +696,11 @@ namespace Vocaluxe.Menu
|
||||
|
||||
CFonts.SetFont(Fon);
|
||||
CFonts.Style = Style;
|
||||
CFonts.DrawText(Text, Height, x, Y, Z, color, begin, end);
|
||||
|
||||
if (!EditMode)
|
||||
CFonts.DrawText(Text, Height, x, Y, Z, color, begin, end);
|
||||
else
|
||||
CFonts.DrawText(Text + "|", Height, x, Y, Z, color, begin, end);
|
||||
|
||||
if (Reflection)
|
||||
{
|
||||
@@ -732,13 +779,21 @@ namespace Vocaluxe.Menu
|
||||
|
||||
CFonts.SetFont(Fon);
|
||||
CFonts.Style = Style;
|
||||
CFonts.DrawText(_Text, h, x, y, Z, color);
|
||||
|
||||
if (!EditMode)
|
||||
CFonts.DrawText(_Text, h, x, y, Z, color);
|
||||
else
|
||||
CFonts.DrawText(_Text + "|", h, x, y, Z, color);
|
||||
|
||||
if (reflection)
|
||||
{
|
||||
float space = (rectHeight - Y - bounds.Height) * 2f + reflectionSpace;
|
||||
float height = reflectionHeight - (rectHeight - Y) + bounds.Height;
|
||||
CFonts.DrawTextReflection(_Text, h, x, y, Z, color, space, height);
|
||||
|
||||
if (!EditMode)
|
||||
CFonts.DrawTextReflection(_Text, h, x, y, Z, color, space, height);
|
||||
else
|
||||
CFonts.DrawTextReflection(_Text + "|", h, x, y, Z, color, space, height);
|
||||
}
|
||||
|
||||
if (Selected && (CSettings.GameState == EGameState.EditTheme))
|
||||
|
||||
@@ -8,6 +8,7 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
interface IMenuElement
|
||||
{
|
||||
string GetThemeName();
|
||||
bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex);
|
||||
bool SaveTheme(XmlWriter writer);
|
||||
|
||||
|
||||
@@ -75,6 +75,11 @@ namespace Vocaluxe.Menu.SingNotes
|
||||
_ActID = 0;
|
||||
}
|
||||
|
||||
public string GetThemeName()
|
||||
{
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
@@ -304,7 +309,7 @@ namespace Vocaluxe.Menu.SingNotes
|
||||
float h = _PlayerNotes[n].Rect.H;
|
||||
float dh = h / CSettings.NumNoteLines * (2f - (int)CGame.Player[_PlayerNotes[n].PlayerNr].Difficulty) / 4f;
|
||||
|
||||
float beats = Line.LastBeat - Line.FirstBeat + 1;
|
||||
float beats = Line.LastNoteBeat - Line.FirstNoteBeat + 1;
|
||||
|
||||
if (beats == 0)
|
||||
return;
|
||||
@@ -324,7 +329,7 @@ namespace Vocaluxe.Menu.SingNotes
|
||||
float width = note.Duration / beats * w;
|
||||
|
||||
SRectF rect = new SRectF(
|
||||
_PlayerNotes[n].Rect.X + (note.StartBeat - Line.FirstBeat) / beats * w,
|
||||
_PlayerNotes[n].Rect.X + (note.StartBeat - Line.FirstNoteBeat) / beats * w,
|
||||
_PlayerNotes[n].Rect.Y + (CSettings.NumNoteLines - 1 - (note.Tone - BaseLine)/2) / CSettings.NumNoteLines * h - dh,
|
||||
width,
|
||||
h / CSettings.NumNoteLines + 2 * dh,
|
||||
@@ -344,7 +349,7 @@ namespace Vocaluxe.Menu.SingNotes
|
||||
|
||||
if (CConfig.DrawToneHelper == EOffOn.TR_CONFIG_ON)
|
||||
{
|
||||
DrawToneHelper(n, (int)BaseLine, (CGame.MidBeatD - Line.FirstBeat) / beats * w);
|
||||
DrawToneHelper(n, (int)BaseLine, (CGame.MidBeatD - Line.FirstNoteBeat) / beats * w);
|
||||
}
|
||||
|
||||
int i = 0;
|
||||
@@ -377,7 +382,7 @@ namespace Vocaluxe.Menu.SingNotes
|
||||
|
||||
foreach (CNote note in SingLine[CGame.Player[Player].CurrentLine].Notes)
|
||||
{
|
||||
if (note.StartBeat >= Line.FirstBeat && note.EndBeat <= Line.LastBeat)
|
||||
if (note.StartBeat >= Line.FirstNoteBeat && note.EndBeat <= Line.LastNoteBeat)
|
||||
{
|
||||
float width = note.Duration / beats * w;
|
||||
|
||||
@@ -385,7 +390,7 @@ namespace Vocaluxe.Menu.SingNotes
|
||||
width -= (1 - (CGame.MidBeatD - CGame.ActBeatD)) / beats * w;
|
||||
|
||||
SRectF rect = new SRectF(
|
||||
_PlayerNotes[n].Rect.X + (note.StartBeat - Line.FirstBeat) / beats * w,
|
||||
_PlayerNotes[n].Rect.X + (note.StartBeat - Line.FirstNoteBeat) / beats * w,
|
||||
_PlayerNotes[n].Rect.Y + (CSettings.NumNoteLines - 1 - (note.Tone - BaseLine)/2) / CSettings.NumNoteLines * h - dh,
|
||||
width,
|
||||
h / CSettings.NumNoteLines + 2 * dh,
|
||||
|
||||
@@ -73,11 +73,31 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_SongMenu.Draw();
|
||||
}
|
||||
|
||||
public void ApplyVolume(float VolumeMax)
|
||||
{
|
||||
_SongMenu.ApplyVolume(VolumeMax);
|
||||
}
|
||||
|
||||
public bool IsActive()
|
||||
{
|
||||
return _SongMenu.IsActive();
|
||||
}
|
||||
|
||||
public void SetActive(bool Active)
|
||||
{
|
||||
_SongMenu.SetActive(Active);
|
||||
}
|
||||
|
||||
public int GetSelectedSong()
|
||||
{
|
||||
return _SongMenu.GetSelectedSong();
|
||||
}
|
||||
|
||||
public CStatic GetSelectedSongCover()
|
||||
{
|
||||
return _SongMenu.GetSelectedSongCover();
|
||||
}
|
||||
|
||||
public void SetSelectedSong(int VisibleSongNr)
|
||||
{
|
||||
_SongMenu.SetSelectedSong(VisibleSongNr);
|
||||
@@ -88,6 +108,11 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
return _SongMenu.GetSelectedCategory();
|
||||
}
|
||||
|
||||
public void SetSelectedCategory(int CategoryNr)
|
||||
{
|
||||
_SongMenu.SetSelectedCategory(CategoryNr);
|
||||
}
|
||||
|
||||
public int GetActualSelection()
|
||||
{
|
||||
return _SongMenu.GetActualSelection();
|
||||
@@ -118,9 +143,24 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
return _SongMenu.GetRect();
|
||||
}
|
||||
|
||||
public bool IsSmallView()
|
||||
{
|
||||
return _SongMenu.IsSmallView();
|
||||
}
|
||||
|
||||
public void SetSmallView(bool SmallView)
|
||||
{
|
||||
_SongMenu.SetSmallView(SmallView);
|
||||
}
|
||||
|
||||
#endregion ISongMenu
|
||||
|
||||
#region IMenuElement
|
||||
public string GetThemeName()
|
||||
{
|
||||
return _SongMenu.GetThemeName();
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
{
|
||||
return _SongMenu.LoadTheme(XmlPath, ElementName, navigator, SkinIndex);
|
||||
|
||||
@@ -1,10 +1,48 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
using Vocaluxe.Lib.Song;
|
||||
|
||||
namespace Vocaluxe.Menu.SongMenu
|
||||
{
|
||||
class CSongMenuDreidel : CSongMenuFramework
|
||||
{
|
||||
private SRectF _ScrollRect;
|
||||
private CStatic _CoverBig;
|
||||
private CStatic _TextBG;
|
||||
|
||||
private CStatic _DuetIcon;
|
||||
private CStatic _VideoIcon;
|
||||
|
||||
private CText _Artist;
|
||||
private CText _Title;
|
||||
private CText _SongLength;
|
||||
|
||||
private int _actualSelection = -1;
|
||||
|
||||
public override int GetActualSelection()
|
||||
{
|
||||
return _actualSelection;
|
||||
}
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
/**
|
||||
_CoverBig = _Theme.songMenuDreidel.StaticCoverBig;
|
||||
_TextBG = _Theme.songMenuDreidel.StaticTextBG;
|
||||
_DuetIcon = _Theme.songMenuDreidel.StaticDuetIcon;
|
||||
_VideoIcon = _Theme.songMenuDreidel.StaticVideoIcon;
|
||||
|
||||
_Artist = _Theme.songMenuDreidel.TextArtist;
|
||||
_Title = _Theme.songMenuDreidel.TextTitle;
|
||||
_SongLength = _Theme.songMenuDreidel.TextSongLength;
|
||||
**/
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,9 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
public string DuetIconName;
|
||||
public string VideoIconName;
|
||||
|
||||
public string MedleyCalcIcon;
|
||||
public string MedleyTagIcon;
|
||||
|
||||
public string ColorName;
|
||||
|
||||
//public SThemeSongMenuBook songMenuBook;
|
||||
@@ -52,6 +55,16 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
/// </summary>
|
||||
public int numH;
|
||||
|
||||
/// <summary>
|
||||
/// Number of tiles horizontal in small-modus
|
||||
/// </summary>
|
||||
public int numWsmall;
|
||||
|
||||
/// <summary>
|
||||
/// Number of tiles vertical in small-modus
|
||||
/// </summary>
|
||||
public int numHsmall;
|
||||
|
||||
/// <summary>
|
||||
/// Space between tiles horizontal
|
||||
/// </summary>
|
||||
@@ -63,6 +76,7 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
public float spaceH;
|
||||
|
||||
public SRectF TileRect;
|
||||
public SRectF TileRectSmall;
|
||||
|
||||
public CText TextArtist;
|
||||
public CText TextTitle;
|
||||
@@ -72,6 +86,8 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
public CStatic StaticTextBG;
|
||||
public CStatic StaticDuetIcon;
|
||||
public CStatic StaticVideoIcon;
|
||||
public CStatic StaticMedleyCalcIcon;
|
||||
public CStatic StaticMedleyTagIcon;
|
||||
}
|
||||
|
||||
abstract class CSongMenuFramework : ISongMenu
|
||||
@@ -99,6 +115,9 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
protected long _PendingTime = 500L;
|
||||
|
||||
private int _LockedInternal = -1;
|
||||
protected bool _Active = false;
|
||||
|
||||
protected float _MaxVolume = 100f;
|
||||
|
||||
protected int _PreviewSelected //for preview only
|
||||
{
|
||||
@@ -201,6 +220,7 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
public void SetSelected(bool Selected)
|
||||
{
|
||||
_Selected = Selected;
|
||||
SetActive(Selected);
|
||||
}
|
||||
|
||||
public bool IsVisible()
|
||||
@@ -225,10 +245,17 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_Theme.songMenuTileBoard.StaticTextBG = new CStatic();
|
||||
_Theme.songMenuTileBoard.StaticDuetIcon = new CStatic();
|
||||
_Theme.songMenuTileBoard.StaticVideoIcon = new CStatic();
|
||||
_Theme.songMenuTileBoard.StaticMedleyCalcIcon = new CStatic();
|
||||
_Theme.songMenuTileBoard.StaticMedleyTagIcon = new CStatic();
|
||||
|
||||
_ThemeLoaded = false;
|
||||
}
|
||||
|
||||
public string GetThemeName()
|
||||
{
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
@@ -238,13 +265,8 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/CoverBigBackground", navigator, ref _Theme.CoverBigBackgroundName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/DuetIcon", navigator, ref _Theme.DuetIconName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/VideoIcon", navigator, ref _Theme.VideoIconName, String.Empty);
|
||||
|
||||
|
||||
_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 + "/MedleyCalcIcon", navigator, ref _Theme.MedleyCalcIcon, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/MedleyTagIcon", navigator, ref _Theme.MedleyTagIcon, String.Empty);
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
|
||||
{
|
||||
@@ -264,6 +286,9 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/SpaceW", navigator, ref _Theme.songMenuTileBoard.spaceW);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/SpaceH", navigator, ref _Theme.songMenuTileBoard.spaceH);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/SongMenuTileBoard/NumWsmall", navigator, ref _Theme.songMenuTileBoard.numWsmall);
|
||||
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/SongMenuTileBoard/NumHsmall", navigator, ref _Theme.songMenuTileBoard.numHsmall);
|
||||
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.TextArtist.LoadTheme(item + "/SongMenuTileBoard", "TextArtist", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.TextTitle.LoadTheme(item + "/SongMenuTileBoard", "TextTitle", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.TextSongLength.LoadTheme(item + "/SongMenuTileBoard", "TextSongLength", navigator, SkinIndex);
|
||||
@@ -272,6 +297,8 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticTextBG.LoadTheme(item + "/SongMenuTileBoard", "StaticTextBG", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticDuetIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticDuetIcon", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticVideoIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticVideoIcon", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticMedleyCalcIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyCalcIcon", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticMedleyTagIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyTagIcon", navigator, SkinIndex);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectX", navigator, ref _Theme.songMenuTileBoard.TileRect.X);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectY", navigator, ref _Theme.songMenuTileBoard.TileRect.Y);
|
||||
@@ -279,6 +306,12 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectW", navigator, ref _Theme.songMenuTileBoard.TileRect.W);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectH", navigator, ref _Theme.songMenuTileBoard.TileRect.H);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallX", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.X);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallY", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.Y);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallZ", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.Z);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallW", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.W);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallH", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.H);
|
||||
|
||||
#endregion SongMenuTileBoard
|
||||
|
||||
if (_ThemeLoaded)
|
||||
@@ -309,12 +342,11 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
writer.WriteComment("<VideoIcon>: Texture name of video icon");
|
||||
writer.WriteElementString("VideoIcon", _Theme.VideoIconName);
|
||||
|
||||
writer.WriteComment("<X>, <Y>, <Z>, <W>, <H>: SongMenu 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("<MedleyCalcIcon>: Texture name of medley calc (calculated) icon");
|
||||
writer.WriteElementString("MedleyCalcIcon", _Theme.MedleyCalcIcon);
|
||||
|
||||
writer.WriteComment("<MedleyTagIcon>: Texture name of medley tag (manuelly set) icon");
|
||||
writer.WriteElementString("MedleyTagIcon", _Theme.MedleyTagIcon);
|
||||
|
||||
writer.WriteComment("<Color>: Tile color from ColorScheme (high priority)");
|
||||
writer.WriteComment("or <R>, <G>, <B>, <A> (lower priority)");
|
||||
@@ -346,6 +378,12 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
writer.WriteComment("<SpaceH>: Space between tiles vertical");
|
||||
writer.WriteElementString("SpaceH", _Theme.songMenuTileBoard.spaceH.ToString("#0.00"));
|
||||
|
||||
writer.WriteComment("<NumWsmall>: Number of tiles horizontal in small-mode");
|
||||
writer.WriteElementString("NumWsmall", _Theme.songMenuTileBoard.numWsmall.ToString());
|
||||
|
||||
writer.WriteComment("<NumHsmall>: Number of tiles vertical in small-mode");
|
||||
writer.WriteElementString("NumHsmall", _Theme.songMenuTileBoard.numHsmall.ToString());
|
||||
|
||||
writer.WriteComment("<TileRectX>, <TileRectY>, <TileRectZ>, <TileRectW>, <TileRectH>: SongMenu position, width and height");
|
||||
writer.WriteElementString("TileRectX", _Theme.songMenuTileBoard.TileRect.X.ToString("#0"));
|
||||
writer.WriteElementString("TileRectY", _Theme.songMenuTileBoard.TileRect.Y.ToString("#0"));
|
||||
@@ -353,6 +391,13 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
writer.WriteElementString("TileRectW", _Theme.songMenuTileBoard.TileRect.W.ToString("#0"));
|
||||
writer.WriteElementString("TileRectH", _Theme.songMenuTileBoard.TileRect.H.ToString("#0"));
|
||||
|
||||
writer.WriteComment("<TileRectSmallX>, <TileRectSmallY>, <TileRectSmallZ>, <TileRectSmallW>, <TileRectSmallH>: SongMenu position, width and height in small-mode");
|
||||
writer.WriteElementString("TileRectSmallX", _Theme.songMenuTileBoard.TileRectSmall.X.ToString("#0"));
|
||||
writer.WriteElementString("TileRectSmallY", _Theme.songMenuTileBoard.TileRectSmall.Y.ToString("#0"));
|
||||
writer.WriteElementString("TileRectSmallZ", _Theme.songMenuTileBoard.TileRectSmall.Z.ToString("#0.00"));
|
||||
writer.WriteElementString("TileRectSmallW", _Theme.songMenuTileBoard.TileRectSmall.W.ToString("#0"));
|
||||
writer.WriteElementString("TileRectSmallH", _Theme.songMenuTileBoard.TileRectSmall.H.ToString("#0"));
|
||||
|
||||
_Theme.songMenuTileBoard.TextArtist.SaveTheme(writer);
|
||||
_Theme.songMenuTileBoard.TextTitle.SaveTheme(writer);
|
||||
_Theme.songMenuTileBoard.TextSongLength.SaveTheme(writer);
|
||||
@@ -361,6 +406,8 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_Theme.songMenuTileBoard.StaticTextBG.SaveTheme(writer);
|
||||
_Theme.songMenuTileBoard.StaticDuetIcon.SaveTheme(writer);
|
||||
_Theme.songMenuTileBoard.StaticVideoIcon.SaveTheme(writer);
|
||||
_Theme.songMenuTileBoard.StaticMedleyCalcIcon.SaveTheme(writer);
|
||||
_Theme.songMenuTileBoard.StaticMedleyTagIcon.SaveTheme(writer);
|
||||
|
||||
writer.WriteEndElement();
|
||||
#endregion SongMenuTileBoard
|
||||
@@ -465,11 +512,36 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
|
||||
}
|
||||
|
||||
public virtual void ApplyVolume(float VolumeMax)
|
||||
{
|
||||
_MaxVolume = VolumeMax;
|
||||
|
||||
foreach (int stream in _streams)
|
||||
{
|
||||
CSound.SetStreamVolumeMax(stream, _MaxVolume);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual bool IsActive()
|
||||
{
|
||||
return _Active;
|
||||
}
|
||||
|
||||
public virtual void SetActive(bool Active)
|
||||
{
|
||||
_Active = Active;
|
||||
}
|
||||
|
||||
public virtual int GetSelectedSong()
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
public virtual CStatic GetSelectedSongCover()
|
||||
{
|
||||
return new CStatic();
|
||||
}
|
||||
|
||||
public virtual int GetSelectedCategory()
|
||||
{
|
||||
return -1;
|
||||
@@ -481,6 +553,23 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
return;
|
||||
}
|
||||
|
||||
public virtual void SetSelectedCategory(int CategoryNr)
|
||||
{
|
||||
if (!_Initialized)
|
||||
return;
|
||||
}
|
||||
|
||||
public virtual void SetSmallView(bool SmallView)
|
||||
{
|
||||
if (!_Initialized)
|
||||
return;
|
||||
}
|
||||
|
||||
public virtual bool IsSmallView()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public virtual void UnloadTextures()
|
||||
{
|
||||
}
|
||||
@@ -491,14 +580,6 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
|
||||
if (_Theme.ColorName != String.Empty)
|
||||
_Color = CTheme.GetColor(_Theme.ColorName);
|
||||
|
||||
_Theme.songMenuTileBoard.StaticCoverBig.ReloadTextures();
|
||||
_Theme.songMenuTileBoard.StaticTextBG.ReloadTextures();
|
||||
_Theme.songMenuTileBoard.StaticDuetIcon.ReloadTextures();
|
||||
_Theme.songMenuTileBoard.StaticVideoIcon.ReloadTextures();
|
||||
|
||||
_Theme.songMenuTileBoard.TextArtist.ReloadTextures();
|
||||
_Theme.songMenuTileBoard.TextTitle.ReloadTextures();
|
||||
}
|
||||
|
||||
public void ReloadTextures()
|
||||
@@ -550,8 +631,15 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
|
||||
|
||||
int _stream = CSound.Load(Path.Combine(CSongs.VisibleSongs[_actsong].Folder, CSongs.VisibleSongs[_actsong].MP3FileName), true);
|
||||
CSound.SetStreamVolumeMax(_stream, _MaxVolume);
|
||||
CSound.SetStreamVolume(_stream, 0f);
|
||||
CSound.SetPosition(_stream, CSound.GetLength(_stream) / 4f);
|
||||
|
||||
float startposition = CSongs.VisibleSongs[_actsong].PreviewStart;
|
||||
|
||||
if (startposition == 0f)
|
||||
startposition = CSound.GetLength(_stream) / 4f;
|
||||
|
||||
CSound.SetPosition(_stream, startposition);
|
||||
CSound.Play(_stream);
|
||||
CSound.Fade(_stream, 100f, 3f);
|
||||
_streams.Add(_stream);
|
||||
@@ -562,7 +650,7 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_video = CVideo.VdLoad(Path.Combine(CSongs.VisibleSongs[_actsong].Folder, CSongs.VisibleSongs[_actsong].VideoFileName));
|
||||
if (_video == -1)
|
||||
return;
|
||||
CVideo.VdSkip(_video, CSound.GetLength(_stream) / 4f, CSongs.VisibleSongs[_actsong].VideoGap);
|
||||
CVideo.VdSkip(_video, startposition, CSongs.VisibleSongs[_actsong].VideoGap);
|
||||
_VideoFadeTimer.Stop();
|
||||
_VideoFadeTimer.Reset();
|
||||
_VideoFadeTimer.Start();
|
||||
|
||||
@@ -18,6 +18,8 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
private CStatic _TextBG;
|
||||
private CStatic _DuetIcon;
|
||||
private CStatic _VideoIcon;
|
||||
private CStatic _MedleyCalcIcon;
|
||||
private CStatic _MedleyTagIcon;
|
||||
|
||||
private STexture _CoverBigTexture;
|
||||
private STexture _CoverTexture;
|
||||
@@ -38,6 +40,8 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
private int _Offset = 0;
|
||||
private int _actualSelection = -1;
|
||||
|
||||
private bool _SmallView = false;
|
||||
|
||||
public override int GetActualSelection()
|
||||
{
|
||||
return _actualSelection;
|
||||
@@ -47,6 +51,8 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
{
|
||||
base.Init();
|
||||
|
||||
_Rect = _Theme.songMenuTileBoard.TileRect;
|
||||
|
||||
_NumW = _Theme.songMenuTileBoard.numW;
|
||||
_NumH = _Theme.songMenuTileBoard.numH;
|
||||
_SpaceW = _Theme.songMenuTileBoard.spaceW;
|
||||
@@ -81,6 +87,8 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_TextBG = _Theme.songMenuTileBoard.StaticTextBG;
|
||||
_DuetIcon = _Theme.songMenuTileBoard.StaticDuetIcon;
|
||||
_VideoIcon = _Theme.songMenuTileBoard.StaticVideoIcon;
|
||||
_MedleyCalcIcon = _Theme.songMenuTileBoard.StaticMedleyCalcIcon;
|
||||
_MedleyTagIcon = _Theme.songMenuTileBoard.StaticMedleyTagIcon;
|
||||
|
||||
_Artist = _Theme.songMenuTileBoard.TextArtist;
|
||||
_Title = _Theme.songMenuTileBoard.TextTitle;
|
||||
@@ -113,6 +121,8 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_Locked = 0;
|
||||
_DuetIcon.Visible = false;
|
||||
_VideoIcon.Visible = false;
|
||||
_MedleyCalcIcon.Visible = false;
|
||||
_MedleyTagIcon.Visible = false;
|
||||
}
|
||||
|
||||
if (CSongs.NumVisibleSongs == 0 && CSongs.SearchFilter != String.Empty)
|
||||
@@ -125,6 +135,8 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_Locked = -1;
|
||||
_DuetIcon.Visible = false;
|
||||
_VideoIcon.Visible = false;
|
||||
_MedleyCalcIcon.Visible = false;
|
||||
_MedleyTagIcon.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,6 +150,11 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!(KeyEvent.Key == Keys.Left || KeyEvent.Key == Keys.Right || KeyEvent.Key == Keys.Up || KeyEvent.Key == Keys.Down ||
|
||||
KeyEvent.Key == Keys.Escape || KeyEvent.Key == Keys.Back || KeyEvent.Key == Keys.Enter ||
|
||||
KeyEvent.Key == Keys.PageDown || KeyEvent.Key == Keys.PageUp))
|
||||
return;
|
||||
|
||||
bool sel = false;
|
||||
foreach (CStatic tile in _Tiles)
|
||||
{
|
||||
@@ -390,7 +407,7 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
{
|
||||
foreach (CStatic tile in _Tiles)
|
||||
{
|
||||
if (tile.Selected)
|
||||
if (tile.Selected && _Active)
|
||||
tile.Draw(1.2f, tile.Rect.Z - 0.1f, true, false);
|
||||
else
|
||||
{
|
||||
@@ -412,14 +429,9 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_Artist.Text = song.Artist;
|
||||
_Title.Text = song.Title;
|
||||
_DuetIcon.Visible = song.IsDuet;
|
||||
if (song.VideoFileName.Length > 0)
|
||||
{
|
||||
_VideoIcon.Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
_VideoIcon.Visible = false;
|
||||
}
|
||||
_VideoIcon.Visible = song.VideoFileName.Length > 0;
|
||||
_MedleyCalcIcon.Visible = song.Medley.Source == EMedleySource.Calculated;
|
||||
_MedleyTagIcon.Visible = song.Medley.Source == EMedleySource.Tag;
|
||||
|
||||
float Time = CSound.GetLength(_SongStream);
|
||||
if (song.Finish != 0)
|
||||
@@ -448,11 +460,14 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_SongLength.Text = String.Empty;
|
||||
_DuetIcon.Visible = false;
|
||||
_VideoIcon.Visible = false;
|
||||
_MedleyCalcIcon.Visible = false;
|
||||
_MedleyTagIcon.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
_CoverBig.Draw(1f, true);
|
||||
if (_vidtex.color.A < 1)
|
||||
_CoverBig.Draw(1f, true);
|
||||
_TextBG.Draw();
|
||||
|
||||
if (_vidtex.index != -1 && _Video != -1)
|
||||
@@ -462,15 +477,20 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, EAspect.Crop);
|
||||
|
||||
CDraw.DrawTexture(_vidtex, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, _CoverBig.Rect.Z),
|
||||
_vidtex.color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), false);
|
||||
_vidtex.color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), false);
|
||||
CDraw.DrawTextureReflection(_vidtex, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, _CoverBig.Rect.Z),
|
||||
_vidtex.color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), _CoverBig.ReflectionSpace, _CoverBig.ReflectionHeight);
|
||||
}
|
||||
|
||||
|
||||
|
||||
_Artist.Draw();
|
||||
_Title.Draw();
|
||||
_SongLength.Draw();
|
||||
_DuetIcon.Draw();
|
||||
_VideoIcon.Draw();
|
||||
_MedleyCalcIcon.Draw();
|
||||
_MedleyTagIcon.Draw();
|
||||
|
||||
}
|
||||
|
||||
@@ -479,6 +499,16 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
return _Locked;
|
||||
}
|
||||
|
||||
public override CStatic GetSelectedSongCover()
|
||||
{
|
||||
foreach (CStatic tile in _Tiles)
|
||||
{
|
||||
if (tile.Selected)
|
||||
return new CStatic(tile);
|
||||
}
|
||||
return new CStatic();
|
||||
}
|
||||
|
||||
public override void SetSelectedSong(int VisibleSongNr)
|
||||
{
|
||||
base.SetSelectedSong(VisibleSongNr);
|
||||
@@ -536,6 +566,62 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
|
||||
}
|
||||
|
||||
public override void SetSelectedCategory(int CategoryNr)
|
||||
{
|
||||
base.SetSelectedCategory(CategoryNr);
|
||||
|
||||
if (CategoryNr < 0)
|
||||
return;
|
||||
|
||||
if (CSongs.Categories.Length > CategoryNr)
|
||||
{
|
||||
bool sel = false;
|
||||
foreach (CStatic tile in _Tiles)
|
||||
{
|
||||
if (tile.Selected)
|
||||
{
|
||||
sel = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (_Locked == -1 || !sel)
|
||||
{
|
||||
if (_PreviewSelected > -1)
|
||||
{
|
||||
_Locked = _PreviewSelected;
|
||||
}
|
||||
else
|
||||
{
|
||||
_Locked = 0;
|
||||
_actualSelection = 0;
|
||||
_PreviewSelected = 0;
|
||||
SetSelectedNow();
|
||||
UpdateList(0);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (CStatic tile in _Tiles)
|
||||
{
|
||||
tile.Selected = false;
|
||||
}
|
||||
|
||||
_PreviewSelected = CategoryNr;
|
||||
SetSelectedNow();
|
||||
_Locked = CategoryNr;
|
||||
|
||||
UpdateList((CategoryNr / _NumW) * _NumW - (_NumW * (_NumH - 2)));
|
||||
|
||||
_PreviewSelected = _Locked;
|
||||
_actualSelection = _Locked;
|
||||
|
||||
for (int i = 0; i < _Tiles.Count; i++)
|
||||
{
|
||||
_Tiles[i].Selected = _Locked == i + _Offset;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected override void EnterCategory(int cat)
|
||||
{
|
||||
base.EnterCategory(cat);
|
||||
@@ -649,6 +735,74 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_Offset = offset;
|
||||
}
|
||||
|
||||
public override void SetSmallView(bool SmallView)
|
||||
{
|
||||
base.SetSmallView(SmallView);
|
||||
|
||||
_SmallView = SmallView;
|
||||
|
||||
if (_SmallView)
|
||||
{
|
||||
_NumH = _Theme.songMenuTileBoard.numHsmall;
|
||||
_NumW = _Theme.songMenuTileBoard.numWsmall;
|
||||
|
||||
_TileW = (int)((_Theme.songMenuTileBoard.TileRectSmall.W - _SpaceW * (_NumW - 1)) / _NumW);
|
||||
_TileH = (int)((_Theme.songMenuTileBoard.TileRectSmall.H - _SpaceH * (_NumH - 1)) / _NumH);
|
||||
|
||||
_CoverTexture = CTheme.GetSkinTexture(_Theme.CoverBackgroundName);
|
||||
_CoverBigTexture = CTheme.GetSkinTexture(_Theme.CoverBigBackgroundName);
|
||||
|
||||
_Tiles = new List<CStatic>();
|
||||
for (int i = 0; i < _NumH; i++)
|
||||
{
|
||||
for (int j = 0; j < _NumW; j++)
|
||||
{
|
||||
SRectF rect = new SRectF(_Theme.songMenuTileBoard.TileRectSmall.X + j * (_TileW + _SpaceW),
|
||||
_Theme.songMenuTileBoard.TileRectSmall.Y + i * (_TileH + _SpaceH), _TileW, _TileH, _Rect.Z);
|
||||
CStatic tile = new CStatic(_CoverTexture, Color, rect);
|
||||
_Tiles.Add(tile);
|
||||
}
|
||||
}
|
||||
|
||||
_Rect = _Theme.songMenuTileBoard.TileRectSmall;
|
||||
_ScrollRect = new SRectF(0, 0, CSettings.iRenderW, CSettings.iRenderH, _Theme.songMenuTileBoard.TileRectSmall.Z);
|
||||
}
|
||||
else
|
||||
{
|
||||
_NumH = _Theme.songMenuTileBoard.numH;
|
||||
_NumW = _Theme.songMenuTileBoard.numW;
|
||||
|
||||
_TileW = (int)((_Theme.songMenuTileBoard.TileRect.W - _SpaceW * (_NumW - 1)) / _NumW);
|
||||
_TileH = (int)((_Theme.songMenuTileBoard.TileRect.H - _SpaceH * (_NumH - 1)) / _NumH);
|
||||
|
||||
_CoverTexture = CTheme.GetSkinTexture(_Theme.CoverBackgroundName);
|
||||
_CoverBigTexture = CTheme.GetSkinTexture(_Theme.CoverBigBackgroundName);
|
||||
|
||||
_Tiles = new List<CStatic>();
|
||||
for (int i = 0; i < _NumH; i++)
|
||||
{
|
||||
for (int j = 0; j < _NumW; j++)
|
||||
{
|
||||
SRectF rect = new SRectF(_Theme.songMenuTileBoard.TileRect.X + j * (_TileW + _SpaceW),
|
||||
_Theme.songMenuTileBoard.TileRect.Y + i * (_TileH + _SpaceH), _TileW, _TileH, _Rect.Z);
|
||||
CStatic tile = new CStatic(_CoverTexture, Color, rect);
|
||||
_Tiles.Add(tile);
|
||||
}
|
||||
}
|
||||
|
||||
_Rect = _Theme.songMenuTileBoard.TileRect;
|
||||
_ScrollRect = new SRectF(0, 0, CSettings.iRenderW, CSettings.iRenderH, _Theme.songMenuTileBoard.TileRect.Z);
|
||||
}
|
||||
|
||||
UpdateList(_Offset);
|
||||
|
||||
}
|
||||
|
||||
public override bool IsSmallView()
|
||||
{
|
||||
return _SmallView;
|
||||
}
|
||||
|
||||
public override void LoadTextures()
|
||||
{
|
||||
base.LoadTextures();
|
||||
@@ -657,6 +811,8 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_Theme.songMenuTileBoard.StaticTextBG.ReloadTextures();
|
||||
_Theme.songMenuTileBoard.StaticDuetIcon.ReloadTextures();
|
||||
_Theme.songMenuTileBoard.StaticVideoIcon.ReloadTextures();
|
||||
_Theme.songMenuTileBoard.StaticMedleyCalcIcon.ReloadTextures();
|
||||
_Theme.songMenuTileBoard.StaticMedleyTagIcon.ReloadTextures();
|
||||
|
||||
_Theme.songMenuTileBoard.TextArtist.ReloadTextures();
|
||||
_Theme.songMenuTileBoard.TextTitle.ReloadTextures();
|
||||
|
||||
@@ -17,10 +17,17 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
void HandleMouse(ref MouseEvent MouseEvent);
|
||||
void Draw();
|
||||
|
||||
void ApplyVolume(float VolumeMax);
|
||||
|
||||
int GetSelectedSong();
|
||||
CStatic GetSelectedSongCover();
|
||||
void SetSelectedSong(int VisibleSongNr);
|
||||
|
||||
bool IsActive();
|
||||
void SetActive(bool Active);
|
||||
|
||||
int GetSelectedCategory();
|
||||
void SetSelectedCategory(int CategoryNr);
|
||||
int GetActualSelection();
|
||||
|
||||
bool IsSelected();
|
||||
@@ -29,6 +36,9 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
bool IsVisible();
|
||||
void SetVisible(bool Visible);
|
||||
|
||||
bool IsSmallView();
|
||||
void SetSmallView(bool SmallView);
|
||||
|
||||
SRectF GetRect();
|
||||
}
|
||||
}
|
||||
@@ -134,7 +134,7 @@ namespace Vocaluxe.Screens
|
||||
if (Buttons[htButtons(ButtonPause)].Selected)
|
||||
CBackgroundMusic.Pause();
|
||||
if (Buttons[htButtons(ButtonRepeat)].Selected)
|
||||
CBackgroundMusic.Repeat();
|
||||
CBackgroundMusic.RepeatSong = !CBackgroundMusic.RepeatSong;
|
||||
if (Buttons[htButtons(ButtonShowVideo)].Selected)
|
||||
VideoPreview = !VideoPreview;
|
||||
if (Buttons[htButtons(ButtonSing)].Selected)
|
||||
@@ -162,7 +162,7 @@ namespace Vocaluxe.Screens
|
||||
if (Buttons[htButtons(ButtonPause)].Selected)
|
||||
CBackgroundMusic.Pause();
|
||||
if (Buttons[htButtons(ButtonRepeat)].Selected)
|
||||
CBackgroundMusic.Repeat();
|
||||
CBackgroundMusic.RepeatSong = !CBackgroundMusic.RepeatSong;
|
||||
if (Buttons[htButtons(ButtonShowVideo)].Selected)
|
||||
VideoPreview = !VideoPreview;
|
||||
if (Buttons[htButtons(ButtonSing)].Selected)
|
||||
@@ -187,6 +187,7 @@ namespace Vocaluxe.Screens
|
||||
Statics[htStatics(StaticCover)].Visible = !_VideoPreview || !CBackgroundMusic.SongHasVideo;
|
||||
Buttons[htButtons(ButtonToBackgroundVideo)].Pressed = VideoBackground;
|
||||
Buttons[htButtons(ButtonShowVideo)].Pressed = _VideoPreview;
|
||||
Buttons[htButtons(ButtonRepeat)].Pressed = CBackgroundMusic.RepeatSong;
|
||||
Buttons[htButtons(ButtonSing)].Visible = CBackgroundMusic.CanSing;
|
||||
return true;
|
||||
}
|
||||
@@ -217,9 +218,9 @@ namespace Vocaluxe.Screens
|
||||
CGame.Reset();
|
||||
CGame.ClearSongs();
|
||||
|
||||
EGameMode gm = EGameMode.Normal;
|
||||
EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL;
|
||||
if (CSongs.AllSongs[SongNr].IsDuet)
|
||||
gm = EGameMode.Duet;
|
||||
gm = EGameMode.TR_GAMEMODE_DUET;
|
||||
|
||||
CGame.AddSong(SongNr, gm);
|
||||
|
||||
|
||||
@@ -323,39 +323,6 @@ 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();
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace Vocaluxe.Screens
|
||||
private string[] TextScore;
|
||||
private string[] TextDate;
|
||||
|
||||
private List<SScores> _Scores;
|
||||
private List<SScores>[] _Scores;
|
||||
private List<int> _NewEntryIDs;
|
||||
private int _Round;
|
||||
private int _Pos;
|
||||
@@ -135,6 +135,17 @@ namespace Vocaluxe.Screens
|
||||
CGraphics.FadeTo(EScreens.ScreenSong);
|
||||
}
|
||||
|
||||
if (MouseEvent.MB)
|
||||
{
|
||||
int LastRound = _Round;
|
||||
ChangeRound(1);
|
||||
if (LastRound == _Round)
|
||||
{
|
||||
_Round = 0;
|
||||
UpdateRound();
|
||||
}
|
||||
}
|
||||
|
||||
ChangePos(MouseEvent.Wheel);
|
||||
return true;
|
||||
}
|
||||
@@ -143,7 +154,7 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
for (int p = 0; p < NumEntrys; p++)
|
||||
{
|
||||
if (_Pos + p < _Scores.Count)
|
||||
if (_Pos + p < _Scores[_Round].Count)
|
||||
{
|
||||
Texts[htTexts(TextNumber[p])].Visible = true;
|
||||
Texts[htTexts(TextName[p])].Visible = true;
|
||||
@@ -152,16 +163,16 @@ namespace Vocaluxe.Screens
|
||||
|
||||
Texts[htTexts(TextNumber[p])].Text = (_Pos + p + 1).ToString();
|
||||
|
||||
string name = _Scores[_Pos + p].Name;
|
||||
name += " [" + CLanguage.Translate(Enum.GetName(typeof(EGameDifficulty), _Scores[_Pos + p].Difficulty)) + "]";
|
||||
string name = _Scores[_Round][_Pos + p].Name;
|
||||
name += " [" + CLanguage.Translate(Enum.GetName(typeof(EGameDifficulty), _Scores[_Round][_Pos + p].Difficulty)) + "]";
|
||||
if (_IsDuet)
|
||||
name += " (P" + (_Scores[_Pos + p].LineNr + 1).ToString() + ")";
|
||||
name += " (P" + (_Scores[_Round][_Pos + p].LineNr + 1).ToString() + ")";
|
||||
Texts[htTexts(TextName[p])].Text = name;
|
||||
|
||||
Texts[htTexts(TextScore[p])].Text = _Scores[_Pos + p].Score.ToString("00000");
|
||||
Texts[htTexts(TextDate[p])].Text = _Scores[_Pos + p].Date;
|
||||
Texts[htTexts(TextScore[p])].Text = _Scores[_Round][_Pos + p].Score.ToString("00000");
|
||||
Texts[htTexts(TextDate[p])].Text = _Scores[_Round][_Pos + p].Date;
|
||||
|
||||
if (isNewEntry(_Scores[_Pos + p].ID) == true)
|
||||
if (isNewEntry(_Scores[_Round][_Pos + p].ID) == true)
|
||||
{
|
||||
Texts[htTexts(TextNumber[p])].Style = EStyle.BoldItalic;
|
||||
Texts[htTexts(TextName[p])].Style = EStyle.BoldItalic;
|
||||
@@ -185,10 +196,16 @@ namespace Vocaluxe.Screens
|
||||
base.OnShow();
|
||||
_Round = 0;
|
||||
_Pos = 0;
|
||||
_Scores = new List<SScores>();
|
||||
CPoints _Points = CGame.GetPoints();
|
||||
_Scores = new List<SScores>[_Points.NumRounds];
|
||||
for (int i = 0; i < _Scores.Length; i++)
|
||||
{
|
||||
_Scores[i] = new List<SScores>();
|
||||
}
|
||||
_NewEntryIDs.Clear();
|
||||
AddScoresToDB();
|
||||
LoadScores();
|
||||
UpdateRound();
|
||||
|
||||
UpdateGame();
|
||||
}
|
||||
@@ -239,35 +256,47 @@ namespace Vocaluxe.Screens
|
||||
for (int round = 0; round < points.NumRounds; round++)
|
||||
{
|
||||
SPlayer player = points.GetPlayer(round, CGame.NumPlayer)[0];
|
||||
CDataBase.LoadScore(ref _Scores, player);
|
||||
CDataBase.LoadScore(ref _Scores[round], player);
|
||||
}
|
||||
}
|
||||
|
||||
if (round == _Round)
|
||||
{
|
||||
_IsDuet = false;
|
||||
private void UpdateRound()
|
||||
{
|
||||
_IsDuet = false;
|
||||
CPoints points = CGame.GetPoints();
|
||||
SPlayer player = points.GetPlayer(_Round, CGame.NumPlayer)[0];
|
||||
CSong song = CGame.GetSong(_Round+1);
|
||||
if (song == null)
|
||||
return;
|
||||
|
||||
CSong song = CSongs.GetSong(player.SongID);
|
||||
Texts[htTexts(TextSongName)].Text = song.Artist + " - " + song.Title;
|
||||
Texts[htTexts(TextSongName)].Text = song.Artist + " - " + song.Title;
|
||||
if (points.NumRounds > 1)
|
||||
{
|
||||
Texts[htTexts(TextSongName)].Text += " (" + (_Round+1) + "/" + points.NumRounds + ")";
|
||||
}
|
||||
|
||||
switch (CGame.GameMode)
|
||||
{
|
||||
case EGameMode.Normal:
|
||||
Texts[htTexts(TextSongMode)].Text = "TR_GAMEMODE_NORMAL";
|
||||
break;
|
||||
switch (CGame.GetGameMode(_Round))
|
||||
{
|
||||
case EGameMode.TR_GAMEMODE_NORMAL:
|
||||
Texts[htTexts(TextSongMode)].Text = "TR_GAMEMODE_NORMAL";
|
||||
break;
|
||||
|
||||
case EGameMode.Medley:
|
||||
Texts[htTexts(TextSongMode)].Text = "TR_GAMEMODE_MEDLEY";
|
||||
break;
|
||||
case EGameMode.TR_GAMEMODE_MEDLEY:
|
||||
Texts[htTexts(TextSongMode)].Text = "TR_GAMEMODE_MEDLEY";
|
||||
break;
|
||||
|
||||
case EGameMode.Duet:
|
||||
Texts[htTexts(TextSongMode)].Text = "TR_GAMEMODE_DUET";
|
||||
_IsDuet = true;
|
||||
break;
|
||||
case EGameMode.TR_GAMEMODE_DUET:
|
||||
Texts[htTexts(TextSongMode)].Text = "TR_GAMEMODE_DUET";
|
||||
_IsDuet = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
Texts[htTexts(TextSongMode)].Text = "TR_GAMEMODE_NORMAL";
|
||||
break;
|
||||
}
|
||||
}
|
||||
case EGameMode.TR_GAMEMODE_SHORTSONG:
|
||||
Texts[htTexts(TextSongMode)].Text = "TR_GAMEMODE_SHORTSONG";
|
||||
break;
|
||||
|
||||
default:
|
||||
Texts[htTexts(TextSongMode)].Text = "TR_GAMEMODE_NORMAL";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -275,7 +304,7 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (Num > 0)
|
||||
{
|
||||
if (_Pos + Num + NumEntrys < _Scores.Count)
|
||||
if (_Pos + Num + NumEntrys < _Scores[_Round].Count)
|
||||
_Pos += Num;
|
||||
}
|
||||
if (Num < 0)
|
||||
@@ -288,27 +317,14 @@ namespace Vocaluxe.Screens
|
||||
|
||||
private void ChangeRound(int Num)
|
||||
{
|
||||
CPoints points = CGame.GetPoints();
|
||||
if (points.NumRounds < 2)
|
||||
return;
|
||||
|
||||
_Round += Num;
|
||||
|
||||
if (Num > 0)
|
||||
{
|
||||
if (_Round >= points.NumRounds)
|
||||
_Round = 0;
|
||||
|
||||
LoadScores();
|
||||
}
|
||||
|
||||
if (Num < 0)
|
||||
{
|
||||
if (_Round < 0)
|
||||
_Round = points.NumRounds - 1;
|
||||
|
||||
LoadScores();
|
||||
}
|
||||
CPoints _Points = CGame.GetPoints();
|
||||
if (_Round + Num < _Points.NumRounds && _Round + Num > -1)
|
||||
_Round += Num;
|
||||
else if (_Round + Num >= _Points.NumRounds)
|
||||
_Round = _Points.NumRounds - 1;
|
||||
else if (_Round + Num < 0)
|
||||
_Round = 0;
|
||||
UpdateRound();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -223,6 +223,11 @@ namespace Vocaluxe.Screens
|
||||
CBackgroundMusic.CanSing = true;
|
||||
|
||||
CLog.StopBenchmark(3, "Load Cover");
|
||||
|
||||
//Init Playlists
|
||||
CLog.StartBenchmark(0, "Init Playlists");
|
||||
CPlaylists.Init();
|
||||
CLog.StopBenchmark(0, "Init Playlists");
|
||||
}
|
||||
|
||||
private void CheckStartIntroVideos()
|
||||
|
||||
@@ -12,7 +12,7 @@ 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 = 2;
|
||||
const int ScreenVersion = 3;
|
||||
|
||||
private CStatic chooseAvatarStatic;
|
||||
private int OldMouseX;
|
||||
@@ -29,10 +29,13 @@ namespace Vocaluxe.Screens
|
||||
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 readonly string[] EqualizerPlayer = new string[] { "EqualizerPlayer1", "EqualizerPlayer2", "EqualizerPlayer3", "EqualizerPlayer4", "EqualizerPlayer5", "EqualizerPlayer6" };
|
||||
private readonly string[] SelectSlideDuetPlayer = new string[] { "SelectSlideDuetPlayer1", "SelectSlideDuetPlayer2", "SelectSlideDuetPlayer3", "SelectSlideDuetPlayer4", "SelectSlideDuetPlayer5", "SelectSlideDuetPlayer6" };
|
||||
private STexture[] OriginalPlayerAvatarTextures = new STexture[CSettings.MaxNumPlayer];
|
||||
|
||||
private bool selectingMouseActive = false;
|
||||
private bool selectingKeyboardActive = false;
|
||||
private bool selectingKeyboardUnendless = false;
|
||||
private int selectingKeyboardPlayerNr = 0;
|
||||
private int SelectedPlayerNr;
|
||||
|
||||
@@ -63,8 +66,9 @@ namespace Vocaluxe.Screens
|
||||
_ThemeStatics = statics.ToArray();
|
||||
|
||||
List<string> texts = new List<string>();
|
||||
|
||||
_ThemeSelectSlides = new string[] { SelectSlidePlayerNumber };
|
||||
texts.Add(SelectSlidePlayerNumber);
|
||||
texts.AddRange(SelectSlideDuetPlayer);
|
||||
_ThemeSelectSlides = texts.ToArray();
|
||||
|
||||
texts.Clear();
|
||||
texts.Add(TextWarningMics);
|
||||
@@ -84,6 +88,10 @@ namespace Vocaluxe.Screens
|
||||
texts.Add(NameSelection);
|
||||
_ThemeNameSelections = texts.ToArray();
|
||||
|
||||
texts.Clear();
|
||||
texts.AddRange(EqualizerPlayer);
|
||||
_ThemeEqualizers = texts.ToArray();
|
||||
|
||||
chooseAvatarStatic = new CStatic();
|
||||
chooseAvatarStatic.Visible = false;
|
||||
}
|
||||
@@ -102,6 +110,11 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
OriginalPlayerAvatarTextures[i] = Statics[htStatics(StaticPlayerAvatar[i])].Texture;
|
||||
}
|
||||
|
||||
for (int i = 1; i <= CSettings.MaxNumPlayer; i++)
|
||||
{
|
||||
Equalizers[htEqualizer("EqualizerPlayer" + i)].ScreenHandles = true;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool HandleInput(KeyEvent KeyEvent)
|
||||
@@ -127,6 +140,22 @@ namespace Vocaluxe.Screens
|
||||
NameSelections[htNameSelections(NameSelection)].UpdateList();
|
||||
}
|
||||
break;
|
||||
|
||||
case Keys.P:
|
||||
if (!selectingKeyboardActive)
|
||||
{
|
||||
selectingKeyboardPlayerNr = 1;
|
||||
selectingKeyboardUnendless = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (selectingKeyboardPlayerNr + 1 <= CGame.NumPlayer)
|
||||
selectingKeyboardPlayerNr++;
|
||||
else
|
||||
selectingKeyboardPlayerNr = 1;
|
||||
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(true, selectingKeyboardPlayerNr);
|
||||
}
|
||||
break;
|
||||
}
|
||||
//Check if selecting with keyboard is active
|
||||
if (selectingKeyboardActive)
|
||||
@@ -156,10 +185,29 @@ namespace Vocaluxe.Screens
|
||||
NameSelections[htNameSelections(NameSelection)].UpdateList();
|
||||
SetInteractionToButton(Buttons[htButtons(ButtonStart)]);
|
||||
}
|
||||
//Reset all values
|
||||
selectingKeyboardPlayerNr = 0;
|
||||
selectingKeyboardActive = false;
|
||||
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(false, -1);
|
||||
//Started selecting with 'P'
|
||||
if (selectingKeyboardUnendless)
|
||||
{
|
||||
if (selectingKeyboardPlayerNr == CGame.NumPlayer)
|
||||
{
|
||||
//Reset all values
|
||||
selectingKeyboardPlayerNr = 0;
|
||||
selectingKeyboardActive = false;
|
||||
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(false, -1);
|
||||
}
|
||||
else
|
||||
{
|
||||
selectingKeyboardPlayerNr++;
|
||||
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(true, selectingKeyboardPlayerNr);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//Reset all values
|
||||
selectingKeyboardPlayerNr = 0;
|
||||
selectingKeyboardActive = false;
|
||||
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(false, -1);
|
||||
}
|
||||
break;
|
||||
|
||||
case Keys.D1:
|
||||
@@ -176,6 +224,7 @@ namespace Vocaluxe.Screens
|
||||
selectingKeyboardPlayerNr = 1;
|
||||
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(true, 1);
|
||||
}
|
||||
selectingKeyboardUnendless = false;
|
||||
break;
|
||||
case Keys.D2:
|
||||
case Keys.NumPad2:
|
||||
@@ -191,6 +240,7 @@ namespace Vocaluxe.Screens
|
||||
selectingKeyboardPlayerNr = 2;
|
||||
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(true, 2);
|
||||
}
|
||||
selectingKeyboardUnendless = false;
|
||||
break;
|
||||
case Keys.D3:
|
||||
case Keys.NumPad3:
|
||||
@@ -206,6 +256,7 @@ namespace Vocaluxe.Screens
|
||||
selectingKeyboardPlayerNr = 3;
|
||||
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(true, 3);
|
||||
}
|
||||
selectingKeyboardUnendless = false;
|
||||
break;
|
||||
case Keys.D4:
|
||||
case Keys.NumPad4:
|
||||
@@ -221,6 +272,7 @@ namespace Vocaluxe.Screens
|
||||
selectingKeyboardPlayerNr = 4;
|
||||
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(true, 4);
|
||||
}
|
||||
selectingKeyboardUnendless = false;
|
||||
break;
|
||||
case Keys.D5:
|
||||
case Keys.NumPad5:
|
||||
@@ -236,6 +288,7 @@ namespace Vocaluxe.Screens
|
||||
selectingKeyboardPlayerNr = 5;
|
||||
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(true, 5);
|
||||
}
|
||||
selectingKeyboardUnendless = false;
|
||||
break;
|
||||
case Keys.D6:
|
||||
case Keys.NumPad6:
|
||||
@@ -251,11 +304,14 @@ namespace Vocaluxe.Screens
|
||||
selectingKeyboardPlayerNr = 6;
|
||||
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(true, 6);
|
||||
}
|
||||
selectingKeyboardUnendless = false;
|
||||
break;
|
||||
|
||||
case Keys.Escape:
|
||||
//Reset all values
|
||||
selectingKeyboardPlayerNr = 0;
|
||||
selectingKeyboardActive = false;
|
||||
selectingKeyboardUnendless = false;
|
||||
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(false, -1);
|
||||
break;
|
||||
|
||||
@@ -279,6 +335,22 @@ namespace Vocaluxe.Screens
|
||||
//Update Tiles-List
|
||||
NameSelections[htNameSelections(NameSelection)].UpdateList();
|
||||
break;
|
||||
|
||||
case Keys.F10:
|
||||
if (CGame.GetNumSongs() == 1 && CGame.GetSong(1).IsDuet)
|
||||
{
|
||||
if (SelectSlides[htSelectSlides(SelectSlideDuetPlayer[selectingKeyboardPlayerNr - 1])].Selection == 0)
|
||||
SelectSlides[htSelectSlides(SelectSlideDuetPlayer[selectingKeyboardPlayerNr - 1])].SetSelectionByValueIndex(1);
|
||||
else
|
||||
SelectSlides[htSelectSlides(SelectSlideDuetPlayer[selectingKeyboardPlayerNr - 1])].SetSelectionByValueIndex(0);
|
||||
//Reset all values
|
||||
selectingKeyboardPlayerNr = 0;
|
||||
selectingKeyboardActive = false;
|
||||
selectingKeyboardUnendless = false;
|
||||
NameSelections[htNameSelections(NameSelection)].KeyboardSelection(false, -1);
|
||||
SetInteractionToButton(Buttons[htButtons(ButtonStart)]);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -378,7 +450,7 @@ namespace Vocaluxe.Screens
|
||||
CStatic SelectedPlayer = NameSelections[htNameSelections(NameSelection)].TilePlayerAvatar(MouseEvent);
|
||||
chooseAvatarStatic.Visible = true;
|
||||
chooseAvatarStatic.Rect = SelectedPlayer.Rect;
|
||||
chooseAvatarStatic.Rect.Z = CSettings.zNear + 1;
|
||||
chooseAvatarStatic.Rect.Z = CSettings.zNear;
|
||||
chooseAvatarStatic.Color = new SColorF(1, 1, 1, 1);
|
||||
chooseAvatarStatic.Texture = SelectedPlayer.Texture;
|
||||
}
|
||||
@@ -503,13 +575,18 @@ namespace Vocaluxe.Screens
|
||||
|
||||
public override bool UpdateGame()
|
||||
{
|
||||
|
||||
for (int i = 1; i <= CGame.NumPlayer; i++)
|
||||
{
|
||||
CSound.AnalyzeBuffer((i-1));
|
||||
Equalizers[htEqualizer("EqualizerPlayer" + i)].Update(CSound.ToneWeigth((i-1)));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void OnShow()
|
||||
{
|
||||
base.OnShow();
|
||||
CSound.RecordStart();
|
||||
|
||||
NameSelections[htNameSelections(NameSelection)].Init();
|
||||
|
||||
@@ -526,11 +603,33 @@ namespace Vocaluxe.Screens
|
||||
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;
|
||||
}
|
||||
if (CGame.GetNumSongs() == 1 && CGame.GetSong(1).IsDuet)
|
||||
{
|
||||
SelectSlides[htSelectSlides(SelectSlideDuetPlayer[i])].Clear();
|
||||
if (i + 1 <= CGame.NumPlayer)
|
||||
SelectSlides[htSelectSlides(SelectSlideDuetPlayer[i])].Visible = true;
|
||||
else
|
||||
SelectSlides[htSelectSlides(SelectSlideDuetPlayer[i])].Visible = false;
|
||||
SelectSlides[htSelectSlides(SelectSlideDuetPlayer[i])].AddValue(CGame.GetSong(1).DuetPart1);
|
||||
SelectSlides[htSelectSlides(SelectSlideDuetPlayer[i])].AddValue(CGame.GetSong(1).DuetPart2);
|
||||
if ((i + 1) % 2 == 0)
|
||||
SelectSlides[htSelectSlides(SelectSlideDuetPlayer[i])].SetSelectionByValueIndex(1);
|
||||
else
|
||||
SelectSlides[htSelectSlides(SelectSlideDuetPlayer[i])].SetSelectionByValueIndex(0);
|
||||
}
|
||||
else
|
||||
SelectSlides[htSelectSlides(SelectSlideDuetPlayer[i])].Visible = false;
|
||||
}
|
||||
|
||||
SetInteractionToButton(Buttons[htButtons(ButtonStart)]);
|
||||
}
|
||||
|
||||
public override void OnClose()
|
||||
{
|
||||
base.OnClose();
|
||||
CSound.RecordStop();
|
||||
}
|
||||
|
||||
public override bool Draw()
|
||||
{
|
||||
base.Draw();
|
||||
@@ -539,7 +638,10 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
chooseAvatarStatic.Draw();
|
||||
}
|
||||
|
||||
for (int i = 1; i <= CGame.NumPlayer; i++)
|
||||
{
|
||||
Equalizers[htEqualizer("EqualizerPlayer" + i)].Draw();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -561,6 +663,10 @@ namespace Vocaluxe.Screens
|
||||
CGame.Player[i].Name = "";
|
||||
}
|
||||
}
|
||||
if (CGame.GetNumSongs() == 1 && CGame.GetSong(1).IsDuet)
|
||||
{
|
||||
CGame.Player[i].LineNr = SelectSlides[htSelectSlides(SelectSlideDuetPlayer[i])].Selection;
|
||||
}
|
||||
}
|
||||
|
||||
CGraphics.FadeTo(EScreens.ScreenSing);
|
||||
@@ -591,12 +697,17 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
Texts[htTexts("TextPlayer" + i)].Text = CLanguage.Translate("TR_SCREENNAMES_PLAYER") + " " + i.ToString();
|
||||
}
|
||||
Equalizers[htEqualizer("EqualizerPlayer" + i)].Visible = true;
|
||||
if (CGame.GetNumSongs() == 1 && CGame.GetSong(1).IsDuet)
|
||||
SelectSlides[htSelectSlides("SelectSlideDuetPlayer" + i)].Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Statics[htStatics("StaticPlayer" + i)].Visible = false;
|
||||
Statics[htStatics("StaticPlayerAvatar" + i)].Visible = false;
|
||||
Texts[htTexts("TextPlayer" + i)].Visible = false;
|
||||
Equalizers[htEqualizer("EqualizerPlayer" + i)].Visible = false;
|
||||
SelectSlides[htSelectSlides("SelectSlideDuetPlayer" + i)].Visible = false;
|
||||
}
|
||||
}
|
||||
CConfig.SaveConfig();
|
||||
|
||||