@@ -83,6 +83,7 @@ TScreenSingController = class(TMenu)
8383 procedure ResetLinesAndLyrics ();
8484 procedure ClearLyricEngines ();
8585 procedure CalculateStartTime ;
86+ procedure SaveLocalScores ;
8687 public
8788 CheckPlayerConfigOnNextSong: boolean;
8889 eSongLoaded: THookableEvent; // < event is called after lyrics of a song are loaded on OnShow
@@ -1592,14 +1593,20 @@ procedure TScreenSingController.Finish;
15921593 len, num: integer;
15931594
15941595begin
1596+ Log.LogStatus(' TScreenSingController.Finish' , ' TScreenSingController.Finish' );
15951597 AudioInput.CaptureStop;
15961598 AudioPlayback.Stop;
15971599 AudioPlayback.SetSyncSource(nil );
15981600
1599- if (ScreenSong.Mode = smNormal) and ( SungToEnd) and (Length(DllMan.Websites) > 0 ) then
1601+ if (ScreenSong.Mode = smNormal) and SungToEnd then
16001602 begin
1601- AutoSendScore;
1602- AutoSaveScore;
1603+ SaveLocalScores;
1604+
1605+ if (Length(DllMan.Websites) > 0 ) then
1606+ begin
1607+ AutoSendScore;
1608+ AutoSaveScore;
1609+ end ;
16031610 end ;
16041611
16051612 LyricsState.Stop();
@@ -1877,6 +1884,25 @@ procedure TScreenSingController.UpdateMedleyStats(medley_end: boolean); //TODO
18771884end ;
18781885
18791886
1887+ procedure TScreenSingController.SaveLocalScores ;
1888+ var
1889+ I: integer;
1890+ Sung: boolean;
1891+ begin
1892+ Sung := false;
1893+ for I := 0 to PlayersPlay - 1 do
1894+ begin
1895+ if Player[I].ScoreTotalInt > 0 then
1896+ begin
1897+ DataBase.AddScore(CurrentSong, Player[I].Level, Player[I].Name , Player[I].ScoreTotalInt);
1898+ Sung := true;
1899+ end ;
1900+ end ;
1901+
1902+ if Sung then
1903+ DataBase.WriteScore(CurrentSong);
1904+ end ;
1905+
18801906procedure TScreenSingController.AutoSendScore ;
18811907var
18821908 SendInfo: TSendInfo;
@@ -2014,4 +2040,3 @@ procedure TScreenSingController.AutoSaveScore;
20142040end ;
20152041
20162042end .
2017-
0 commit comments