diff --git a/Output/Languages/Deutsch.xml b/Output/Languages/Deutsch.xml
index 6a7c86c7..51994228 100644
--- a/Output/Languages/Deutsch.xml
+++ b/Output/Languages/Deutsch.xml
@@ -141,6 +141,7 @@
Bewertung
Punkte
Schwierigkeit
+ Gesamtpunktzahl
Highscore
diff --git a/Output/Languages/English.xml b/Output/Languages/English.xml
index 9b61a467..915d5efb 100644
--- a/Output/Languages/English.xml
+++ b/Output/Languages/English.xml
@@ -141,6 +141,7 @@
Rating
Points
Difficulty
+ Overall score
Highscore
diff --git a/Vocaluxe/Screens/CScreenScore.cs b/Vocaluxe/Screens/CScreenScore.cs
index 21b0a92f..af44c2aa 100644
--- a/Vocaluxe/Screens/CScreenScore.cs
+++ b/Vocaluxe/Screens/CScreenScore.cs
@@ -117,9 +117,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,18 +258,42 @@ 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)
- {
- Texts[htTexts(TextSong)].Text += " (" + _Round + "/" + _Points.NumRounds + ")";
- }
-
SPlayer[] player = new SPlayer[CGame.NumPlayer];
- player = _Points.GetPlayer(_Round - 1, CGame.NumPlayer);
+ if (_Round != 0)
+ {
+ CSong 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);
+ }
+ }
for (int p = 0; p < player.Length; p++)
{
Texts[htTexts(TextNames[p, CGame.NumPlayer - 1])].Text = player[p].Name;
@@ -315,11 +353,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();
+ }
}
}
}
\ No newline at end of file