aboutsummaryrefslogtreecommitdiffstats
path: root/src/screens0/UScreenStatMain.pas
diff options
context:
space:
mode:
Diffstat (limited to 'src/screens0/UScreenStatMain.pas')
-rw-r--r--src/screens0/UScreenStatMain.pas301
1 files changed, 0 insertions, 301 deletions
diff --git a/src/screens0/UScreenStatMain.pas b/src/screens0/UScreenStatMain.pas
deleted file mode 100644
index bec9d312..00000000
--- a/src/screens0/UScreenStatMain.pas
+++ /dev/null
@@ -1,301 +0,0 @@
-unit UScreenStatMain;
-
-interface
-
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
-
-{$I switches.inc}
-
-uses
- UMenu,
- SDL,
- SysUtils,
- UDisplay,
- UMusic,
- UIni,
- UThemes;
-
-type
- TScreenStatMain = class(TMenu)
- private
- //Some Stat Value that don't need to be calculated 2 times
- SongsWithVid: Cardinal;
- function FormatOverviewIntro(FormatStr: string): string;
- function FormatSongOverview(FormatStr: string): string;
- function FormatPlayerOverview(FormatStr: string): string;
- public
- TextOverview: integer;
- constructor Create; override;
- function ParseInput(PressedKey: Cardinal; CharCode: WideChar; PressedDown: Boolean): Boolean; override;
- procedure onShow; override;
- procedure SetAnimationProgress(Progress: real); override;
-
- procedure SetOverview;
- end;
-
-implementation
-
-uses UGraphic,
- UDataBase,
- USongs,
- USong,
- ULanguage,
- UCommon,
- Classes,
- {$IFDEF win32}
- windows,
- {$ELSE}
- sysconst,
- {$ENDIF}
- ULog;
-
-function TScreenStatMain.ParseInput(PressedKey: Cardinal; CharCode: WideChar; PressedDown: Boolean): Boolean;
-begin
- Result := true;
- If (PressedDown) Then
- begin // Key Down
- // check normal keys
- case WideCharUpperCase(CharCode)[1] of
- 'Q':
- begin
- Result := false;
- Exit;
- end;
- end;
-
- // check special keys
- case PressedKey of
- SDLK_ESCAPE,
- SDLK_BACKSPACE :
- begin
- Ini.Save;
- AudioPlayback.PlaySound(SoundLib.Back);
- FadeTo(@ScreenMain);
- end;
- SDLK_RETURN:
- begin
- //Exit Button Pressed
- if Interaction = 4 then
- begin
- AudioPlayback.PlaySound(SoundLib.Back);
- FadeTo(@ScreenMain);
- end
- else //One of the Stats Buttons Pressed
- begin
- AudioPlayback.PlaySound(SoundLib.Back);
- ScreenStatDetail.Typ := TStatType(Interaction);
- FadeTo(@ScreenStatDetail);
- end;
- end;
- SDLK_LEFT:
- begin
- InteractPrev;
- end;
- SDLK_RIGHT:
- begin
- InteractNext;
- end;
- SDLK_UP:
- begin
- InteractPrev;
- end;
- SDLK_DOWN:
- begin
- InteractNext;
- end;
- end;
- end;
-end;
-
-constructor TScreenStatMain.Create;
-var
- I: integer;
-begin
- inherited Create;
-
- TextOverview := AddText(Theme.StatMain.TextOverview);
-
- LoadFromTheme(Theme.StatMain);
-
- AddButton(Theme.StatMain.ButtonScores);
- if (Length(Button[0].Text)=0) then
- AddButtonText(14, 20, Theme.StatDetail.Description[0]);
-
- AddButton(Theme.StatMain.ButtonSingers);
- if (Length(Button[1].Text)=0) then
- AddButtonText(14, 20, Theme.StatDetail.Description[1]);
-
- AddButton(Theme.StatMain.ButtonSongs);
- if (Length(Button[2].Text)=0) then
- AddButtonText(14, 20, Theme.StatDetail.Description[2]);
-
- AddButton(Theme.StatMain.ButtonBands);
- if (Length(Button[3].Text)=0) then
- AddButtonText(14, 20, Theme.StatDetail.Description[3]);
-
- AddButton(Theme.StatMain.ButtonExit);
- if (Length(Button[4].Text)=0) then
- AddButtonText(14, 20, Theme.Options.Description[4]);
-
- Interaction := 0;
-
- //Set Songs with Vid
- SongsWithVid := 0;
- For I := 0 to Songs.SongList.Count -1 do
- if (TSong(Songs.SongList[I]).Video <> '') then
- Inc(SongsWithVid);
-end;
-
-procedure TScreenStatMain.onShow;
-begin
- inherited;
-
- //Set Overview Text:
- SetOverview;
-end;
-
-function TScreenStatMain.FormatOverviewIntro(FormatStr: string): string;
-var
- Year, Month, Day: Word;
-begin
- {Format:
- %0:d Ultrastar Version
- %1:d Day of Reset
- %2:d Month of Reset
- %3:d Year of Reset}
-
- Result := '';
-
- try
- DecodeDate(Database.GetStatReset(), Year, Month, Day);
- Result := Format(FormatStr, [Language.Translate('US_VERSION'), Day, Month, Year]);
- except
- on E: EConvertError do
- Log.LogError('Error Parsing FormatString "STAT_OVERVIEW_INTRO": ' + E.Message);
- end;
-end;
-
-function TScreenStatMain.FormatSongOverview(FormatStr: string): string;
-var
- CntSongs, CntSungSongs, CntVidSongs: Integer;
- MostPopSongArtist, MostPopSongTitle: String;
- StatList: TList;
- MostSungSong: TStatResultMostSungSong;
-begin
- {Format:
- %0:d Count Songs
- %1:d Count of Sung Songs
- %2:d Count of UnSung Songs
- %3:d Count of Songs with Video
- %4:s Name of the most popular Song}
-
- CntSongs := Songs.SongList.Count;
- CntSungSongs := Database.GetTotalEntrys(stMostSungSong);
- CntVidSongs := SongsWithVid;
-
- StatList := Database.GetStats(stMostSungSong, 1, 0, False);
- if ((StatList <> nil) and (StatList.Count > 0)) then
- begin
- MostSungSong := StatList[0];
- MostPopSongArtist := MostSungSong.Artist;
- MostPopSongTitle := MostSungSong.Title;
- end
- else
- begin
- MostPopSongArtist := '-';
- MostPopSongTitle := '-';
- end;
- Database.FreeStats(StatList);
-
- Result := '';
-
- try
- Result := Format(FormatStr, [
- CntSongs, CntSungSongs, CntSongs-CntSungSongs, CntVidSongs,
- MostPopSongArtist, MostPopSongTitle]);
- except
- on E: EConvertError do
- Log.LogError('Error Parsing FormatString "STAT_OVERVIEW_SONG": ' + E.Message);
- end;
-end;
-
-function TScreenStatMain.FormatPlayerOverview(FormatStr: string): string;
-var
- CntPlayers: Integer;
- BestScoreStat: TStatResultBestScores;
- BestSingerStat: TStatResultBestSingers;
- BestPlayer, BestScorePlayer: String;
- BestPlayerScore, BestScore: Integer;
- SingerStats, ScoreStats: TList;
-begin
- {Format:
- %0:d Count Players
- %1:s Best Player
- %2:d Best Players Score
- %3:s Best Score Player
- %4:d Best Score}
-
- CntPlayers := Database.GetTotalEntrys(stBestSingers);
-
- SingerStats := Database.GetStats(stBestSingers, 1, 0, False);
- if ((SingerStats <> nil) and (SingerStats.Count > 0)) then
- begin
- BestSingerStat := SingerStats[0];
- BestPlayer := BestSingerStat.Player;
- BestPlayerScore := BestSingerStat.AverageScore;
- end
- else
- begin
- BestPlayer := '-';
- BestPlayerScore := 0;
- end;
- Database.FreeStats(SingerStats);
-
- ScoreStats := Database.GetStats(stBestScores, 1, 0, False);
- if ((ScoreStats <> nil) and (ScoreStats.Count > 0)) then
- begin
- BestScoreStat := ScoreStats[0];
- BestScorePlayer := BestScoreStat.Singer;
- BestScore := BestScoreStat.Score;
- end
- else
- begin
- BestScorePlayer := '-';
- BestScore := 0;
- end;
- Database.FreeStats(ScoreStats);
-
- Result := '';
-
- try
- Result := Format(Formatstr, [
- CntPlayers, BestPlayer, BestPlayerScore,
- BestScorePlayer, BestScore]);
- except
- on E: EConvertError do
- Log.LogError('Error Parsing FormatString "STAT_OVERVIEW_PLAYER": ' + E.Message);
- end;
-end;
-
-procedure TScreenStatMain.SetOverview;
-var
- Overview: String;
-begin
- // Format overview
- Overview := FormatOverviewIntro(Language.Translate('STAT_OVERVIEW_INTRO')) + '\n \n' +
- FormatSongOverview(Language.Translate('STAT_OVERVIEW_SONG')) + '\n \n' +
- FormatPlayerOverview(Language.Translate('STAT_OVERVIEW_PLAYER'));
- Text[0].Text := Overview;
-end;
-
-
-procedure TScreenStatMain.SetAnimationProgress(Progress: real);
-var I: Integer;
-begin
- For I := 0 to high(Button) do
- Button[I].Texture.ScaleW := Progress;
-end;
-
-end.