Merge branch 'develop' of github.com:Vocaluxe/Vocaluxe into develop

This commit is contained in:
Florian Kuepper committed 2012-12-02 16:38:14 +01:00
commit 7973b307ba
71 files changed
+6243 -825

No files matched your search

+12
View File
@@ -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,15 @@
<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_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 +140,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-->
+12
View File
@@ -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,15 @@
<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_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 +140,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-->
+1
View File
@@ -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>
+1
View File
@@ -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>
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

@@ -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-->
@@ -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:-->
@@ -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:-->
@@ -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:-->
@@ -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:-->
@@ -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:-->
@@ -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:-->
@@ -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:-->
@@ -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-->
+3 -3
View File
@@ -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-->
+4 -4
View File
@@ -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:-->
+133 -133
View File
@@ -28,7 +28,7 @@
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</Static1>
</Static1>
<StaticPlayer1>
<!--<Skin>: Texture name-->
<Skin>PlayerSelector</Skin>
@@ -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:-->
@@ -1128,167 +1128,167 @@
</Name>
</Tiles>
</NameSelection>
<EqualizerPlayer1>
<!--<Skin>: Texture name-->
<Skin>Invisible</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Equalizer position, width and height-->
<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: Collumns-->
<Style>Collumns</Style>
<!--<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>Player1Dim</MaxColor>
<!--<DrawNegative>: Draw negative values: TR_CONFIG_OFF, TR_CONFIG_ON -->
<DrawNegative>TR_CONFIG_OFF</DrawNegative>
<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-->
</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: Collumns-->
<Style>Collumns</Style>
<!--<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>Player2Dim</MaxColor>
<!--<DrawNegative>: Draw negative values: TR_CONFIG_OFF, TR_CONFIG_ON -->
<DrawNegative>TR_CONFIG_OFF</DrawNegative>
<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-->
</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: Collumns-->
<Style>Collumns</Style>
<!--<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>Player3Dim</MaxColor>
<!--<DrawNegative>: Draw negative values: TR_CONFIG_OFF, TR_CONFIG_ON -->
<DrawNegative>TR_CONFIG_OFF</DrawNegative>
<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-->
</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: Collumns-->
<Style>Collumns</Style>
<!--<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>Player4Dim</MaxColor>
<!--<DrawNegative>: Draw negative values: TR_CONFIG_OFF, TR_CONFIG_ON -->
<DrawNegative>TR_CONFIG_OFF</DrawNegative>
<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-->
</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: Collumns-->
<Style>Collumns</Style>
<!--<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>Player5Dim</MaxColor>
<!--<DrawNegative>: Draw negative values: TR_CONFIG_OFF, TR_CONFIG_ON -->
<DrawNegative>TR_CONFIG_OFF</DrawNegative>
<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-->
</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>
<!--<Style>: Style of equalizer-elements: Collumns-->
<Space>2,00</Space>
<!--<Style>: Style of equalizer-elements-->
<Style>Collumns</Style>
<!--<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>Player6Dim</MaxColor>
<!--<DrawNegative>: Draw negative values: TR_CONFIG_OFF, TR_CONFIG_ON -->
<DrawNegative>TR_CONFIG_OFF</DrawNegative>
<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>
</EqualizerPlayer6>
</ScreenNames>
</root>
</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:-->
@@ -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,66 +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>
<W>230</W>
<H>150</H>
<Z>-1,00</Z>
<!--<NumBars>: Number of equalizer-elements.-->
<NumBars>10</NumBars>
<Space>2,00</Space>
<!--<Style>: Style of equalizer-elements: Collumns-->
<Style>Collumns</Style>
<!--<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>ButtonSColor</MaxColor>
<!--<DrawNegative>: Draw negative values: TR_CONFIG_OFF, TR_CONFIG_ON -->
<DrawNegative>TR_CONFIG_OFF</DrawNegative>
<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>
<W>230</W>
<H>150</H>
<Z>-1,00</Z>
<!--<NumBars>: Number of equalizer-elements.-->
<NumBars>10</NumBars>
<!--<Space>: Space between equalizer-elements.-->
<Space>2,00</Space>
<!--<Style>: Style of equalizer-elements: Collumns-->
<Style>Collumns</Style>
<!--<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>ButtonSColor</MaxColor>
<!--<DrawNegative>: Draw negative values: TR_CONFIG_OFF, TR_CONFIG_ON -->
<DrawNegative>TR_CONFIG_OFF</DrawNegative>
</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>
</Reflection>
</EqualizerChannel2>
</ScreenOptionsRecord>
</root>
</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-->
@@ -261,7 +261,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:-->
+86 -86
View File
@@ -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-->
+165 -108
View File
@@ -958,64 +958,6 @@
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticAvatarP6N6>
<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>: Text 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>: Text or translation tag-->
<Text />
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</TextDuetName2>
<TextSongName>
<!--<X>, <Y>: Text position-->
<X>640</X>
@@ -1040,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-->
@@ -1069,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-->
@@ -1098,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>
@@ -1127,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-->
@@ -1159,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-->
@@ -1188,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-->
@@ -1220,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-->
@@ -1249,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-->
@@ -1281,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-->
@@ -1310,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-->
@@ -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>Normal</Font>
<!--<Text>: Text or translation tag-->
<!--<Text>: Nothing or translation tag-->
<Text />
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
@@ -1403,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-->
@@ -1432,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-->
@@ -1464,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-->
@@ -1493,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-->
@@ -1525,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-->
@@ -1554,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-->
@@ -1586,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-->
@@ -1615,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-->
@@ -1647,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-->
@@ -1676,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-->
@@ -1708,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-->
@@ -1737,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-->
@@ -1769,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-->
@@ -1798,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-->
@@ -1830,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-->
@@ -1859,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-->
@@ -1891,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-->
@@ -1920,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-->
@@ -1952,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-->
@@ -1981,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-->
@@ -2013,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-->
@@ -2042,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-->
@@ -2074,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-->
@@ -2103,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-->
@@ -2135,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-->
@@ -2164,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-->
@@ -2196,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-->
@@ -2225,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-->
@@ -2257,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-->
@@ -2286,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-->
@@ -2318,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-->
@@ -2347,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-->
@@ -2379,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-->
@@ -2391,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>
@@ -2424,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:-->
@@ -2448,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>
@@ -2481,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:-->
@@ -2499,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>
@@ -2714,4 +2771,4 @@
</BarPositions>
</SingBars>
</ScreenSing>
</root>
</root>
File diff suppressed because it is too large. Load diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

