diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/base/USong.pas | 19 | ||||
-rw-r--r-- | src/screens/UScreenSing.pas | 6 |
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 |