diff --git a/Output/Languages/en.xml b/Output/Languages/en.xml index 6114e1f3..d40203e7 100644 --- a/Output/Languages/en.xml +++ b/Output/Languages/en.xml @@ -265,6 +265,8 @@ Points Difficulty Overall score + Golden notes + Line bonus Highscore Profiles Player name diff --git a/Output/Themes/Changelog/Changelog_ScreenScore.txt b/Output/Themes/Changelog/Changelog_ScreenScore.txt index d34205f0..4cefb9d5 100644 --- a/Output/Themes/Changelog/Changelog_ScreenScore.txt +++ b/Output/Themes/Changelog/Changelog_ScreenScore.txt @@ -1,5 +1,15 @@ ScreenScore ++++++++++ +Version 6: +Changed layout to one row per player, sorted by player number (two columns from 4 players) +Added (new skins ScoreTile and ScoreTileSmall), , (points bar split into notes, golden notes and line bonus) +Added , , , +++++++++++ +Version 5: +Added , , (round arrows are only shown with more than one round and can be clicked) +Changed of to the player colors +Removed +++++++++++ Version 4: Removed , , Added diff --git a/Output/Themes/Vocaluxe 2024/01_Standard.xml b/Output/Themes/Vocaluxe 2024/01_Standard.xml index 8b40b698..7a8124ea 100644 --- a/Output/Themes/Vocaluxe 2024/01_Standard.xml +++ b/Output/Themes/Vocaluxe 2024/01_Standard.xml @@ -336,6 +336,8 @@ SongMenu.png ButtonTile.png + ScoreTile.png + ScoreTileSmall.png CoverTile.png PlayerTile.png CoverTextBackground.png diff --git a/Output/Themes/Vocaluxe 2024/02.xml b/Output/Themes/Vocaluxe 2024/02.xml index 223f6086..fda8eb94 100644 --- a/Output/Themes/Vocaluxe 2024/02.xml +++ b/Output/Themes/Vocaluxe 2024/02.xml @@ -336,6 +336,8 @@ SongMenu.png ButtonTile.png + ScoreTile.png + ScoreTileSmall.png CoverTile.png PlayerTile.png CoverTextBackground.png diff --git a/Output/Themes/Vocaluxe 2024/03.xml b/Output/Themes/Vocaluxe 2024/03.xml index b2b3066d..a687f190 100644 --- a/Output/Themes/Vocaluxe 2024/03.xml +++ b/Output/Themes/Vocaluxe 2024/03.xml @@ -336,6 +336,8 @@ SongMenu.png ButtonTile.png + ScoreTile.png + ScoreTileSmall.png CoverTile.png PlayerTile.png CoverTextBackground.png diff --git a/Output/Themes/Vocaluxe 2024/04.xml b/Output/Themes/Vocaluxe 2024/04.xml index ea42f9fc..94de6ff7 100644 --- a/Output/Themes/Vocaluxe 2024/04.xml +++ b/Output/Themes/Vocaluxe 2024/04.xml @@ -336,6 +336,8 @@ SongMenu.png ButtonTile.png + ScoreTile.png + ScoreTileSmall.png CoverTile.png PlayerTile.png CoverTextBackground.png diff --git a/Output/Themes/Vocaluxe 2024/05.xml b/Output/Themes/Vocaluxe 2024/05.xml index 72ef50e4..b272f2bc 100644 --- a/Output/Themes/Vocaluxe 2024/05.xml +++ b/Output/Themes/Vocaluxe 2024/05.xml @@ -336,6 +336,8 @@ SongMenu.png ButtonTile.png + ScoreTile.png + ScoreTileSmall.png CoverTile.png PlayerTile.png CoverTextBackground.png diff --git a/Output/Themes/Vocaluxe 2024/06.xml b/Output/Themes/Vocaluxe 2024/06.xml index 48c865be..8cbb05bb 100644 --- a/Output/Themes/Vocaluxe 2024/06.xml +++ b/Output/Themes/Vocaluxe 2024/06.xml @@ -336,6 +336,8 @@ SongMenu.png ButtonTile.png + ScoreTile.png + ScoreTileSmall.png CoverTile.png PlayerTile.png CoverTextBackground.png diff --git a/Output/Themes/Vocaluxe 2024/ScoreTile.png b/Output/Themes/Vocaluxe 2024/ScoreTile.png new file mode 100644 index 00000000..d0e9cb12 Binary files /dev/null and b/Output/Themes/Vocaluxe 2024/ScoreTile.png differ diff --git a/Output/Themes/Vocaluxe 2024/ScoreTileSmall.png b/Output/Themes/Vocaluxe 2024/ScoreTileSmall.png new file mode 100644 index 00000000..d58f654f Binary files /dev/null and b/Output/Themes/Vocaluxe 2024/ScoreTileSmall.png differ diff --git a/Output/Themes/Vocaluxe 2024/Screens/ScreenScore.xml b/Output/Themes/Vocaluxe 2024/Screens/ScreenScore.xml index 2db3e2d2..8b9d4973 100644 --- a/Output/Themes/Vocaluxe 2024/Screens/ScreenScore.xml +++ b/Output/Themes/Vocaluxe 2024/Screens/ScreenScore.xml @@ -2,7 +2,7 @@ ScreenScore - 4 + 6 @@ -25,234 +25,520 @@ 0 + + + + + 0 + 63.75 + 60 + 60 + -0.1 + + + + SelectSlideArrowLeft + + + 30 + 71.25 + 45 + 45 + -0.1 + + + + SelectSlideArrowRight + + + 1845 + 71.25 + 45 + 45 + -0.1 + + + + ScoreTile + + + 210 + 472.5 + 1500 + 190 + 0.8 + + - 562.5 - 405 - 195 - 195 + 232.8 + 495.3 + 144.4 + 144.4 0 + + ScoreTile + + + 210 + 370 + 1500 + 190 + 0.8 + + - 562.5 - 300 - 195 - 195 + 232.8 + 392.8 + 144.4 + 144.4 0 + + ScoreTile + + + 210 + 575 + 1500 + 190 + 0.8 + + - 562.5 - 667.5 - 195 - 195 + 232.8 + 597.8 + 144.4 + 144.4 0 + + ScoreTile + + + 210 + 267.5 + 1500 + 190 + 0.8 + + - 562.5 - 196.5 - 195 - 195 + 232.8 + 290.3 + 144.4 + 144.4 0 + + ScoreTile + + + 210 + 472.5 + 1500 + 190 + 0.8 + + - 562.5 - 483 - 195 - 195 + 232.8 + 495.3 + 144.4 + 144.4 0 + + ScoreTile + + + 210 + 677.5 + 1500 + 190 + 0.8 + + - 562.5 - 769.5 - 195 - 195 + 232.8 + 700.3 + 144.4 + 144.4 0 + + ScoreTileSmall + + + 90 + 370 + 840 + 190 + 0.8 + + - 97.5 - 300 - 195 - 195 + 112.8 + 392.8 + 144.4 + 144.4 0 + + ScoreTileSmall + + + 90 + 575 + 840 + 190 + 0.8 + + - 97.5 - 667.5 - 195 - 195 + 112.8 + 597.8 + 144.4 + 144.4 0 + + ScoreTileSmall + + + 990 + 370 + 840 + 190 + 0.8 + + - 1012.5 - 300 - 195 - 195 + 1012.8 + 392.8 + 144.4 + 144.4 0 + + ScoreTileSmall + + + 990 + 575 + 840 + 190 + 0.8 + + - 1012.5 - 667.5 - 195 - 195 + 1012.8 + 597.8 + 144.4 + 144.4 0 + + ScoreTileSmall + + + 90 + 267.5 + 840 + 190 + 0.8 + + - 97.5 - 196.5 - 195 - 195 + 112.8 + 290.3 + 144.4 + 144.4 0 + + ScoreTileSmall + + + 90 + 472.5 + 840 + 190 + 0.8 + + - 97.5 - 483 - 195 - 195 + 112.8 + 495.3 + 144.4 + 144.4 0 + + ScoreTileSmall + + + 90 + 677.5 + 840 + 190 + 0.8 + + - 97.5 - 769.5 - 195 - 195 + 112.8 + 700.3 + 144.4 + 144.4 0 + + ScoreTileSmall + + + 990 + 267.5 + 840 + 190 + 0.8 + + - 1012.5 - 196.5 - 195 - 195 + 1012.8 + 290.3 + 144.4 + 144.4 0 + + ScoreTileSmall + + + 990 + 472.5 + 840 + 190 + 0.8 + + - 1012.5 - 483 - 195 - 195 + 1012.8 + 495.3 + 144.4 + 144.4 0 + + ScoreTileSmall + + + 90 + 267.5 + 840 + 190 + 0.8 + + - 97.5 - 196.5 - 195 - 195 + 112.8 + 290.3 + 144.4 + 144.4 0 + + ScoreTileSmall + + + 90 + 472.5 + 840 + 190 + 0.8 + + - 97.5 - 483 - 195 - 195 + 112.8 + 495.3 + 144.4 + 144.4 0 + + ScoreTileSmall + + + 90 + 677.5 + 840 + 190 + 0.8 + + - 97.5 - 769.5 - 195 - 195 + 112.8 + 700.3 + 144.4 + 144.4 0 + + ScoreTileSmall + + + 990 + 267.5 + 840 + 190 + 0.8 + + - 1012.5 - 196.5 - 195 - 195 + 1012.8 + 290.3 + 144.4 + 144.4 0 + + ScoreTileSmall + + + 990 + 472.5 + 840 + 190 + 0.8 + + - 1012.5 - 483 - 195 - 195 + 1012.8 + 495.3 + 144.4 + 144.4 0 + + ScoreTileSmall + + + 990 + 677.5 + 840 + 190 + 0.8 + + - 1012.5 - 769.5 - 195 - 195 + 1012.8 + 700.3 + 144.4 + 144.4 + 0 + + + + + + + 700 + 1012 + 24 + 24 + 0 + + + + + + + 1020 + 1012 + 24 + 24 0 @@ -287,1194 +573,1213 @@ - 780 - 412.5 + 407.2 + 511.45 0 - 60 - 585 - + 49.4 + 400 + Left - Bottom - - Outline - - - - 1365 - 555 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 780 - 472.5 + 407.2 + 560.85 0 - 40.5 - 255 + 34.2 + 400 Left - Bottom + Center Outline - 780 - 555 + 407.2 + 595.05 0 - 40.5 - 585 - + 28.5 + 400 + Left - Bottom + Center + + Outline + + + + 1680 + 537.1 + 0 + 60.8 + 280 + + + Right + Center Outline - 780 - 307.5 + 407.2 + 408.95 0 - 60 - 585 - + 49.4 + 400 + Left - Bottom - - Outline - - - - 1365 - 450 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 780 - 367.5 + 407.2 + 458.35 0 - 40.5 - 255 + 34.2 + 400 Left - Bottom + Center Outline - 780 - 450 + 407.2 + 492.55 0 - 40.5 - 585 - + 28.5 + 400 + Left - Bottom + Center + + Outline + + + + 1680 + 434.6 + 0 + 60.8 + 280 + + + Right + Center Outline - 780 - 675 + 407.2 + 613.95 0 - 60 - 585 - + 49.4 + 400 + Left - Bottom - - Outline - - - - 1365 - 817.5 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 780 - 735 + 407.2 + 663.35 0 - 40.5 - 255 + 34.2 + 400 Left - Bottom + Center Outline - 780 - 817.5 + 407.2 + 697.55 0 - 40.5 - 585 - + 28.5 + 400 + Left - Bottom + Center + + Outline + + + + 1680 + 639.6 + 0 + 60.8 + 280 + + + Right + Center Outline - 780 - 204 + 407.2 + 306.45 0 - 60 - 585 - + 49.4 + 400 + Left - Bottom - - Outline - - - - 1365 - 346.5 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 780 - 264 + 407.2 + 355.85 0 - 40.5 - 255 + 34.2 + 400 Left - Bottom + Center Outline - 780 - 346.5 + 407.2 + 390.05 0 - 40.5 - 585 - + 28.5 + 400 + Left - Bottom + Center + + Outline + + + + 1680 + 332.1 + 0 + 60.8 + 280 + + + Right + Center Outline - 780 - 490.5 + 407.2 + 511.45 0 - 60 - 585 - + 49.4 + 400 + Left - Bottom - - Outline - - - - 1365 - 633 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 780 - 550.5 + 407.2 + 560.85 0 - 40.5 - 255 + 34.2 + 400 Left - Bottom + Center Outline - 780 - 633 + 407.2 + 595.05 0 - 40.5 - 585 - + 28.5 + 400 + Left - Bottom + Center + + Outline + + + + 1680 + 537.1 + 0 + 60.8 + 280 + + + Right + Center Outline - 780 - 777 + 407.2 + 716.45 0 - 60 - 585 - + 49.4 + 400 + Left - Bottom - - Outline - - - - 1365 - 919.5 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 780 - 837 + 407.2 + 765.85 0 - 40.5 - 255 + 34.2 + 400 Left - Bottom + Center Outline - 780 - 919.5 + 407.2 + 800.05 0 - 40.5 - 585 - + 28.5 + 400 + Left - Bottom + Center + + Outline + + + + 1680 + 742.1 + 0 + 60.8 + 280 + + + Right + Center Outline - 315 - 307.5 + 282.2 + 387.1 0 - 60 - 585 - + 45.6 + 382.8 + Left - Bottom - - Outline - - - - 900 - 450 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 315 - 367.5 + 282.2 + 432.7 0 - 40.5 - 255 + 32.3 + 382.8 Left - Bottom + Center Outline - 315 - 450 + 282.2 + 465 0 - 40.5 - 585 - + 26.6 + 382.8 + Left - Bottom + Center + + Outline + + + + 905 + 387.1 + 0 + 57 + 220 + + + Right + Center Outline - 315 - 675 + 282.2 + 592.1 0 - 60 - 585 - + 45.6 + 382.8 + Left - Bottom - - Outline - - - - 900 - 817.5 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 315 - 735 + 282.2 + 637.7 0 - 40.5 - 255 + 32.3 + 382.8 Left - Bottom + Center Outline - 315 - 817.5 + 282.2 + 670 0 - 40.5 - 585 - + 26.6 + 382.8 + Left - Bottom + Center + + Outline + + + + 905 + 592.1 + 0 + 57 + 220 + + + Right + Center Outline - 1230 - 307.5 + 1182.2 + 387.1 0 - 60 - 585 - + 45.6 + 382.8 + Left - Bottom - - Outline - - - - 1815 - 450 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 1230 - 367.5 + 1182.2 + 432.7 0 - 40.5 - 255 + 32.3 + 382.8 Left - Bottom + Center Outline - 1230 - 450 + 1182.2 + 465 0 - 40.5 - 585 - + 26.6 + 382.8 + Left - Bottom + Center + + Outline + + + + 1805 + 387.1 + 0 + 57 + 220 + + + Right + Center Outline - 1230 - 675 + 1182.2 + 592.1 0 - 60 - 585 - + 45.6 + 382.8 + Left - Bottom - - Outline - - - - 1815 - 817.5 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 1230 - 735 + 1182.2 + 637.7 0 - 40.5 - 255 + 32.3 + 382.8 Left - Bottom + Center Outline - 1230 - 817.5 + 1182.2 + 670 0 - 40.5 - 585 - + 26.6 + 382.8 + Left - Bottom + Center + + Outline + + + + 1805 + 592.1 + 0 + 57 + 220 + + + Right + Center Outline - 315 - 204 + 282.2 + 284.6 0 - 60 - 585 - + 45.6 + 382.8 + Left - Bottom - - Outline - - - - 900 - 346.5 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 315 - 264 + 282.2 + 330.2 0 - 40.5 - 255 + 32.3 + 382.8 Left - Bottom + Center Outline - 315 - 346.5 + 282.2 + 362.5 0 - 40.5 - 585 - + 26.6 + 382.8 + Left - Bottom + Center + + Outline + + + + 905 + 284.6 + 0 + 57 + 220 + + + Right + Center Outline - 315 - 490.5 + 282.2 + 489.6 0 - 60 - 585 - + 45.6 + 382.8 + Left - Bottom - - Outline - - - - 900 - 633 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 315 - 550.5 + 282.2 + 535.2 0 - 40.5 - 255 + 32.3 + 382.8 Left - Bottom + Center Outline - 315 - 633 + 282.2 + 567.5 0 - 40.5 - 585 - + 26.6 + 382.8 + Left - Bottom + Center + + Outline + + + + 905 + 489.6 + 0 + 57 + 220 + + + Right + Center Outline - 315 - 777 + 282.2 + 694.6 0 - 60 - 585 - + 45.6 + 382.8 + Left - Bottom - - Outline - - - - 900 - 919.5 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 315 - 837 + 282.2 + 740.2 0 - 40.5 - 255 + 32.3 + 382.8 Left - Bottom + Center Outline - 315 - 919.5 + 282.2 + 772.5 0 - 40.5 - 585 - + 26.6 + 382.8 + Left - Bottom + Center + + Outline + + + + 905 + 694.6 + 0 + 57 + 220 + + + Right + Center Outline - 1230 - 204 + 1182.2 + 284.6 0 - 60 - 585 - + 45.6 + 382.8 + Left - Bottom - - Outline - - - - 1815 - 346.5 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 1230 - 264 + 1182.2 + 330.2 0 - 40.5 - 255 + 32.3 + 382.8 Left - Bottom + Center Outline - 1230 - 346.5 + 1182.2 + 362.5 0 - 40.5 - 585 - + 26.6 + 382.8 + Left - Bottom + Center + + Outline + + + + 1805 + 284.6 + 0 + 57 + 220 + + + Right + Center Outline - 1230 - 490.5 + 1182.2 + 489.6 0 - 60 - 585 - + 45.6 + 382.8 + Left - Bottom - - Outline - - - - 1815 - 633 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 1230 - 550.5 + 1182.2 + 535.2 0 - 40.5 - 255 + 32.3 + 382.8 Left - Bottom + Center Outline - 1230 - 633 + 1182.2 + 567.5 0 - 40.5 - 585 - + 26.6 + 382.8 + Left - Bottom + Center + + Outline + + + + 1805 + 489.6 + 0 + 57 + 220 + + + Right + Center Outline - 315 - 204 + 282.2 + 284.6 0 - 60 - 585 - + 45.6 + 382.8 + Left - Bottom - - Outline - - - - 900 - 346.5 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 315 - 264 + 282.2 + 330.2 0 - 40.5 - 255 + 32.3 + 382.8 Left - Bottom + Center Outline - 315 - 346.5 + 282.2 + 362.5 0 - 40.5 - 585 - + 26.6 + 382.8 + Left - Bottom + Center + + Outline + + + + 905 + 284.6 + 0 + 57 + 220 + + + Right + Center Outline - 315 - 490.5 + 282.2 + 489.6 0 - 60 - 585 - + 45.6 + 382.8 + Left - Bottom - - Outline - - - - 900 - 633 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 315 - 550.5 + 282.2 + 535.2 0 - 40.5 - 255 + 32.3 + 382.8 Left - Bottom + Center Outline - 315 - 633 + 282.2 + 567.5 0 - 40.5 - 585 - + 26.6 + 382.8 + Left - Bottom + Center + + Outline + + + + 905 + 489.6 + 0 + 57 + 220 + + + Right + Center Outline - 315 - 777 + 282.2 + 694.6 0 - 60 - 585 - + 45.6 + 382.8 + Left - Bottom - - Outline - - - - 900 - 919.5 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 315 - 837 + 282.2 + 740.2 0 - 40.5 - 255 + 32.3 + 382.8 Left - Bottom + Center Outline - 315 - 919.5 + 282.2 + 772.5 0 - 40.5 - 585 - + 26.6 + 382.8 + Left - Bottom + Center + + Outline + + + + 905 + 694.6 + 0 + 57 + 220 + + + Right + Center Outline - 1230 - 204 + 1182.2 + 284.6 0 - 60 - 585 - + 45.6 + 382.8 + Left - Bottom - - Outline - - - - 1815 - 346.5 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 1230 - 264 + 1182.2 + 330.2 0 - 40.5 - 255 + 32.3 + 382.8 Left - Bottom + Center Outline - 1230 - 346.5 + 1182.2 + 362.5 0 - 40.5 - 585 - + 26.6 + 382.8 + Left - Bottom + Center + + Outline + + + + 1805 + 284.6 + 0 + 57 + 220 + + + Right + Center Outline - 1230 - 490.5 + 1182.2 + 489.6 0 - 60 - 585 - + 45.6 + 382.8 + Left - Bottom - - Outline - - - - 1815 - 633 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 1230 - 550.5 + 1182.2 + 535.2 0 - 40.5 - 255 + 32.3 + 382.8 Left - Bottom + Center Outline - 1230 - 633 + 1182.2 + 567.5 0 - 40.5 - 585 - + 26.6 + 382.8 + Left - Bottom + Center + + Outline + + + + 1805 + 489.6 + 0 + 57 + 220 + + + Right + Center Outline - 1230 - 777 + 1182.2 + 694.6 0 - 60 - 585 - + 45.6 + 382.8 + Left - Bottom - - Outline - - - - 1815 - 919.5 - 0 - 40.5 - 330 - - - Right - Bottom + Center Outline - 1230 - 837 + 1182.2 + 740.2 0 - 40.5 - 255 + 32.3 + 382.8 Left - Bottom + Center Outline - 1230 - 919.5 + 1182.2 + 772.5 0 - 40.5 - 585 - + 26.6 + 382.8 + Left - Bottom + Center Outline + + 1805 + 694.6 + 0 + 57 + 220 + + + Right + Center + + Outline + + + + 736 + 1006 + 0 + 36 + 200 + + + Left + Center + + Outline + TR_SCREENSCORE_GOLDENNOTES + + + 1056 + 1006 + 0 + 36 + 200 + + + Left + Center + + Outline + TR_SCREENSCORE_LINEBONUS + - - - - - - - - - - 7 + 1 Int @@ -1485,14 +1790,10 @@ 1 Int - - Vertical - String - - PointsBarBG + PointsBarBG @@ -1503,19 +1804,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 780 - 540 - 585 - 15 + 827.2 + 554.2 + 542.8 + 26.6 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 827.2 + 554.2 + 542.8 + 26.6 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 827.2 + 554.2 + 542.8 + 26.6 + -0.02 + + PointsBarBG @@ -1528,21 +1879,71 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 780 - 435 - 585 - 15 + 827.2 + 451.7 + 542.8 + 26.6 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 827.2 + 451.7 + 542.8 + 26.6 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 827.2 + 451.7 + 542.8 + 26.6 + -0.02 + + - PointsBarBG + PointsBarBG @@ -1553,19 +1954,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 780 - 802.5 - 585 - 15 + 827.2 + 656.7 + 542.8 + 26.6 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 827.2 + 656.7 + 542.8 + 26.6 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 827.2 + 656.7 + 542.8 + 26.6 + -0.02 + + PointsBarBG @@ -1578,19 +2029,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 780 - 331.5 - 585 - 15 + 827.2 + 349.2 + 542.8 + 26.6 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 827.2 + 349.2 + 542.8 + 26.6 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 827.2 + 349.2 + 542.8 + 26.6 + -0.02 + + PointsBarBG @@ -1603,19 +2104,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 780 - 618 - 585 - 15 + 827.2 + 554.2 + 542.8 + 26.6 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 827.2 + 554.2 + 542.8 + 26.6 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 827.2 + 554.2 + 542.8 + 26.6 + -0.02 + + PointsBarBG @@ -1628,19 +2179,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 780 - 904.5 - 585 - 15 + 827.2 + 759.2 + 542.8 + 26.6 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 827.2 + 759.2 + 542.8 + 26.6 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 827.2 + 759.2 + 542.8 + 26.6 + -0.02 + + PointsBarBG @@ -1653,19 +2254,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 315 - 435 - 585 - 15 + 282.2 + 514.4 + 622.8 + 22.8 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 282.2 + 514.4 + 622.8 + 22.8 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 282.2 + 514.4 + 622.8 + 22.8 + -0.02 + + PointsBarBG @@ -1678,19 +2329,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 315 - 802.5 - 585 - 15 + 282.2 + 719.4 + 622.8 + 22.8 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 282.2 + 719.4 + 622.8 + 22.8 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 282.2 + 719.4 + 622.8 + 22.8 + -0.02 + + PointsBarBG @@ -1703,19 +2404,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 1230 - 435 - 585 - 15 + 1182.2 + 514.4 + 622.8 + 22.8 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 1182.2 + 514.4 + 622.8 + 22.8 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 1182.2 + 514.4 + 622.8 + 22.8 + -0.02 + + PointsBarBG @@ -1728,19 +2479,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 1230 - 802.5 - 585 - 15 + 1182.2 + 719.4 + 622.8 + 22.8 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 1182.2 + 719.4 + 622.8 + 22.8 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 1182.2 + 719.4 + 622.8 + 22.8 + -0.02 + + PointsBarBG @@ -1753,19 +2554,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 315 - 331.5 - 585 - 15 + 282.2 + 411.9 + 622.8 + 22.8 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 282.2 + 411.9 + 622.8 + 22.8 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 282.2 + 411.9 + 622.8 + 22.8 + -0.02 + + PointsBarBG @@ -1778,19 +2629,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 315 - 618 - 585 - 15 + 282.2 + 616.9 + 622.8 + 22.8 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 282.2 + 616.9 + 622.8 + 22.8 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 282.2 + 616.9 + 622.8 + 22.8 + -0.02 + + PointsBarBG @@ -1803,19 +2704,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 315 - 904.5 - 585 - 15 + 282.2 + 821.9 + 622.8 + 22.8 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 282.2 + 821.9 + 622.8 + 22.8 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 282.2 + 821.9 + 622.8 + 22.8 + -0.02 + + PointsBarBG @@ -1828,19 +2779,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 1230 - 331.5 - 585 - 15 + 1182.2 + 411.9 + 622.8 + 22.8 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 1182.2 + 411.9 + 622.8 + 22.8 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 1182.2 + 411.9 + 622.8 + 22.8 + -0.02 + + PointsBarBG @@ -1853,19 +2854,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 1230 - 618 - 585 - 15 + 1182.2 + 616.9 + 622.8 + 22.8 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 1182.2 + 616.9 + 622.8 + 22.8 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 1182.2 + 616.9 + 622.8 + 22.8 + -0.02 + + PointsBarBG @@ -1878,19 +2929,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 315 - 331.5 - 585 - 15 + 282.2 + 411.9 + 622.8 + 22.8 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 282.2 + 411.9 + 622.8 + 22.8 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 282.2 + 411.9 + 622.8 + 22.8 + -0.02 + + PointsBarBG @@ -1903,19 +3004,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 315 - 618 - 585 - 15 + 282.2 + 616.9 + 622.8 + 22.8 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 282.2 + 616.9 + 622.8 + 22.8 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 282.2 + 616.9 + 622.8 + 22.8 + -0.02 + + PointsBarBG @@ -1928,19 +3079,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 315 - 904.5 - 585 - 15 + 282.2 + 821.9 + 622.8 + 22.8 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 282.2 + 821.9 + 622.8 + 22.8 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 282.2 + 821.9 + 622.8 + 22.8 + -0.02 + + PointsBarBG @@ -1953,19 +3154,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 1230 - 331.5 - 585 - 15 + 1182.2 + 411.9 + 622.8 + 22.8 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 1182.2 + 411.9 + 622.8 + 22.8 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 1182.2 + 411.9 + 622.8 + 22.8 + -0.02 + + PointsBarBG @@ -1978,19 +3229,69 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 1230 - 618 - 585 - 15 + 1182.2 + 616.9 + 622.8 + 22.8 0 + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 1182.2 + 616.9 + 622.8 + 22.8 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 1182.2 + 616.9 + 622.8 + 22.8 + -0.02 + + PointsBarBG @@ -2003,18 +3304,68 @@ TR_CONFIG_ON TR_CONFIG_ON - - 0 - - + + 0 + + - 1230 - 904.5 - 585 - 15 + 1182.2 + 821.9 + 622.8 + 22.8 0 - + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 1182.2 + 821.9 + 622.8 + 22.8 + -0.01 + + + + + + + + + + + Right + TR_CONFIG_ON + TR_CONFIG_ON + + + 0 + + + + + 1182.2 + 821.9 + 622.8 + 22.8 + -0.02 + + diff --git a/Vocaluxe/Screens/CScreenScore.cs b/Vocaluxe/Screens/CScreenScore.cs index 03ca4b80..82b12ad8 100644 --- a/Vocaluxe/Screens/CScreenScore.cs +++ b/Vocaluxe/Screens/CScreenScore.cs @@ -34,11 +34,21 @@ namespace Vocaluxe.Screens // Version number for theme files. Increment it, if you've changed something on the theme files! protected override int _ScreenVersion { - get { return 4; } + get { return 6; } } private const string _TextSong = "TextSong"; + private const string _StaticCover = "StaticCover"; + private const string _StaticRoundLeft = "StaticRoundLeft"; + private const string _StaticRoundRight = "StaticRoundRight"; + private const string _StaticLegendGolden = "StaticLegendGolden"; + private const string _StaticLegendLineBonus = "StaticLegendLineBonus"; + private const string _TextLegendGolden = "TextLegendGolden"; + private const string _TextLegendLineBonus = "TextLegendLineBonus"; + + private const float _RevealDuration = 300f; + private const string _ScreenSettingShortScore = "ScreenSettingShortScore"; private const string _ScreenSettingShortRating = "ScreenSettingShortRating"; private const string _ScreenSettingShortDifficulty = "ScreenSettingShortDifficulty"; @@ -50,10 +60,26 @@ namespace Vocaluxe.Screens private string[,] _TextRatings; private string[,] _TextDifficulty; private string[,] _ProgressBarPoints; + private string[,] _ProgressBarGolden; + private string[,] _ProgressBarNotes; private string[,] _StaticAvatar; + private string[,] _StaticRow; private int _Round; private CPoints _Points; + private struct STextStyle + { + public float Height; + public float Y; + public SColorF Color; + } + + private readonly Dictionary _TextStyles = new Dictionary(); + private readonly Stopwatch _RevealTimer = new Stopwatch(); + private readonly Stopwatch _PulseTimer = new Stopwatch(); + private readonly bool[] _IsWinner = new bool[CSettings.MaxNumPlayer]; + private SColorF _WinnerColor; + public override EMusicType CurrentMusicType { get { return EMusicType.BackgroundPreview; } @@ -63,13 +89,13 @@ namespace Vocaluxe.Screens { base.Init(); - var texts = new List { _TextSong }; + var texts = new List { _TextSong, _TextLegendGolden, _TextLegendLineBonus }; _BuildTextStrings(ref texts); _ThemeTexts = texts.ToArray(); - var statics = new List(); + var statics = new List { _StaticCover, _StaticRoundLeft, _StaticRoundRight, _StaticLegendGolden, _StaticLegendLineBonus }; _BuildStaticStrings(ref statics); _ThemeStatics = statics.ToArray(); @@ -86,10 +112,32 @@ namespace Vocaluxe.Screens _SlideShowBG.Z--; } + public override void LoadTheme(string xmlPath) + { + base.LoadTheme(xmlPath); + + foreach (var avatar in _StaticAvatar.Cast().Where(name => name != null)) + { + _Statics[avatar].Aspect = EAspect.Crop; + } + + _TextStyles.Clear(); + foreach (var name in _TextNames.Cast().Concat(_TextScores.Cast()).Concat(_TextRatings.Cast()).Where(name => name != null)) + { + _TextStyles[name] = new STextStyle { Height = _Texts[name].Font.Height, Y = _Texts[name].Y, Color = _Texts[name].Color }; + } + + if (!CBase.Themes.GetColor("Top1Color", PartyModeId, out _WinnerColor)) + { + _WinnerColor = new SColorF(1f, 0.8f, 0f, 1f); + } + + _WinnerColor.A = 1f; + } + public override bool HandleInput(SKeyEvent keyEvent) { - if (keyEvent.KeyPressed) { } - else + if (!keyEvent.KeyPressed) { switch (keyEvent.Key) { @@ -123,7 +171,18 @@ namespace Vocaluxe.Screens if (mouseEvent.LB) { - _LeaveScreen(); + if (_IsMouseOverStatic(mouseEvent, _StaticRoundLeft)) + { + _ChangeRound(-1); + } + else if (_IsMouseOverStatic(mouseEvent, _StaticRoundRight)) + { + _ChangeRound(1); + } + else + { + _LeaveScreen(); + } } if (mouseEvent.RB) @@ -146,42 +205,88 @@ namespace Vocaluxe.Screens _SetVisibility(); _UpdateRatings(); _SlideShowBG.Visible = _UpdateBackground(); + } - for (var p = 0; p < CGame.NumPlayers; p++) - { - _Statics[_StaticAvatar[p, CGame.NumPlayers - 1]].Aspect = EAspect.Crop; - } + public override void OnClose() + { + base.OnClose(); + _StopScoreSounds(); } public override bool UpdateGame() { _UpdateProgressBarSound(); - - var players = new SPlayer[CGame.NumPlayers]; - if (_Round >= 0) - { - players = _Points.GetPlayer(_Round, CGame.NumPlayers); - } - else - { - for (var i = 0; i < CGame.NumRounds; i++) - { - var points = _Points.GetPlayer(i, CGame.NumPlayers); - for (var p = 0; p < players.Length; p++) - { - players[p].Points += points[p].Points; - } - } - - for (var p = 0; p < players.Length; p++) - { - players[p].Points = (int)(players[p].Points / CGame.NumRounds); - } - } + _UpdateRevealAnimation(); return true; } + private void _UpdateRevealAnimation() + { + if (!_RevealTimer.IsRunning) + { + if (_AreProgressBarsAnimating()) + { + return; + } + + _RevealTimer.Restart(); + _PulseTimer.Restart(); + } + + var progress = Math.Min(_RevealTimer.ElapsedMilliseconds / _RevealDuration, 1f); + var revealScale = 1.3f - 0.3f * (1f - (1f - progress) * (1f - progress)); + var pulseScale = 1f + 0.03f * (float)Math.Sin(_PulseTimer.ElapsedMilliseconds / 1000.0 * Math.PI * 1.4); + var numPlayer = CGame.NumPlayers - 1; + + for (var p = 0; p < CGame.NumPlayers; p++) + { + _ApplyTextStyle(_TextRatings[p, numPlayer], revealScale, progress, false); + if (_IsWinner[p]) + { + _ApplyTextStyle(_TextNames[p, numPlayer], pulseScale, 1f, false); + _ApplyTextStyle(_TextScores[p, numPlayer], pulseScale, 1f, true); + } + } + } + + private void _ResetRevealAnimation() + { + _RevealTimer.Reset(); + _PulseTimer.Reset(); + var numPlayer = CGame.NumPlayers - 1; + + for (var p = 0; p < CGame.NumPlayers; p++) + { + _ApplyTextStyle(_TextRatings[p, numPlayer], 1f, 0f, false); + _ApplyTextStyle(_TextNames[p, numPlayer], 1f, 1f, false); + _ApplyTextStyle(_TextScores[p, numPlayer], 1f, 1f, false); + } + } + + private void _ApplyTextStyle(string name, float scale, float alpha, bool winnerColor) + { + var style = _TextStyles[name]; + var text = _Texts[name]; + text.Color = winnerColor ? _WinnerColor : style.Color; + text.Font.Height = style.Height * scale; + text.Y = style.Y - style.Height * (scale - 1f) / 2f; + text.Alpha = alpha; + } + + private bool _AreProgressBarsAnimating() + { + return Enumerable.Range(0, CGame.NumPlayers) + .Select(p => _ProgressBars[_ProgressBarPoints[p, CGame.NumPlayers - 1]]) + .Any(progressBar => progressBar.Visible && progressBar.IsAnimating); + } + + private bool _IsMouseOverStatic(SMouseEvent mouseEvent, string staticName) + { + var element = _Statics[staticName]; + return element.Visible && CHelper.IsInBounds(element.Rect, mouseEvent); + } + private bool _IsKaraokeMode(int round) { if (round >= 0) @@ -275,6 +380,7 @@ namespace Vocaluxe.Screens private void _BuildStaticStrings(ref List statics) { _StaticAvatar = new string[CSettings.MaxNumPlayer, CSettings.MaxNumPlayer]; + _StaticRow = new string[CSettings.MaxNumPlayer, CSettings.MaxNumPlayer]; for (var numplayer = 0; numplayer < CSettings.MaxNumPlayer; numplayer++) { @@ -287,8 +393,10 @@ namespace Vocaluxe.Screens var target = "P" + (player + 1) + "N" + (numplayer + 1); _StaticAvatar[player, numplayer] = "StaticAvatar" + target; + _StaticRow[player, numplayer] = "StaticRow" + target; statics.Add(_StaticAvatar[player, numplayer]); + statics.Add(_StaticRow[player, numplayer]); } } } @@ -296,6 +404,8 @@ namespace Vocaluxe.Screens private void _BuildProgressBarString(ref List progressBars) { _ProgressBarPoints = new string[CSettings.MaxNumPlayer, CSettings.MaxNumPlayer]; + _ProgressBarGolden = new string[CSettings.MaxNumPlayer, CSettings.MaxNumPlayer]; + _ProgressBarNotes = new string[CSettings.MaxNumPlayer, CSettings.MaxNumPlayer]; for (var numplayer = 0; numplayer < CSettings.MaxNumPlayer; numplayer++) { @@ -308,8 +418,12 @@ namespace Vocaluxe.Screens var target = "P" + (player + 1) + "N" + (numplayer + 1); _ProgressBarPoints[player, numplayer] = "ProgressBarPoints" + target; + _ProgressBarGolden[player, numplayer] = "ProgressBarGolden" + target; + _ProgressBarNotes[player, numplayer] = "ProgressBarNotes" + target; progressBars.Add(_ProgressBarPoints[player, numplayer]); + progressBars.Add(_ProgressBarGolden[player, numplayer]); + progressBars.Add(_ProgressBarNotes[player, numplayer]); } } } @@ -420,7 +534,6 @@ namespace Vocaluxe.Screens private void _UpdateRatings() { CSong song = null; - var players = new SPlayer[CGame.NumPlayers]; if (_Round >= 0) { song = CGame.GetSong(_Round); @@ -434,40 +547,26 @@ namespace Vocaluxe.Screens { _Texts[_TextSong].Text += " (" + (_Round + 1) + "/" + _Points.NumRounds + ")"; } - - players = _Points.GetPlayer(_Round, CGame.NumPlayers); - - var maxPoints = (int)Math.Round(players.Max(player => player.Points)); - _PlayProgressBarSound(maxPoints); } else { _Texts[_TextSong].Text = "TR_SCREENSCORE_OVERALLSCORE"; - for (var i = 0; i < CGame.NumRounds; i++) - { - var points = _Points.GetPlayer(i, CGame.NumPlayers); - for (var p = 0; p < players.Length; p++) - { - if (i < 1) - { - players[p].ProfileId = points[p].ProfileId; - } - - players[p].Points += points[p].Points; - } - } - - for (var p = 0; p < players.Length; p++) - { - players[p].Points = (int)Math.Round(players[p].Points / CGame.NumRounds); - } - - var maxPoints = (int)Math.Round(players.Max(player => player.Points)); - _PlayProgressBarSound(maxPoints); } + var players = _GetPlayers(_Round); + var maxPoints = (int)Math.Round(players.Max(player => player.Points)); + _PlayProgressBarSound(maxPoints); + + _UpdateCover(song); + _UpdateRoundArrows(); + + var showWinner = CGame.NumPlayers > 1 && !_IsKaraokeMode(_Round); + for (var p = 0; p < players.Length; p++) { + var playerPoints = (int)Math.Round(players[p].Points); + _IsWinner[p] = showWinner && playerPoints > 0 && players.All(other => (int)Math.Round(other.Points) <= playerPoints); + var name = CProfiles.GetPlayerName(players[p].ProfileId, p); if (song != null && song.IsDuet) { @@ -509,18 +608,84 @@ namespace Vocaluxe.Screens } _ProgressBars[_ProgressBarPoints[p, CGame.NumPlayers - 1]].Progress = (float)players[p].Points / CSettings.MaxScore; + _ProgressBars[_ProgressBarGolden[p, CGame.NumPlayers - 1]].Progress = (float)Math.Max(players[p].Points - players[p].PointsLineBonus, 0) / CSettings.MaxScore; + _ProgressBars[_ProgressBarNotes[p, CGame.NumPlayers - 1]].Progress = (float)Math.Max(players[p].Points - players[p].PointsLineBonus - players[p].PointsGoldenNotes, 0) / CSettings.MaxScore; if (CProfiles.IsProfileIdValid(players[p].ProfileId)) { _Statics[_StaticAvatar[p, CGame.NumPlayers - 1]].Texture = CProfiles.GetAvatarTextureFromProfile(players[p].ProfileId); } } + + _ResetRevealAnimation(); + } + + private SPlayer[] _GetPlayers(int round) + { + if (round >= 0) + { + return _Points.GetPlayer(round, CGame.NumPlayers); + } + + var players = new SPlayer[CGame.NumPlayers]; + for (var i = 0; i < CGame.NumRounds; i++) + { + var points = _Points.GetPlayer(i, CGame.NumPlayers); + for (var p = 0; p < players.Length; p++) + { + if (i < 1) + { + players[p].ProfileId = points[p].ProfileId; + } + + players[p].Points += points[p].Points; + players[p].PointsGoldenNotes += points[p].PointsGoldenNotes; + players[p].PointsLineBonus += points[p].PointsLineBonus; + } + } + + for (var p = 0; p < players.Length; p++) + { + players[p].Points = (int)Math.Round(players[p].Points / CGame.NumRounds); + players[p].PointsGoldenNotes /= CGame.NumRounds; + players[p].PointsLineBonus /= CGame.NumRounds; + } + + return players; + } + + private void _UpdateCover(CSong song) + { + var cover = _Statics[_StaticCover]; + cover.Visible = song != null; + if (song == null) + { + return; + } + + cover.Texture = song.CoverTextureSmall; + cover.Aspect = EAspect.Crop; + cover.X = _Texts[_TextSong].Rect.X - cover.W - 15f; + } + + private void _UpdateRoundArrows() + { + var hasRounds = _Points.NumRounds > 1; + _Statics[_StaticRoundLeft].Visible = hasRounds; + _Statics[_StaticRoundRight].Visible = hasRounds; + _Statics[_StaticRoundLeft].Alpha = _Round > -1 ? 1f : 0.3f; + _Statics[_StaticRoundRight].Alpha = _Round < _Points.NumRounds - 1 ? 1f : 0.3f; } private void _SetVisibility() { var isKaraokeMode = _IsKaraokeMode(_Round); + _Statics[_StaticLegendGolden].Visible = !isKaraokeMode; + _Statics[_StaticLegendLineBonus].Visible = !isKaraokeMode; + _Texts[_TextLegendGolden].Visible = !isKaraokeMode; + _Texts[_TextLegendLineBonus].Visible = !isKaraokeMode; + for (var numplayer = 0; numplayer < CSettings.MaxNumPlayer; numplayer++) { for (var player = 0; player < CSettings.MaxNumPlayer; player++) @@ -535,7 +700,12 @@ namespace Vocaluxe.Screens _Texts[_TextDifficulty[player, numplayer]].Visible = isVisible; _ProgressBars[_ProgressBarPoints[player, numplayer]].Visible = isVisible && !isKaraokeMode; _ProgressBars[_ProgressBarPoints[player, numplayer]].Reset(true); + _ProgressBars[_ProgressBarGolden[player, numplayer]].Visible = isVisible && !isKaraokeMode; + _ProgressBars[_ProgressBarGolden[player, numplayer]].Reset(true); + _ProgressBars[_ProgressBarNotes[player, numplayer]].Visible = isVisible && !isKaraokeMode; + _ProgressBars[_ProgressBarNotes[player, numplayer]].Reset(true); _Statics[_StaticAvatar[player, numplayer]].Visible = isVisible; + _Statics[_StaticRow[player, numplayer]].Visible = isVisible; _Statics[_StaticAvatar[player, numplayer]].Texture = null; } @@ -545,9 +715,14 @@ namespace Vocaluxe.Screens private void _ChangeRound(int num) { - _Round += num; - _Round = _Round.Clamp(-1, _Points.NumRounds - 1); + var round = (_Round + num).Clamp(-1, _Points.NumRounds - 1); + if (round == _Round) + { + return; + } + _Round = round; + _SetVisibility(); _UpdateRatings(); } @@ -556,10 +731,11 @@ namespace Vocaluxe.Screens for (var round = 0; round < _Points.NumRounds; round++) { var players = _Points.GetPlayer(round, CGame.NumPlayers); + var isKaraokeMode = CGame.GetAudioMode(round) == EAudioMode.TR_AUDIOMODE_KARAOKE; for (var p = 0; p < players.Length; p++) { - if (players[p].Points > CSettings.MinScoreForDB && players[p].SongFinished) + if ((isKaraokeMode || players[p].Points > CSettings.MinScoreForDB) && players[p].SongFinished) { var song = CSongs.GetSong(players[p].SongId); CDataBase.IncreaseSongCounter(song.DataBaseSongId);