| Commit message (Collapse) | Author | Files | Lines |
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1249 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1240 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1237 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1233 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
Format()-style bindings (BindData) and FieldAsBlobPtr.
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1225 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
NOT use them in USDX code. They are just by the DirWatch and Midi... libs in FPC (Windows).
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1224 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1221 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1200 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
These DLLs will be provided via wiki.ultrastardeluxe.org
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1199 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
zlportio is no longer needed.
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1198 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
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;
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,
{$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 := 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;
procedure TScreenStatMain.SetOverview;
type
TwSystemTime = record
wYear,
wMonth,
wDayOfWeek,
wDay,
wHour,
wMinute,
wSecond,
wMilliseconds: Word;
end;
var
Overview, Formatstr: String;
I: Integer;
//Some Vars to Save Attributes to
A1, A2, A3: Integer;
A4, A5: String;
Result1, Result2: AStatResult;
ResetTime: TSystemTime;
begin
//Song Overview
//Introduction
Formatstr := Language.Translate ('STAT_OVERVIEW_INTRO');
(*Format:
%0:d Ultrastar Version
%1:d Day of Reset (A1)
%2:d Month of Reset (A2)
%3:d Year of Reset (A3)*)
DateTimeToSystemTime(Database.GetStatReset, ResetTime);
// ResetTime := GetFileCreation(Database.Filename);
{$IFDEF MSWINDOWS}
A1 := ResetTime.wDay;
A2 := ResetTime.wMonth;
A3 := ResetTime.wYear;
{$ELSE}
A1 := ResetTime.Day;
A2 := ResetTime.Month;
A3 := ResetTime.Year;
{$ENDIF}
try
Overview := Format(Formatstr, [Language.Translate('US_VERSION'), A1, A2, A3]);
except
on E: EConvertError do
Log.LogError('Error Parsing FormatString "STAT_OVERVIEW_INTRO": ' + E.Message);
end;
Formatstr := Language.Translate ('STAT_OVERVIEW_SONG');
{Format:
%0:d Count Songs (A1)
%1:d Count of Sung Songs (A2)
%2:d Count of UnSung Songs
%3:d Count of Songs with Video (A3)
%4:s Name of the most popular Song}
A1 := Songs.SongList.Count;
A2 := Database.GetTotalEntrys(2);
A3 := SongswithVid;
SetLength(Result1, 1);
Database.GetStats(Result1, 2, 1, 0, False);
A4 := Result1[0].Artist;
A5 := Result1[0].Title;
try
Overview := Overview + '\n \n' + Format(Formatstr, [A1, A2, A1-A2, A3, A4, A5]);
except
on E: EConvertError do
Log.LogError('Error Parsing FormatString "STAT_OVERVIEW_SONG": ' + E.Message);
end;
//Player Overview
Formatstr := Language.Translate ('STAT_OVERVIEW_PLAYER');
{Format:
%0:d Count Players (A1)
%1:s Best Player (Result)
%2:d Best Players Score
%3:s Best Score Player (Result2)
%4:d Best Score}
A1 := Database.GetTotalEntrys(1);
SetLength(Result1, 1);
Database.GetStats(Result1, 1, 1, 0, False);
SetLength(Result2, 1);
Database.GetStats(Result2, 0, 1, 0, False);
try
Overview := Overview + '\n \n' + Format(Formatstr, [A1, Result1[0].Player, Result1[0].AverageScore, Result2[0].Singer, Result2[0].Score]);
except
on E: EConvertError do
Log.LogError('Error Parsing FormatString "STAT_OVERVIEW_PLAYER": ' + E.Message);
end;
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.
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1186 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1165 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1164 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1163 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1162 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1161 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
Further headers will follow.
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1160 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1154 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1153 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
- "in"-operator does not work with WideChar operands, e.g. "mychar in ['a..z']
- FPC_VERSION/RELEASE/PATCH (e.g. {$IF FPC_VERSION > 2}) must be defined as constants because delphi 7 does not care about {$IFDEF FPC} sections and complains about undefined constant expressions.
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1150 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
Pascal has no equivalent to C's "pointer to constant type" const modifier. E.g. "const char* cstr" is not equivalent to "const cstr: PChar". This is because the first is a variable pointer to a constant type and the latter is a constant pointer to a variable type. This means contrary to the C version, in the incorrect pascal version the string can be changed. So it is like a false friend in this example, although "cstr: PChar" is not correct either, as the string can be changed too.
Also note that "var myvar: TMyType" is always passed as reference (a pointer is used for this, so it is equivalent to "myvar: PMyType"). This also normally applies to "const myvar: TMyType". But not if the type-size is < 4byte or the function is declared as stdcall or cdecl. In these cases the variable is passed on the stack and not as a pointer. So NEVER replace a C declaration "const my_type_t* my_var" with "const my_var: TMy_type" as it might fail. Use the var modifier instead.
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1148 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1147 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
was for kylix compatibility and should not be used anymore. In addition it seems the libc unit is not available on 64bit systems.
- added some functions that will be introduced with FPC 2.2.2
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1145 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
- removed some svn:executable properties from non-executable files
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1144 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1143 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1141 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1136 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1132 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1127 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1112 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
- moved a few linklib for darwin to the libname section
- added bass-define (undefined by default) for darwin back to switches.inc so switching to bass is easier
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1111 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1109 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1102 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1100 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1099 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1098 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1097 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1096 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1095 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1094 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1093 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1092 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1090 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1083 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1080 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
constructor is called.
Different to C or Java, the constructor or destructor of the base class (except that of TObject) is not called by default if "inherited ..." is not given (very strange). This is no problem with classes inherited directly from TObject, because the TObject constructor is always called (and sets the values of the fields to 0-values) but i added inherited to these constructors too because the base class may change from TObject to something different and the "inherited" will probably not added in this case and causing problems.
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1070 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
This will use AnsiString (no length restriction and passed as pointer) instead of ShortString (= array[0..255] of Char). This is the standard in Delphi so we should use it in FPC too. The FPC reference doc states that {$H-} is standard in FPC, but for any reason in my FPC 2.2.0 for win {$H+} is standard. Maybe the reference guide is somewhat outdated, so probably nothing changed because H+ was the default already.
- removed DLL_CDECL from switches.inc and put it directly into the headers (used in bass and freeimage). Libs shouldn't be declared STDCALL or CDECL globally because it depends on how the libs are compiled. For windows, STDCALL and CDECL are possible, so please define this on a per library base.
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1069 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1067 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1065 b956fd51-792f-4845-bead-9b4dfca2ff2c
|
|
from SDL (several years ago? Last update was done in 2004). In addition OpenGL12 was very buggy (see last commit). The new units support OpenGL up to version 2.0 (extensions must be loaded first, see UGraphic.LoadOpenGLExtensions). At the moment, only 1.2 extensions are loaded. Some constants, that were introduced in OpenGL 1.2 and above (like GL_BGR or GL_CLAMP_TO_EDGE) are in glext.pas, so check this file first for missing constants.
The MacOS build depends on OpenGL12.pas but has its own file in the MacOSX/Wrapper folder instead of using the JEDI-SDL one. Sorry, that I broke MacOSX build for now but it should be no problem to get this working again.
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1052 b956fd51-792f-4845-bead-9b4dfca2ff2c
|