+19
View File
@@ -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>
@@ -307,6 +319,8 @@
<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>
@@ -314,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>
+13
View File
@@ -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>
@@ -307,6 +313,8 @@
<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>
@@ -314,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>
+13
View File
@@ -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>
@@ -307,6 +313,8 @@
<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>
@@ -314,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>
+13
View File
@@ -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>
@@ -307,6 +313,8 @@
<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>
@@ -314,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>
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -6,6 +6,12 @@ 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>, <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
++++++++++
+5
View File
@@ -933,6 +933,11 @@ namespace Vocaluxe.Base
CSettings.sFileHighscoreDB = value;
}
break;
case "playlistfolder":
CSettings.CreateFolder(value);
CSettings.sFolderPlaylists = value;
break;
}
}
}
+34 -4
View File
@@ -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;
}
+12
View File
@@ -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;
}
+109
View File
@@ -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
}
}
+13
View File
@@ -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;
@@ -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);
}
}
}
+12 -10
View File
@@ -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
+48 -8
View File
@@ -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;
}
@@ -262,10 +290,22 @@ namespace Vocaluxe.GameModes
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)
{
}
}
}
+1 -1
View File
@@ -10,7 +10,7 @@ namespace Vocaluxe.GameModes
public override void Init()
{
base.Init();
_Initialized = true;
}
}
+5 -3
View File
@@ -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);
}
}
+253
View File
@@ -0,0 +1,253 @@
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 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 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 != 0)
{
Songs.Reverse(SongNr - 1, 2);
}
}
public void SongDown(int SongNr)
{
if (SongNr < Songs.Count - 1)
{
Songs.Reverse(SongNr, 2);
}
}
}
}
+88 -11
View File
@@ -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
}
}
+429 -14
View File
@@ -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,14 +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
{
@@ -89,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;
@@ -127,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);
@@ -348,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;
@@ -363,13 +514,70 @@ 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;
}
@@ -502,7 +710,7 @@ namespace Vocaluxe.Lib.Song
char chr = (char)sr.Read();
Param1 = CHelper.TryReadInt(sr);
NewSentence(Player, Param1);
isNewSentence = true;
@@ -525,6 +733,8 @@ 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();
@@ -607,5 +817,210 @@ namespace Vocaluxe.Lib.Song
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();
}
}
}
+1 -1
View File
@@ -804,7 +804,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;
}
+5
View File
@@ -38,6 +38,11 @@ namespace Vocaluxe.Menu
public SColorF Color;
public string GetThemeName()
{
return _Theme.Name;
}
#region Constructors
public CBackground()
{
+23 -1
View File
@@ -42,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; }
@@ -55,6 +66,11 @@ namespace Vocaluxe.Menu
}
public bool Visible;
public string GetThemeName()
{
return _Theme.Name;
}
public CButton()
{
_Theme = new SThemeButton();
@@ -67,6 +83,7 @@ namespace Vocaluxe.Menu
SText = new CText();
Selected = false;
Visible = true;
EditMode = false;
Reflection = false;
ReflectionSpace = 0f;
@@ -284,6 +301,11 @@ namespace Vocaluxe.Menu
}
}
public void ProcessMouseMove(int x, int y)
{
Selected = CHelper.IsInBounds(Rect, x, y);
}
public void UnloadTextures()
{
Text.UnloadTextures();
+5
View File
@@ -47,6 +47,11 @@ namespace Vocaluxe.Menu
public bool Visible;
public bool ScreenHandles;
public string GetThemeName()
{
return _Theme.Name;
}
private float[] _Bars;
public CEqualizer()
+4 -2
View File
@@ -15,7 +15,8 @@ namespace Vocaluxe.Menu
TLyric,
TSingNote,
TNameSelection,
TEqualizer
TEqualizer,
TPlaylist
}
class CInteraction
@@ -44,7 +45,8 @@ namespace Vocaluxe.Menu
_Type == EType.TSongMenu ||
_Type == EType.TLyric ||
_Type == EType.TSingNote ||
_Type == EType.TEqualizer);
_Type == EType.TEqualizer ||
_Type == EType.TPlaylist);
}
}
+5
View File
@@ -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); }
+163 -19
View File
@@ -37,6 +37,7 @@ namespace Vocaluxe.Menu
private List<CSingNotes> _SingNotes;
private List<CNameSelection> _NameSelections;
private List<CEqualizer> _Equalizers;
private List<CPlaylist> _Playlists;
private Hashtable _htBackgrounds;
private Hashtable _htStatics;
@@ -48,6 +49,7 @@ namespace Vocaluxe.Menu
private Hashtable _htSingNotes;
private Hashtable _htNameSelections;
private Hashtable _htEqualizers;
private Hashtable _htPlaylists;
private int _PrevMouseX;
@@ -70,6 +72,7 @@ namespace Vocaluxe.Menu
protected string[] _ThemeSingNotes;
protected string[] _ThemeNameSelections;
protected string[] _ThemeEqualizers;
protected string[] _ThemePlaylists;
protected SRectF _ScreenArea;
@@ -103,6 +106,7 @@ namespace Vocaluxe.Menu
_SingNotes = new List<CSingNotes>();
_NameSelections = new List<CNameSelection>();
_Equalizers = new List<CEqualizer>();
_Playlists = new List<CPlaylist>();
_htBackgrounds = new Hashtable();
_htStatics = new Hashtable();
@@ -114,6 +118,7 @@ namespace Vocaluxe.Menu
_htSingNotes = new Hashtable();
_htNameSelections = new Hashtable();
_htEqualizers = new Hashtable();
_htPlaylists = new Hashtable();
_PrevMouseX = 0;
_PrevMouseY = 0;
@@ -135,6 +140,7 @@ namespace Vocaluxe.Menu
_ThemeSingNotes = null;
_ThemeNameSelections = null;
_ThemeEqualizers = null;
_ThemePlaylists = null;
}
#region ThemeHandler
@@ -333,6 +339,22 @@ namespace Vocaluxe.Menu
}
}
}
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
{
@@ -414,6 +436,12 @@ namespace Vocaluxe.Menu
_Equalizers[i].SaveTheme(writer);
}
//Playlists
for (int i = 0; i < _Playlists.Count; i++)
{
_Playlists[i].SaveTheme(writer);
}
writer.WriteEndElement();
// End of File
@@ -475,6 +503,11 @@ namespace Vocaluxe.Menu
{
eq.ReloadTextures();
}
foreach (CPlaylist pls in _Playlists)
{
pls.ReloadTextures();
}
}
public virtual void UnloadTextures()
@@ -523,6 +556,10 @@ namespace Vocaluxe.Menu
{
ns.UnloadTextures();
}
foreach (CPlaylist pls in _Playlists)
{
pls.UnloadTextures();
}
foreach (CEqualizer eq in _Equalizers)
{
@@ -589,6 +626,11 @@ namespace Vocaluxe.Menu
{
return _Equalizers;
}
public List<CPlaylist> GetPlaylists()
{
return _Playlists;
}
#endregion GetLists
#region ElementHandler
@@ -672,6 +714,14 @@ namespace Vocaluxe.Menu
return _Equalizers.ToArray();
}
}
public CPlaylist[] Playlists
{
get
{
return _Playlists.ToArray();
}
}
#endregion Get Arrays
#region Hashtables
@@ -804,6 +854,19 @@ namespace Vocaluxe.Menu
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
@@ -815,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
@@ -1063,7 +1126,8 @@ namespace Vocaluxe.Menu
_Interactions[i].Type == EType.TNameSelection ||
_Interactions[i].Type == EType.TText ||
_Interactions[i].Type == EType.TSongMenu ||
_Interactions[i].Type == EType.TEqualizer))
_Interactions[i].Type == EType.TEqualizer ||
_Interactions[i].Type == EType.TPlaylist))
{
ZSort zs = new ZSort();
zs.ID = i;
@@ -1156,6 +1220,13 @@ namespace Vocaluxe.Menu
_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
@@ -1171,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)
@@ -1308,6 +1391,10 @@ namespace Vocaluxe.Menu
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;
}
@@ -1332,6 +1419,8 @@ namespace Vocaluxe.Menu
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;
}
@@ -1363,6 +1452,9 @@ namespace Vocaluxe.Menu
case EType.TEqualizer:
return _Equalizers[_Interactions[interaction].Num].Rect.Z;
case EType.TPlaylist:
return _Playlists[_Interactions[interaction].Num].Rect.Z;
}
return CSettings.zFar;
@@ -1422,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];
@@ -1488,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)
@@ -1581,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;
@@ -1648,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()
@@ -1688,6 +1802,9 @@ namespace Vocaluxe.Menu
case EType.TEqualizer:
_Equalizers[_Interactions[_Selection].Num].Selected = true;
break;
case EType.TPlaylist:
_Playlists[_Interactions[_Selection].Num].Selected = true;
break;
}
}
@@ -1719,6 +1836,9 @@ namespace Vocaluxe.Menu
case EType.TEqualizer:
_Equalizers[_Interactions[_Selection].Num].Selected = false;
break;
case EType.TPlaylist:
_Playlists[_Interactions[_Selection].Num].Selected = false;
break;
}
}
@@ -1750,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;
}
}
@@ -1781,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;
}
}
@@ -1833,6 +1959,9 @@ namespace Vocaluxe.Menu
case EType.TEqualizer:
return _Equalizers[_Interactions[interaction].Num].Visible;
case EType.TPlaylist:
return _Playlists[_Interactions[interaction].Num].Visible;
}
return false;
@@ -1866,6 +1995,9 @@ namespace Vocaluxe.Menu
case EType.TEqualizer:
return _Equalizers[_Interactions[interaction].Num].Rect;
case EType.TPlaylist:
return _Playlists[_Interactions[interaction].Num].Rect;
}
return Result;
@@ -1916,6 +2048,10 @@ namespace Vocaluxe.Menu
//_Equalizers[_Interactions[interaction].Num].Draw();
}
break;
case EType.TPlaylist:
_Playlists[_Interactions[interaction].Num].Draw();
break;
//TODO:
//case EType.TLyric:
@@ -1960,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;
}
}
}
@@ -1997,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;
}
}
}
+5
View File
@@ -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;
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+69 -1
View File
@@ -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;
@@ -112,6 +117,14 @@ namespace Vocaluxe.Menu
}
}
public int NumValues
{
get
{
return _ValueNames.Count;
}
}
private int _NumVisible = -1;
public int NumVisible
{
@@ -151,6 +164,56 @@ 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;
MaxW = slide.MaxW;
_Selected = false;
_Textures = new List<STexture>();
_ValueIndexes = new List<int>();
_ValueNames = new List<string>();
_NumVisible = slide._NumVisible;
}
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
{
string item = XmlPath + "/" + ElementName;
@@ -746,6 +809,11 @@ namespace Vocaluxe.Menu
LoadTextures();
}
public object Clone()
{
return base.MemberwiseClone();
}
#region ThemeEdit
public void MoveElement(int stepX, int stepY)
{
+5
View File
@@ -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
{
+31 -7
View File
@@ -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;
@@ -538,7 +545,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 +603,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 +625,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 +665,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 +748,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))
+1
View File
@@ -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);
+10 -5
View File
@@ -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,
+25
View File
@@ -73,6 +73,16 @@ namespace Vocaluxe.Menu.SongMenu
_SongMenu.Draw();
}
public bool IsActive()
{
return _SongMenu.IsActive();
}
public void SetActive(bool Active)
{
_SongMenu.SetActive(Active);
}
public int GetSelectedSong()
{
return _SongMenu.GetSelectedSong();
@@ -118,9 +128,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);
+87 -23
View File
@@ -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,7 @@ namespace Vocaluxe.Menu.SongMenu
protected long _PendingTime = 500L;
private int _LockedInternal = -1;
protected bool _Active = false;
protected int _PreviewSelected //for preview only
{
@@ -201,6 +218,7 @@ namespace Vocaluxe.Menu.SongMenu
public void SetSelected(bool Selected)
{
_Selected = Selected;
SetActive(Selected);
}
public bool IsVisible()
@@ -225,10 +243,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 +263,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 +284,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 +295,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 +304,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 +340,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 +376,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 +389,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 +404,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,6 +510,16 @@ namespace Vocaluxe.Menu.SongMenu
}
public virtual bool IsActive()
{
return _Active;
}
public virtual void SetActive(bool Active)
{
_Active = Active;
}
public virtual int GetSelectedSong()
{
return -1;
@@ -481,6 +536,17 @@ namespace Vocaluxe.Menu.SongMenu
return;
}
public virtual void SetSmallView(bool SmallView)
{
if (!_Initialized)
return;
}
public virtual bool IsSmallView()
{
return false;
}
public virtual void UnloadTextures()
{
}
@@ -491,14 +557,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()
@@ -551,7 +609,13 @@ namespace Vocaluxe.Menu.SongMenu
int _stream = CSound.Load(Path.Combine(CSongs.VisibleSongs[_actsong].Folder, CSongs.VisibleSongs[_actsong].MP3FileName), true);
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 +626,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();
+95 -9
View File
@@ -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,6 +460,8 @@ namespace Vocaluxe.Menu.SongMenu
_SongLength.Text = String.Empty;
_DuetIcon.Visible = false;
_VideoIcon.Visible = false;
_MedleyCalcIcon.Visible = false;
_MedleyTagIcon.Visible = false;
}
}
@@ -475,6 +489,8 @@ namespace Vocaluxe.Menu.SongMenu
_SongLength.Draw();
_DuetIcon.Draw();
_VideoIcon.Draw();
_MedleyCalcIcon.Draw();
_MedleyTagIcon.Draw();
}
@@ -653,6 +669,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();
@@ -661,6 +745,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();
+6
View File
@@ -20,6 +20,9 @@ namespace Vocaluxe.Menu.SongMenu
int GetSelectedSong();
void SetSelectedSong(int VisibleSongNr);
bool IsActive();
void SetActive(bool Active);
int GetSelectedCategory();
int GetActualSelection();
@@ -29,6 +32,9 @@ namespace Vocaluxe.Menu.SongMenu
bool IsVisible();
void SetVisible(bool Visible);
bool IsSmallView();
void SetSmallView(bool SmallView);
SRectF GetRect();
}
}
@@ -217,9 +217,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);
+70 -54
View File
@@ -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();
}
}
}
+5
View File
@@ -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()
+81 -21
View File
@@ -92,6 +92,11 @@ namespace Vocaluxe.Screens
{
base.HandleMouse(MouseEvent);
if (MouseEvent.Wheel != 0)
{
ChangeRound(MouseEvent.Wheel);
}
if (MouseEvent.LB)
{
CGraphics.FadeTo(EScreens.ScreenHighscore);
@@ -117,9 +122,23 @@ namespace Vocaluxe.Screens
public override bool UpdateGame()
{
SPlayer[] player = new SPlayer[CGame.NumPlayer];
player = _Points.GetPlayer(_Round - 1, CGame.NumPlayer);
if (_Round != 0)
player = _Points.GetPlayer(_Round - 1, CGame.NumPlayer);
else {
for (int i = 0; i < CGame.NumRounds; i++)
{
SPlayer[] points = _Points.GetPlayer(i, CGame.NumPlayer);
for (int p = 0; p < player.Length; p++)
{
player[p].Points += points[p].Points;
}
}
for (int p = 0; p < player.Length; p++)
{
player[p].Points = (int)(player[p].Points/CGame.NumRounds);
}
}
for (int p = 0; p < player.Length; p++)
{
if (StaticPointsBarDrawnPoints[p] < player[p].Points)
@@ -244,30 +263,61 @@ namespace Vocaluxe.Screens
private void UpdateRatings()
{
CSong song = CGame.GetSong(_Round);
if (song == null)
return;
Texts[htTexts(TextSong)].Text = song.Artist + " - " + song.Title;
if (_Points.NumRounds > 1)
CSong song = null;
SPlayer[] player = new SPlayer[CGame.NumPlayer];
if (_Round != 0)
{
Texts[htTexts(TextSong)].Text += " (" + _Round + "/" + _Points.NumRounds + ")";
song = CGame.GetSong(_Round);
if (song == null)
return;
Texts[htTexts(TextSong)].Text = song.Artist + " - " + song.Title;
if (_Points.NumRounds > 1)
{
Texts[htTexts(TextSong)].Text += " (" + _Round + "/" + _Points.NumRounds + ")";
}
player = _Points.GetPlayer(_Round - 1, CGame.NumPlayer);
}
else
{
Texts[htTexts(TextSong)].Text = "TR_SCREENSCORE_OVERALLSCORE";
for (int i = 0; i < CGame.NumRounds; i++)
{
SPlayer[] points = _Points.GetPlayer(i, CGame.NumPlayer);
for (int p = 0; p < player.Length; p++)
{
if (i < 1)
{
player[p].ProfileID = points[p].ProfileID;
player[p].Name = points[p].Name;
player[p].Difficulty = points[p].Difficulty;
}
player[p].Points += points[p].Points;
}
}
for (int p = 0; p < player.Length; p++)
{
player[p].Points = (int)(player[p].Points / CGame.NumRounds);
}
}
SPlayer[] player = new SPlayer[CGame.NumPlayer];
player = _Points.GetPlayer(_Round - 1, CGame.NumPlayer);
for (int p = 0; p < player.Length; p++)
{
if (!song.IsDuet)
Texts[htTexts(TextNames[p, CGame.NumPlayer - 1])].Text = player[p].Name;
else
if(player[p].LineNr == 0 && song.DuetPart1 != "Part 1")
Texts[htTexts(TextNames[p, CGame.NumPlayer - 1])].Text = player[p].Name + " (" + song.DuetPart1 + ")";
else if(player[p].LineNr == 1 && song.DuetPart2 != "Part 2")
Texts[htTexts(TextNames[p, CGame.NumPlayer - 1])].Text = player[p].Name + " (" + song.DuetPart2 + ")";
else
if (song != null)
{
if (!song.IsDuet)
Texts[htTexts(TextNames[p, CGame.NumPlayer - 1])].Text = player[p].Name;
else
if (player[p].LineNr == 0 && song.DuetPart1 != "Part 1")
Texts[htTexts(TextNames[p, CGame.NumPlayer - 1])].Text = player[p].Name + " (" + song.DuetPart1 + ")";
else if (player[p].LineNr == 1 && song.DuetPart2 != "Part 2")
Texts[htTexts(TextNames[p, CGame.NumPlayer - 1])].Text = player[p].Name + " (" + song.DuetPart2 + ")";
else
Texts[htTexts(TextNames[p, CGame.NumPlayer - 1])].Text = player[p].Name;
}
else
Texts[htTexts(TextNames[p, CGame.NumPlayer - 1])].Text = player[p].Name;
Texts[htTexts(TextScores[p, CGame.NumPlayer - 1])].Text = ((int)Math.Round(player[p].Points)).ToString("0000") + " " + CLanguage.Translate("TR_SCREENSCORE_POINTS");
if (CGame.NumPlayer <= 3)
{
@@ -324,11 +374,21 @@ namespace Vocaluxe.Screens
private void ChangeRound(int Num)
{
if ((_Round + Num) <= _Points.NumRounds && (_Round + Num) > 0)
if ((_Round + Num) <= _Points.NumRounds && (_Round + Num) > 0 && _Round != 0)
{
_Round += Num;
UpdateRatings();
}
else if(Num > 0 && _Round != 0 && CGame.NumRounds > 1)
{
_Round = 0;
UpdateRatings();
}
else if (Num < 0 && _Round == 0)
{
_Round = CGame.NumRounds;
UpdateRatings();
}
}
}
}
+61 -34
View File
@@ -53,6 +53,7 @@ namespace Vocaluxe.Screens
private const string ButtonCancel = "ButtonCancel";
private const string ButtonContinue = "ButtonContinue";
private const string ButtonSkip = "ButtonSkip";
private const string LyricMain = "LyricMain";
private const string LyricSub = "LyricSub";
@@ -133,6 +134,7 @@ namespace Vocaluxe.Screens
List<string> buttons = new List<string>();
buttons.Add(ButtonCancel);
buttons.Add(ButtonContinue);
buttons.Add(ButtonSkip);
_ThemeButtons = buttons.ToArray();
_ThemeLyrics = new string[] { LyricMain, LyricSub, LyricMainDuet, LyricSubDuet, LyricMainTop, LyricSubTop };
@@ -208,12 +210,22 @@ namespace Vocaluxe.Screens
SetVisuability();
break;
case Keys.S:
if(CGame.NumRounds > CGame.RoundNr)
if(KeyEvent.ModCTRL)
LoadNextSong();
break;
case Keys.Enter:
if (Buttons[htButtons(ButtonContinue)].Selected && _Pause)
TogglePause();
TogglePause();
if (Buttons[htButtons(ButtonCancel)].Selected && _Pause)
Stop();
Stop();
if (Buttons[htButtons(ButtonSkip)].Selected && _Pause)
{
LoadNextSong();
TogglePause();
}
break;
}
}
@@ -240,6 +252,11 @@ namespace Vocaluxe.Screens
if (Buttons[htButtons(ButtonCancel)].Selected && _Pause)
Stop();
if (Buttons[htButtons(ButtonSkip)].Selected && _Pause)
{
LoadNextSong();
TogglePause();
}
}
@@ -642,7 +659,9 @@ namespace Vocaluxe.Screens
private void Stop()
{
CGame.NextRound();
//Need this to set other songs to points-var
while(!CGame.IsFinished())
CGame.NextRound();
CGraphics.FadeTo(EScreens.ScreenScore);
_FadeOut = true;
@@ -675,7 +694,7 @@ namespace Vocaluxe.Screens
{
if (line[j].StartBeat <= _CurrentBeat)
{
if (CGame.GetTimeFromBeats(line[j].FirstBeat, song.BPM) <= _CurrentTime - song.Gap + 10f)
if (CGame.GetTimeFromBeats(line[j].FirstNoteBeat, song.BPM) <= _CurrentTime - song.Gap + 10f)
{
nr = j;
}
@@ -694,8 +713,8 @@ namespace Vocaluxe.Screens
{
Lyrics[htLyrics(LyricMain)].SetLine(line[nr]);
Lyrics[htLyrics(LyricMainTop)].SetLine(line[nr]);
_TimeToFirstNote = CGame.GetTimeFromBeats(line[nr].FirstBeat - line[nr].StartBeat, song.BPM);
_RemainingTimeToFirstNote = CGame.GetTimeFromBeats(line[nr].FirstBeat - CGame.GetBeatFromTime(_CurrentTime, song.BPM, song.Gap), song.BPM);
_TimeToFirstNote = CGame.GetTimeFromBeats(line[nr].FirstNoteBeat - line[nr].StartBeat, song.BPM);
_RemainingTimeToFirstNote = CGame.GetTimeFromBeats(line[nr].FirstNoteBeat - CGame.GetBeatFromTime(_CurrentTime, song.BPM, song.Gap), song.BPM);
if (line.Length >= nr + 2)
{
@@ -711,8 +730,8 @@ namespace Vocaluxe.Screens
if (i == 0 && song.IsDuet)
{
Lyrics[htLyrics(LyricMainDuet)].SetLine(line[nr]);
_TimeToFirstNoteDuet = CGame.GetTimeFromBeats(line[nr].FirstBeat - line[nr].StartBeat, song.BPM);
_RemainingTimeToFirstNoteDuet = CGame.GetTimeFromBeats(line[nr].FirstBeat - CGame.GetBeatFromTime(_CurrentTime, song.BPM, song.Gap), song.BPM);
_TimeToFirstNoteDuet = CGame.GetTimeFromBeats(line[nr].FirstNoteBeat - line[nr].StartBeat, song.BPM);
_RemainingTimeToFirstNoteDuet = CGame.GetTimeFromBeats(line[nr].FirstNoteBeat - CGame.GetBeatFromTime(_CurrentTime, song.BPM, song.Gap), song.BPM);
if (line.Length >= nr + 2)
Lyrics[htLyrics(LyricSubDuet)].SetLine(line[nr + 1]);
@@ -748,11 +767,16 @@ namespace Vocaluxe.Screens
{
Buttons[htButtons(ButtonCancel)].Visible = true;
Buttons[htButtons(ButtonContinue)].Visible = true;
if (CGame.NumRounds > CGame.RoundNr && CGame.NumRounds > 1)
Buttons[htButtons(ButtonSkip)].Visible = true;
else
Buttons[htButtons(ButtonSkip)].Visible = false;
CSound.Pause(_CurrentStream);
}else
{
Buttons[htButtons(ButtonCancel)].Visible = false;
Buttons[htButtons(ButtonContinue)].Visible = false;
Buttons[htButtons(ButtonSkip)].Visible = false;
CSound.Play(_CurrentStream);
}
}
@@ -958,7 +982,7 @@ namespace Vocaluxe.Screens
{
if (line[j].StartBeat <= _CurrentBeat)
{
if (CGame.GetTimeFromBeats(line[j].FirstBeat, Song.BPM) <= _CurrentTime - Song.Gap + 10f)
if (CGame.GetTimeFromBeats(line[j].FirstNoteBeat, Song.BPM) <= _CurrentTime - Song.Gap + 10f)
{
CurrentLineSub = j;
}
@@ -969,7 +993,7 @@ namespace Vocaluxe.Screens
int CurrentLine = 0;
for (int j = 0; j < line.Length; j++)
{
if (line[j].FirstBeat <= _CurrentBeat)
if (line[j].FirstNoteBeat <= _CurrentBeat)
{
CurrentLine = j;
}
@@ -980,33 +1004,33 @@ namespace Vocaluxe.Screens
Alpha[i * 2 + 1] = 1f;
// main line alpha
if (CurrentLine == 0 && CurrentTime < CGame.GetTimeFromBeats(line[CurrentLine].FirstBeat, Song.BPM))
if (CurrentLine == 0 && CurrentTime < CGame.GetTimeFromBeats(line[CurrentLine].FirstNoteBeat, Song.BPM))
{
// first main line and fist note is not reached
// => fade in
float diff = CGame.GetTimeFromBeats(line[CurrentLine].FirstBeat, Song.BPM) - CurrentTime;
float diff = CGame.GetTimeFromBeats(line[CurrentLine].FirstNoteBeat, Song.BPM) - CurrentTime;
if (diff > dt)
{
Alpha[i * 2] = 1f - (diff - dt) / rt;
}
}
else if (CurrentLine < line.Length - 1 && CGame.GetTimeFromBeats(line[CurrentLine].LastBeat, Song.BPM) < CurrentTime &&
CGame.GetTimeFromBeats(line[CurrentLine + 1].FirstBeat, Song.BPM) > CurrentTime)
else if (CurrentLine < line.Length - 1 && CGame.GetTimeFromBeats(line[CurrentLine].LastNoteBeat, Song.BPM) < CurrentTime &&
CGame.GetTimeFromBeats(line[CurrentLine + 1].FirstNoteBeat, Song.BPM) > CurrentTime)
{
// current position is between two lines
// time between the to lines
float diff = CGame.GetTimeFromBeats(line[CurrentLine + 1].FirstBeat, Song.BPM) -
CGame.GetTimeFromBeats(line[CurrentLine].LastBeat, Song.BPM);
float diff = CGame.GetTimeFromBeats(line[CurrentLine + 1].FirstNoteBeat, Song.BPM) -
CGame.GetTimeFromBeats(line[CurrentLine].LastNoteBeat, Song.BPM);
// fade only if there is enough time for fading
if (diff > 3.3f * dt)
{
// time elapsed since last line
float last = CurrentTime - CGame.GetTimeFromBeats(line[CurrentLine].LastBeat, Song.BPM);
float last = CurrentTime - CGame.GetTimeFromBeats(line[CurrentLine].LastNoteBeat, Song.BPM);
// time to next line
float next = CGame.GetTimeFromBeats(line[CurrentLine + 1].FirstBeat, Song.BPM) - CurrentTime;
float next = CGame.GetTimeFromBeats(line[CurrentLine + 1].FirstNoteBeat, Song.BPM) - CurrentTime;
if (last < next)
{
@@ -1021,11 +1045,11 @@ namespace Vocaluxe.Screens
}
}
}
else if (CurrentLine == line.Length - 1 && CGame.GetTimeFromBeats(line[CurrentLine].LastBeat, Song.BPM) < CurrentTime)
else if (CurrentLine == line.Length - 1 && CGame.GetTimeFromBeats(line[CurrentLine].LastNoteBeat, Song.BPM) < CurrentTime)
{
// last main line and last note was reached
// => fade out
float diff = CurrentTime - CGame.GetTimeFromBeats(line[CurrentLine].LastBeat, Song.BPM);
float diff = CurrentTime - CGame.GetTimeFromBeats(line[CurrentLine].LastNoteBeat, Song.BPM);
Alpha[i * 2] = 1f - diff / rt;
}
@@ -1033,7 +1057,7 @@ namespace Vocaluxe.Screens
if (CurrentLineSub < line.Length - 2)
{
float diff = 0f;
diff = CGame.GetTimeFromBeats(line[CurrentLineSub + 1].FirstBeat, Song.BPM) - CurrentTime;
diff = CGame.GetTimeFromBeats(line[CurrentLineSub + 1].FirstNoteBeat, Song.BPM) - CurrentTime;
if (diff > dt)
{
@@ -1261,19 +1285,22 @@ namespace Vocaluxe.Screens
{
CLine[] Line = Lines[i].Line;
for(int j = 0; j<Line.Length; j++){
TimeRect trect = new TimeRect();
trect.startBeat = Line[j].FirstBeat;
trect.endBeat = Line[j].EndBeat;
trect.rect = new CStatic(new STexture(-1),
new SColorF(1f, 1f, 1f, 1f),
new SRectF(stat.Rect.X + stat.Rect.W * ((CGame.GetTimeFromBeats(trect.startBeat, song.BPM) + song.Gap - song.Start) / TotalTime),
stat.Rect.Y,
stat.Rect.W * (CGame.GetTimeFromBeats((trect.endBeat - trect.startBeat), song.BPM) / TotalTime),
stat.Rect.H,
stat.Rect.Z));
if (Line[j].VisibleInTimeLine)
{
TimeRect trect = new TimeRect();
trect.startBeat = Line[j].FirstNoteBeat;
trect.endBeat = Line[j].EndBeat;
_TimeRects.Add(trect);
trect.rect = new CStatic(new STexture(-1),
new SColorF(1f, 1f, 1f, 1f),
new SRectF(stat.Rect.X + stat.Rect.W * ((CGame.GetTimeFromBeats(trect.startBeat, song.BPM) + song.Gap - song.Start) / TotalTime),
stat.Rect.Y,
stat.Rect.W * (CGame.GetTimeFromBeats((trect.endBeat - trect.startBeat), song.BPM) / TotalTime),
stat.Rect.H,
stat.Rect.Z));
_TimeRects.Add(trect);
}
}
}
+550 -82
View File
@@ -9,6 +9,7 @@ using System.Windows.Forms;
using Vocaluxe.Base;
using Vocaluxe.GameModes;
using Vocaluxe.Lib.Draw;
using Vocaluxe.Lib.Song;
using Vocaluxe.Menu;
using Vocaluxe.Menu.SongMenu;
@@ -16,23 +17,52 @@ namespace Vocaluxe.Screens
{
class CScreenSong : CMenu
{
enum ESongOptionsView
{
None,
Song,
General
}
// Version number for theme files. Increment it, if you've changed something on the theme files!
const int ScreenVersion = 1;
const int ScreenVersion = 3;
private const string TextCategory = "TextCategory";
private const string TextSelection = "TextSelection";
private const string TextSearchBarTitle = "TextSearchBarTitle";
private const string TextSearchBar = "TextSearchBar";
private const string TextOptionsTitle = "TextOptionsTitle";
private const string ButtonOpenOptions = "ButtonOpenOptions";
private const string ButtonOptionsSing = "ButtonOptionsSing";
private const string ButtonOptionsPlaylist = "ButtonOptionsPlaylist";
private const string ButtonOptionsClose = "ButtonOptionsClose";
private const string ButtonOptionsRandom = "ButtonOptionsRandom";
private const string ButtonOptionsSingAll = "ButtonOptionsSingAll";
private const string ButtonOptionsSingAllVisible = "ButtonOptionsSingAllVisible";
private const string ButtonOptionsOpenPlaylist = "ButtonOptionsOpenPlaylist";
private const string SelectSlideOptionsMode = "SelectSlideOptionsMode";
private const string SelectSlideOptionsPlaylistAdd = "SelectSlideOptionsPlaylistAdd";
private const string SelectSlideOptionsPlaylistOpen = "SelectSlideOptionsPlaylistOpen";
private const string StaticSearchBar = "StaticSearchBar";
private const string StaticOptionsBG = "StaticOptionsBG";
private const string SongMenu = "SongMenu";
private const string Playlist = "Playlist";
private string _SearchText = String.Empty;
private bool _SearchActive = false;
private bool _SongOptionsActive = false;
private bool _PlaylistActive = false;
private List<GameModes.EGameMode> _AvailableGameModes;
public CScreenSong()
{
Init();
_AvailableGameModes = new List<GameModes.EGameMode>();
}
protected override void Init()
@@ -41,87 +71,115 @@ namespace Vocaluxe.Screens
_ThemeName = "ScreenSong";
_ScreenVersion = ScreenVersion;
_ThemeStatics = new string[] { StaticSearchBar };
_ThemeTexts = new string[] { TextCategory, TextSelection, TextSearchBarTitle, TextSearchBar };
_ThemeStatics = new string[] { StaticSearchBar, StaticOptionsBG };
_ThemeTexts = new string[] { TextCategory, TextSelection, TextSearchBarTitle, TextSearchBar, TextOptionsTitle };
_ThemeButtons = new string[] { ButtonOptionsClose, ButtonOptionsPlaylist, ButtonOptionsSing, ButtonOptionsRandom, ButtonOptionsSingAll, ButtonOptionsSingAllVisible, ButtonOptionsOpenPlaylist, ButtonOpenOptions };
_ThemeSelectSlides = new string[] { SelectSlideOptionsMode, SelectSlideOptionsPlaylistAdd, SelectSlideOptionsPlaylistOpen };
_ThemeSongMenus = new string[] { SongMenu };
_ThemePlaylists = new string[] { Playlist };
}
public override void LoadTheme()
{
base.LoadTheme();
SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Visible = false;
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Visible = false;
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].Visible = false;
Buttons[htButtons(ButtonOptionsClose)].Visible = false;
Buttons[htButtons(ButtonOptionsSing)].Visible = false;
Buttons[htButtons(ButtonOptionsPlaylist)].Visible = false;
Buttons[htButtons(ButtonOptionsRandom)].Visible = false;
Buttons[htButtons(ButtonOptionsSingAll)].Visible = false;
Buttons[htButtons(ButtonOptionsSingAllVisible)].Visible = false;
Buttons[htButtons(ButtonOptionsOpenPlaylist)].Visible = false;
Texts[htTexts(TextOptionsTitle)].Visible = false;
Statics[htStatics(StaticOptionsBG)].Visible = false;
Playlists[htPlaylists(Playlist)].Visible = false;
}
public override bool HandleInput(KeyEvent KeyEvent)
{
base.HandleInput(KeyEvent);
if (KeyEvent.Handled)
return true;
if (KeyEvent.KeyPressed && !Char.IsControl(KeyEvent.Unicode))
if (_PlaylistActive)
{
if (_SearchActive)
ApplyNewSearchFilter(_SearchText + KeyEvent.Unicode);
/*
else if (!Char.IsControl(KeyEvent.Unicode))
if (!KeyEvent.KeyPressed && KeyEvent.Key == Keys.Tab)
{
JumpTo(KeyEvent.Unicode);
_PlaylistActive = !_PlaylistActive;
Playlists[htPlaylists(Playlist)].Selected = _PlaylistActive;
SongMenus[htSongMenus(SongMenu)].SetActive(!_PlaylistActive);
return true;
} */
}
Playlists[htPlaylists(Playlist)].HandleInput(KeyEvent);
if (CPlaylists.NumPlaylists != SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].NumValues)
UpdatePlaylistNames();
return true;
}
else
if (!_SongOptionsActive)
{
SongMenus[htSongMenus(SongMenu)].HandleInput(ref KeyEvent);
if (KeyEvent.Handled)
return true;
switch (KeyEvent.Key)
if (KeyEvent.KeyPressed && !Char.IsControl(KeyEvent.Unicode))
{
case Keys.Escape:
if (CSongs.Category < 0 || CConfig.Tabs == EOffOn.TR_CONFIG_OFF)
CGraphics.FadeTo(EScreens.ScreenMain);
break;
if (_SearchActive)
ApplyNewSearchFilter(_SearchText + KeyEvent.Unicode);
/*
else if (!Char.IsControl(KeyEvent.Unicode))
{
JumpTo(KeyEvent.Unicode);
return true;
} */
}
else
{
SongMenus[htSongMenus(SongMenu)].HandleInput(ref KeyEvent);
if (KeyEvent.Handled)
return true;
case Keys.Enter:
if (CSongs.NumVisibleSongs > 0)
StartSong(SongMenus[htSongMenus(SongMenu)].GetSelectedSong());
break;
switch (KeyEvent.Key)
{
case Keys.Escape:
if (CSongs.Category < 0 || CConfig.Tabs == EOffOn.TR_CONFIG_OFF)
CGraphics.FadeTo(EScreens.ScreenMain);
break;
case Keys.Back:
if (_SearchText.Length > 0)
{
ApplyNewSearchFilter(_SearchText.Remove(_SearchText.Length - 1));
}
case Keys.Enter:
if (CSongs.NumVisibleSongs > 0)
{
if (SongMenus[htSongMenus(SongMenu)].GetSelectedSong() != -1 && !_SongOptionsActive)
ToggleSongOptions(ESongOptionsView.Song);
}
break;
if (!_SearchActive && CSongs.Category < 0)
CGraphics.FadeTo(EScreens.ScreenMain);
case Keys.Tab:
if (Playlists[htPlaylists(Playlist)].Visible)
{
_PlaylistActive = !_PlaylistActive;
Playlists[htPlaylists(Playlist)].Selected = _PlaylistActive;
SongMenus[htSongMenus(SongMenu)].SetActive(!_PlaylistActive);
}
break;
break;
case Keys.Back:
if (_SearchText.Length > 0)
{
ApplyNewSearchFilter(_SearchText.Remove(_SearchText.Length - 1));
}
case Keys.F3:
if (_SearchActive)
{
_SearchActive = false;
_SearchText = String.Empty;
ApplyNewSearchFilter(_SearchText);
}
else
{
_SearchActive = true;
}
break;
if (!_SearchActive && CSongs.Category < 0)
CGraphics.FadeTo(EScreens.ScreenMain);
case Keys.A:
if (!_SearchActive && KeyEvent.Mod == Modifier.None)
{
StartRandomAllSongs();
}
if (KeyEvent.Mod == Modifier.Ctrl)
{
StartRandomVisibleSongs();
}
break;
break;
case Keys.F:
if (KeyEvent.Mod == Modifier.Ctrl){
case Keys.Space:
ToggleSongOptions(ESongOptionsView.General);
break;
case Keys.F3:
if (_SearchActive)
{
_SearchActive = false;
@@ -132,14 +190,97 @@ namespace Vocaluxe.Screens
{
_SearchActive = true;
}
break;
//TODO: Delete it! ??? Shouldn't we keep this as shortcut?
case Keys.A:
if (!_SearchActive && KeyEvent.Mod == Modifier.None)
{
StartRandomAllSongs();
}
if (KeyEvent.Mod == Modifier.Ctrl)
{
StartRandomVisibleSongs();
}
break;
//TODO: Delete that from here and from wiki!
case Keys.F:
if (KeyEvent.Mod == Modifier.Ctrl)
{
if (_SearchActive)
{
_SearchActive = false;
_SearchText = String.Empty;
ApplyNewSearchFilter(_SearchText);
}
else
{
_SearchActive = true;
}
}
break;
//TODO: We need another key for random!
case Keys.R:
if (CSongs.Category != -1 && KeyEvent.Mod == Modifier.Ctrl)
{
SongMenus[htSongMenus(SongMenu)].SetSelectedSong(CSongs.GetRandomSong());
}
break;
//TODO: Delete that!
case Keys.S:
if (CSongs.NumVisibleSongs > 0)
StartMedleySong(SongMenus[htSongMenus(SongMenu)].GetSelectedSong());
break;
}
}
}
else
{
switch (KeyEvent.Key)
{
case Keys.Enter:
if (Buttons[htButtons(ButtonOptionsClose)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
}
else if (Buttons[htButtons(ButtonOptionsSing)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
StartSong(SongMenus[htSongMenus(SongMenu)].GetSelectedSong());
}
else if (Buttons[htButtons(ButtonOptionsPlaylist)].Selected)
{
OpenAndAddPlaylistAction();
}
else if (Buttons[htButtons(ButtonOptionsRandom)].Selected)
{
if (CSongs.Category != -1)
{
SongMenus[htSongMenus(SongMenu)].SetSelectedSong(CSongs.GetRandomSong());
}
}
else if (Buttons[htButtons(ButtonOptionsSingAll)].Selected)
{
StartRandomAllSongs();
}
else if (Buttons[htButtons(ButtonOptionsSingAllVisible)].Selected)
{
StartRandomVisibleSongs();
}
else if (Buttons[htButtons(ButtonOptionsOpenPlaylist)].Selected)
{
OpenPlaylistAction();
}
break;
case Keys.R:
if (CSongs.Category != -1 && KeyEvent.Mod == Modifier.Ctrl)
{
SongMenus[htSongMenus(SongMenu)].SetSelectedSong(CSongs.GetRandomSong());
}
case Keys.Escape:
case Keys.Back:
case Keys.Space:
ToggleSongOptions(ESongOptionsView.None);
break;
}
}
@@ -151,22 +292,98 @@ namespace Vocaluxe.Screens
{
base.HandleMouse(MouseEvent);
if ((MouseEvent.RB) && (CSongs.Category < 0))
if (Playlists[htPlaylists(Playlist)].Visible && Playlists[htPlaylists(Playlist)].IsMouseOver(MouseEvent))
{
CGraphics.FadeTo(EScreens.ScreenMain);
_PlaylistActive = true;
Playlists[htPlaylists(Playlist)].Selected = _PlaylistActive;
SongMenus[htSongMenus(SongMenu)].SetActive(!_PlaylistActive);
}
else if (CHelper.IsInBounds(SongMenus[htSongMenus(SongMenu)].Rect, MouseEvent.X, MouseEvent.Y))
{
_PlaylistActive = false;
Playlists[htPlaylists(Playlist)].Selected = _PlaylistActive;
SongMenus[htSongMenus(SongMenu)].SetActive(!_PlaylistActive);
}
if (MouseEvent.MB && CSongs.Category != -1)
if (Playlists[htPlaylists(Playlist)].Visible && Playlists[htPlaylists(Playlist)].HandleMouse(MouseEvent))
return true;
if (!_SongOptionsActive)
{
Console.WriteLine("MB pressed");
SongMenus[htSongMenus(SongMenu)].SetSelectedSong(CSongs.GetRandomSong());
if ((MouseEvent.RB) && (CSongs.Category < 0))
{
CGraphics.FadeTo(EScreens.ScreenMain);
}
else if (MouseEvent.RB && _SongOptionsActive)
ToggleSongOptions(ESongOptionsView.None);
if (MouseEvent.MB && CSongs.Category != -1)
{
SongMenus[htSongMenus(SongMenu)].SetSelectedSong(CSongs.GetRandomSong());
}
else
SongMenus[htSongMenus(SongMenu)].HandleMouse(ref MouseEvent);
if (MouseEvent.LB && CSongs.NumVisibleSongs > 0 && SongMenus[htSongMenus(SongMenu)].GetActualSelection() != -1)
{
if (SongMenus[htSongMenus(SongMenu)].GetSelectedSong() != -1 && !_SongOptionsActive)
{
ToggleSongOptions(ESongOptionsView.Song);
}
}
else if (MouseEvent.LB && IsMouseOver(MouseEvent))
{
if (Buttons[htButtons(ButtonOpenOptions)].Selected)
{
ToggleSongOptions(ESongOptionsView.General);
}
}
}
else
SongMenus[htSongMenus(SongMenu)].HandleMouse(ref MouseEvent);
if (MouseEvent.LB && CSongs.NumVisibleSongs > 0 && SongMenus[htSongMenus(SongMenu)].GetActualSelection() != -1)
{
StartSong(SongMenus[htSongMenus(SongMenu)].GetSelectedSong());
if (MouseEvent.LB && IsMouseOver(MouseEvent))
{
if (Buttons[htButtons(ButtonOptionsClose)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
}
else if (Buttons[htButtons(ButtonOptionsSing)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
StartSong(SongMenus[htSongMenus(SongMenu)].GetSelectedSong());
}
else if (Buttons[htButtons(ButtonOptionsPlaylist)].Selected)
{
OpenAndAddPlaylistAction();
}
else if (Buttons[htButtons(ButtonOptionsRandom)].Selected)
{
if (CSongs.Category != -1)
{
SongMenus[htSongMenus(SongMenu)].SetSelectedSong(CSongs.GetRandomSong());
}
}
else if (Buttons[htButtons(ButtonOptionsSingAll)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
StartRandomAllSongs();
}
else if (Buttons[htButtons(ButtonOptionsSingAllVisible)].Selected)
{
ToggleSongOptions(ESongOptionsView.None);
StartRandomVisibleSongs();
}
else if (Buttons[htButtons(ButtonOptionsOpenPlaylist)].Selected)
{
OpenPlaylistAction();
}
}
if (MouseEvent.RB)
{
ToggleSongOptions(ESongOptionsView.None);
}
}
return true;
@@ -177,11 +394,20 @@ namespace Vocaluxe.Screens
base.OnShow();
CGame.EnterNormalGame();
SongMenus[htSongMenus(SongMenu)].OnShow();
SongMenus[htSongMenus(SongMenu)].SetActive(!_PlaylistActive);
Playlists[htPlaylists(Playlist)].Init();
if (Playlists[htPlaylists(Playlist)].ActivePlaylistID != -1)
Playlists[htPlaylists(Playlist)].LoadPlaylist(Playlists[htPlaylists(Playlist)].ActivePlaylistID);
UpdatePlaylistNames();
}
public override bool UpdateGame()
{
SongMenus[htSongMenus(SongMenu)].Update();
if (SongMenus[htSongMenus(SongMenu)].IsSmallView())
CheckPlaylist();
Texts[htTexts(TextCategory)].Text = CSongs.GetActualCategoryName();
if (CSongs.Category > -1 || CConfig.Tabs == EOffOn.TR_CONFIG_OFF)
@@ -223,7 +449,6 @@ namespace Vocaluxe.Screens
public override bool Draw()
{
base.Draw();
return true;
}
@@ -238,13 +463,40 @@ namespace Vocaluxe.Screens
{
if ((CSongs.Category >= 0) && (SongNr >= 0))
{
EGameMode gm;
if (_AvailableGameModes.Count >= SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Selection)
{
gm = _AvailableGameModes[SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Selection];
}
else
{
if (CSongs.VisibleSongs[SongNr].IsDuet)
gm = GameModes.EGameMode.TR_GAMEMODE_DUET;
else
gm = GameModes.EGameMode.TR_GAMEMODE_NORMAL;
}
CGame.Reset();
CGame.ClearSongs();
EGameMode gm = EGameMode.Normal;
if (CSongs.VisibleSongs[SongNr].IsDuet)
gm = EGameMode.Duet;
CGame.AddVisibleSong(SongNr, gm);
CGraphics.FadeTo(EScreens.ScreenNames);
}
}
private void StartMedleySong(int SongNr)
{
if ((CSongs.Category >= 0) && (SongNr >= 0))
{
EGameMode gm;
if (CSongs.VisibleSongs[SongNr].Medley.Source != EMedleySource.None)
gm = GameModes.EGameMode.TR_GAMEMODE_MEDLEY;
else
return;
CGame.Reset();
CGame.ClearSongs();
CGame.AddVisibleSong(SongNr, gm);
CGraphics.FadeTo(EScreens.ScreenNames);
@@ -255,7 +507,7 @@ namespace Vocaluxe.Screens
{
CGame.Reset();
CGame.ClearSongs();
List<int> IDs = new List<int>();
for (int i = 0; i < CSongs.AllSongs.Length; i++)
{
@@ -266,9 +518,9 @@ namespace Vocaluxe.Screens
{
int SongNr = IDs[CGame.Rand.Next(IDs.Count)];
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);
IDs.Remove(SongNr);
@@ -282,7 +534,7 @@ namespace Vocaluxe.Screens
{
CGame.Reset();
CGame.ClearSongs();
List<int> IDs = new List<int>();
for (int i = 0; i < CSongs.VisibleSongs.Length; i++)
{
@@ -293,9 +545,9 @@ namespace Vocaluxe.Screens
{
int SongNr = IDs[CGame.Rand.Next(IDs.Count)];
EGameMode gm = EGameMode.Normal;
if (CSongs.VisibleSongs[SongNr].IsDuet)
gm = EGameMode.Duet;
EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL;
if (CSongs.AllSongs[SongNr].IsDuet)
gm = EGameMode.TR_GAMEMODE_DUET;
CGame.AddSong(SongNr, gm);
@@ -354,5 +606,221 @@ namespace Vocaluxe.Screens
SongMenus[htSongMenus(SongMenu)].OnShow();
}
private void ToggleSongOptions(ESongOptionsView view)
{
_SongOptionsActive = !_SongOptionsActive;
if (_SongOptionsActive)
{
if (view == ESongOptionsView.Song)
{
EGameMode LastMode = EGameMode.TR_GAMEMODE_NORMAL;
if (_AvailableGameModes.Count > 0)
LastMode = _AvailableGameModes[SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Selection];
SetInteractionToButton(Buttons[htButtons(ButtonOptionsSing)]);
_AvailableGameModes.Clear();
SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Clear();
if (!CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].IsDuet)
{
SelectSlides[htSelectSlides(SelectSlideOptionsMode)].AddValue(Enum.GetName(typeof(GameModes.EGameMode), GameModes.EGameMode.TR_GAMEMODE_NORMAL));
_AvailableGameModes.Add(GameModes.EGameMode.TR_GAMEMODE_NORMAL);
SelectSlides[htSelectSlides(SelectSlideOptionsMode)].AddValue(Enum.GetName(typeof(GameModes.EGameMode), GameModes.EGameMode.TR_GAMEMODE_SHORTSONG));
_AvailableGameModes.Add(GameModes.EGameMode.TR_GAMEMODE_SHORTSONG);
}
if (CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].IsDuet)
{
SelectSlides[htSelectSlides(SelectSlideOptionsMode)].AddValue(Enum.GetName(typeof(GameModes.EGameMode), GameModes.EGameMode.TR_GAMEMODE_DUET));
_AvailableGameModes.Add(GameModes.EGameMode.TR_GAMEMODE_DUET);
}
if (CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].Medley.Source != EMedleySource.None)
{
SelectSlides[htSelectSlides(SelectSlideOptionsMode)].AddValue(Enum.GetName(typeof(GameModes.EGameMode), GameModes.EGameMode.TR_GAMEMODE_MEDLEY));
_AvailableGameModes.Add(GameModes.EGameMode.TR_GAMEMODE_MEDLEY);
}
//Set SelectSlide-Selection to last selected game-mode if possible
for (int i = 0; i < _AvailableGameModes.Count; i++)
{
if (_AvailableGameModes[i] == LastMode)
SelectSlides[htSelectSlides(SelectSlideOptionsMode)].SetSelectionByValueIndex(i);
}
SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Visible = true;
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Visible = true;
Buttons[htButtons(ButtonOptionsSing)].Visible = true;
Buttons[htButtons(ButtonOptionsPlaylist)].Visible = true;
}
else if (view == ESongOptionsView.General)
{
Buttons[htButtons(ButtonOptionsRandom)].Visible = CSongs.Category != -1;
Buttons[htButtons(ButtonOptionsSingAll)].Visible = true;
Buttons[htButtons(ButtonOptionsSingAllVisible)].Visible = CSongs.Category != -1;
if (SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].NumValues > 0)
{
Buttons[htButtons(ButtonOptionsOpenPlaylist)].Visible = true;
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].Visible = true;
SetInteractionToButton(Buttons[htButtons(ButtonOptionsOpenPlaylist)]);
}
else
{
Buttons[htButtons(ButtonOptionsOpenPlaylist)].Visible = false;
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].Visible = false;
if (Buttons[htButtons(ButtonOptionsRandom)].Visible)
SetInteractionToButton(Buttons[htButtons(ButtonOptionsRandom)]);
else
SetInteractionToButton(Buttons[htButtons(ButtonOptionsSingAll)]);
}
}
Buttons[htButtons(ButtonOptionsClose)].Visible = true;
Texts[htTexts(TextOptionsTitle)].Visible = true;
Statics[htStatics(StaticOptionsBG)].Visible = true;
Buttons[htButtons(ButtonOpenOptions)].Visible = false;
}
else
{
SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Visible = false;
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Visible = false;
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].Visible = false;
Buttons[htButtons(ButtonOptionsClose)].Visible = false;
Buttons[htButtons(ButtonOptionsSing)].Visible = false;
Buttons[htButtons(ButtonOptionsPlaylist)].Visible = false;
Buttons[htButtons(ButtonOptionsRandom)].Visible = false;
Buttons[htButtons(ButtonOptionsSingAll)].Visible = false;
Buttons[htButtons(ButtonOptionsSingAllVisible)].Visible = false;
Buttons[htButtons(ButtonOptionsOpenPlaylist)].Visible = false;
Buttons[htButtons(ButtonOpenOptions)].Visible = true;
Texts[htTexts(TextOptionsTitle)].Visible = false;
Statics[htStatics(StaticOptionsBG)].Visible = false;
}
}
public void CheckPlaylist()
{
if (Playlists[htPlaylists(Playlist)].ActivePlaylistID == -1)
ClosePlaylist();
}
private void OpenPlaylist(int PlaylistID)
{
if (CPlaylists.Playlists.Length > PlaylistID && PlaylistID > -1)
{
Playlists[htPlaylists(Playlist)].LoadPlaylist(PlaylistID);
SongMenus[htSongMenus(SongMenu)].SetSmallView(true);
Playlists[htPlaylists(Playlist)].Visible = true;
}
}
private void ClosePlaylist()
{
SongMenus[htSongMenus(SongMenu)].SetSmallView(false);
_PlaylistActive = false;
Playlists[htPlaylists(Playlist)].Selected = _PlaylistActive;
SongMenus[htSongMenus(SongMenu)].SetActive(!_PlaylistActive);
}
private void UpdatePlaylistNames()
{
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Clear();
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].AddValue("TR_SCREENSONG_NEWPLAYLIST");
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].AddValues(CPlaylists.PlaylistNames);
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].Clear();
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].AddValues(CPlaylists.PlaylistNames);
}
private void OpenPlaylistAction()
{
//Open a playlist
if (Playlists[htPlaylists(Playlist)].ActivePlaylistID != (SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].Selection))
{
Playlists[htPlaylists(Playlist)].ActivePlaylistID = SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].Selection;
SetSelectSlidePlaylistToCurrentPlaylist();
//Open playlist
OpenPlaylist(Playlists[htPlaylists(Playlist)].ActivePlaylistID);
Playlists[htPlaylists(Playlist)].ScrollToBottom();
}
ToggleSongOptions(ESongOptionsView.None);
}
private void OpenAndAddPlaylistAction()
{
//Open a playlist and add song
if (Playlists[htPlaylists(Playlist)].ActivePlaylistID != (SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1))
{
//Check selected game-mode
EGameMode gm;
if (_AvailableGameModes.Count >= SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Selection)
gm = _AvailableGameModes[SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Selection];
else
if (CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].IsDuet)
gm = GameModes.EGameMode.TR_GAMEMODE_DUET;
else
gm = GameModes.EGameMode.TR_GAMEMODE_NORMAL;
//Check if Playlist really exists
if (SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1 < 0)
Playlists[htPlaylists(Playlist)].ActivePlaylistID = CPlaylists.NewPlaylist();
else
Playlists[htPlaylists(Playlist)].ActivePlaylistID = SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1;
//Add song to playlist
CPlaylists.Playlists[Playlists[htPlaylists(Playlist)].ActivePlaylistID].AddSong(CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].ID, gm);
//Open playlist
OpenPlaylist(Playlists[htPlaylists(Playlist)].ActivePlaylistID);
SetSelectSlidePlaylistToCurrentPlaylist();
}
//Create a new playlist and add song
else if ((SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1) == -1)
{
//Check selected game-mode
EGameMode gm;
if (_AvailableGameModes.Count >= SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Selection)
gm = _AvailableGameModes[SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Selection];
else
if (CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].IsDuet)
gm = GameModes.EGameMode.TR_GAMEMODE_DUET;
else
gm = GameModes.EGameMode.TR_GAMEMODE_NORMAL;
//Create new playlist
Playlists[htPlaylists(Playlist)].ActivePlaylistID = CPlaylists.NewPlaylist();
//Add song to playlist
CPlaylists.Playlists[Playlists[htPlaylists(Playlist)].ActivePlaylistID].AddSong(CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].ID, gm);
//Open playlist
OpenPlaylist(Playlists[htPlaylists(Playlist)].ActivePlaylistID);
//Add new playlist to select-slide
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].AddValue(CPlaylists.Playlists[Playlists[htPlaylists(Playlist)].ActivePlaylistID].PlaylistName);
SetSelectSlidePlaylistToCurrentPlaylist();
}
//Add song to loaded playlist
else
{
//Check selected game-mode
EGameMode gm;
if (_AvailableGameModes.Count >= SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Selection)
gm = _AvailableGameModes[SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Selection];
else
if (CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].IsDuet)
gm = GameModes.EGameMode.TR_GAMEMODE_DUET;
else
gm = GameModes.EGameMode.TR_GAMEMODE_NORMAL;
CPlaylists.Playlists[Playlists[htPlaylists(Playlist)].ActivePlaylistID].AddSong(CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].ID, gm);
Playlists[htPlaylists(Playlist)].UpdatePlaylist();
Playlists[htPlaylists(Playlist)].ScrollToBottom();
}
ToggleSongOptions(ESongOptionsView.Song);
}
private void SetSelectSlidePlaylistToCurrentPlaylist()
{
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection = Playlists[htPlaylists(Playlist)].ActivePlaylistID + 1;
}
}
}
+4
View File
@@ -169,6 +169,7 @@
<Compile Include="Base\CGame.cs" />
<Compile Include="Base\CLanguage.cs" />
<Compile Include="Base\CLog.cs" />
<Compile Include="Base\CPlaylists.cs" />
<Compile Include="Base\CProfiles.cs" />
<Compile Include="Base\CUtility.cs" />
<Compile Include="Base\CSettings.cs" />
@@ -188,6 +189,7 @@
<Compile Include="Lib\Draw\COpenGL.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Lib\Playlist\CPlaylistFile.cs" />
<Compile Include="Lib\Song\CNotes.cs" />
<Compile Include="Lib\Song\CSong.cs" />
<Compile Include="Lib\Sound\CDirectSoundRecord.cs" />
@@ -213,6 +215,8 @@
<Compile Include="Menu\CLyric.cs" />
<Compile Include="Menu\CMenu.cs" />
<Compile Include="Menu\CInteraction.cs" />
<Compile Include="Menu\CObjectInteractions.cs" />
<Compile Include="Menu\CPlaylist.cs" />
<Compile Include="Menu\CSelectSlide.cs" />
<Compile Include="Menu\CStatic.cs" />
<Compile Include="Menu\CText.cs" />