aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/base/USong.pas19
-rw-r--r--src/screens/UScreenSing.pas6
2 files changed, 20 insertions, 5 deletions
diff --git a/src/base/USong.pas b/src/base/USong.pas
index 47ac0a30..6c81cecc 100644
--- a/src/base/USong.pas
+++ b/src/base/USong.pas
@@ -130,6 +130,9 @@ type
MultBPM : integer;
LastError: String;
+ Function GetErrorLineNo: Integer;
+ Property ErrorLineNo: Integer read GetErrorLineNo;
+
constructor Create (); overload;
constructor Create ( const aFileName : WideString ); overload;
@@ -203,7 +206,7 @@ begin
if not FileExists(Path + PathDelim + FileName) then
begin
- LastError := 'File not found';
+ LastError := 'ERROR_CORRUPT_SONG_FILE_NOT_FOUND';
Log.LogError('File not found: "' + Path + PathDelim + FileName + '"', 'TSong.LoadSong()');
exit;
end;
@@ -243,7 +246,7 @@ begin
begin //Song File Corrupted - No Notes
CloseFile(SongFile);
Log.LogError('Could not load txt File, no Notes found: ' + FileName);
- LastError := 'Can''t find any notes';
+ LastError := 'ERROR_CORRUPT_SONG_NO_NOTES';
Exit;
end;
Read(SongFile, TempC);
@@ -368,7 +371,7 @@ begin
begin
If (Length(Lines[I].Line) < 2) then
begin
- LastError := 'Can''t find any linebreaks';
+ LastError := 'ERROR_CORRUPT_SONG_NO_BREAKS';
Log.LogError('Error Loading File, Can''t find any Linebreaks: "' + fFileName + '"');
exit;
end;
@@ -395,7 +398,7 @@ begin
end;
- LastError := 'Error reading line ' + inttostr(FileLineNo);
+ LastError := 'ERROR_CORRUPT_SONG_ERROR_IN_LINE';
Log.LogError('Error Loading File: "' + fFileName + '" in Line ' + inttostr(FileLineNo));
exit;
end;
@@ -885,6 +888,14 @@ begin
end;
+Function TSong.GetErrorLineNo: Integer;
+begin
+ If (LastError='ERROR_CORRUPT_SONG_ERROR_IN_LINE') then
+ Result := FileLineNo
+ Else
+ Result := -1;
+end;
+
procedure TSong.ParseNote(LineNumber: integer; TypeP: char; StartP, DurationP, NoteP: integer; LyricS: string);
begin
diff --git a/src/screens/UScreenSing.pas b/src/screens/UScreenSing.pas
index 3eb3742d..d0908ff8 100644
--- a/src/screens/UScreenSing.pas
+++ b/src/screens/UScreenSing.pas
@@ -441,7 +441,7 @@ begin
if ScreenSong.Mode = smPartyMode then
ScreenSong.SelectRandomSong();
if (Length(CurrentSong.LastError) > 0) then
- ScreenPopupError.ShowPopup(Language.Translate('ERROR_CORRUPT_SONG') + '\n' + CurrentSong.LastError)
+ ScreenPopupError.ShowPopup(Format(Language.Translate(CurrentSong.LastError), [CurrentSong.ErrorLineNo]))
else
ScreenPopupError.ShowPopup(Language.Translate('ERROR_CORRUPT_SONG'));
// FIXME: do we need this?
@@ -656,6 +656,8 @@ begin
glDeleteTextures(1, PGLuint(@Tex_Background.TexNum));
Tex_Background.TexNum := 0;
end;
+
+ Background.OnFinish;
end;
function TScreenSing.Draw: boolean;
@@ -669,6 +671,8 @@ var
CurLyricsTime: real;
begin
+ Background.Draw;
+
// set player names (for 2 screens and only Singstar skin)
if ScreenAct = 1 then
begin