aboutsummaryrefslogtreecommitdiffstats
path: root/Game/Code/Classes (follow)
Commit message (Collapse)AuthorAgeFilesLines
* moved image (SDL-surface) manipulation functions from UTexture.pas to UImage.pastobigun2008-08-133-501/+375
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1254 b956fd51-792f-4845-bead-9b4dfca2ff2c
* workaround for a bug in FPC 2.2.2. ThousandSeparator must be set, otherwise ↵tobigun2008-08-111-0/+4
| | | | | | TIniFile.ReadFloat will not work in windows. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1253 b956fd51-792f-4845-bead-9b4dfca2ff2c
* linux needs a call to SDL_SetVideoMode after resizing. Otherwise the screen ↵tobigun2008-08-081-2/+10
| | | | | | will be corrupted. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1248 b956fd51-792f-4845-bead-9b4dfca2ff2c
* With the global build logs are now stored in ~/.UltraStarDeluxe/logs instead ↵tobigun2008-08-081-1/+1
| | | | | | of /var/logs so we do not need special permissions on the log directory. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1242 b956fd51-792f-4845-bead-9b4dfca2ff2c
* changed error on read-only dirs into a warningtobigun2008-08-081-1/+1
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1241 b956fd51-792f-4845-bead-9b4dfca2ff2c
* warning removedtobigun2008-08-081-0/+3
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1239 b956fd51-792f-4845-bead-9b4dfca2ff2c
* deprecated IncludeTrailingBackslash replaced with IncludeTrailingPathDelimitertobigun2008-08-081-1/+1
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1238 b956fd51-792f-4845-bead-9b4dfca2ff2c
* some warnings removedtobigun2008-08-084-10/+17
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1236 b956fd51-792f-4845-bead-9b4dfca2ff2c
* warnings suppressedtobigun2008-08-082-1/+7
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1235 b956fd51-792f-4845-bead-9b4dfca2ff2c
* turned off platform specific warnings as we know that they aretobigun2008-08-081-0/+3
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1234 b956fd51-792f-4845-bead-9b4dfca2ff2c
* somw warnings removedtobigun2008-08-086-3/+36
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1231 b956fd51-792f-4845-bead-9b4dfca2ff2c
* - TStatResult is an abstract class now.tobigun2008-08-081-65/+82
| | | | | | | - GetStats returns a TList of TStatResult now - Free the result-list with FreeStats git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1230 b956fd51-792f-4845-bead-9b4dfca2ff2c
* - Reset-Timestamp changed from STRING to INTEGER (stored as UNIX-timestamp)tobigun2008-08-071-11/+43
| | | | | | - Version-number for database-file added git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1229 b956fd51-792f-4845-bead-9b4dfca2ff2c
* - Introduced TStatType.tobigun2008-08-071-119/+139
| | | | | | - Replaced TSQLiteTable with the new TSQLiteUniTable. The ..UniTable-version does not retrieve data at once (this feature is not needed/wanted in most cases). The major advantage of this version is a better handling of datatypes. TSQLiteTable does not handle datatypes correctly (and even crashes) if the field-types are not one of the SQLite types (e.g. an INT(12) field will crash if it accessed by FieldAsInteger, the same applies to "integer" but the upper-case version "INTEGER" works). With TSQLiteUniTable those crashes should not occur. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1228 b956fd51-792f-4845-bead-9b4dfca2ff2c
* SUM/COUNT replaced by AVGtobigun2008-08-071-5/+5
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1227 b956fd51-792f-4845-bead-9b4dfca2ff2c
* - strings are bound now to avoid failures with unquoted stringstobigun2008-08-071-192/+243
| | | | | | | | | | - better error/exception handling - Strings (PlayerName, Artist, Title) are stored as UTF8 - TSQLiteTable objects returned by GetTable() are freed now. Memory was not released before causing memory leaks. - replaced `` with []. Both are not ANSI SQL compatible, `` is used in MySQL, [] in MSSQL. In contrast to `` SQLite states that [] is supported. "" is not used as it is interpreted as a string if an identifier with this name does not exist. This will make debugging mor difficult as SQLite does not return an error code if an identifier was misspelled. - cleanup git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1226 b956fd51-792f-4845-bead-9b4dfca2ff2c
* moved AllocateHWnd/DeallocateHWnd from UCommon.pas to WinAllocation.pas. Do ↵tobigun2008-08-061-89/+0
| | | | | | 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
* avoid seeking if video is not initializedtobigun2008-08-061-0/+3
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1223 b956fd51-792f-4845-bead-9b4dfca2ff2c
* RenderAspect is not neededtobigun2008-08-061-4/+9
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1222 b956fd51-792f-4845-bead-9b4dfca2ff2c
* Fix for USDX first run and no config.ini problem (ini is saved on startup)mogguh2008-08-031-1/+5
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1220 b956fd51-792f-4845-bead-9b4dfca2ff2c
* fpc 2.2.2 fix, clocale is not available for windowstobigun2008-07-211-0/+2
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1218 b956fd51-792f-4845-bead-9b4dfca2ff2c
* Some changes in ReadScore and WriteScore to prevent for crashes caused by ↵whiteshark02008-07-191-3/+14
| | | | | | more than 5 score entrys per song/difficulty git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1216 b956fd51-792f-4845-bead-9b4dfca2ff2c
* renamed TLineState to TLyricsStatetobigun2008-07-191-2/+2
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1215 b956fd51-792f-4845-bead-9b4dfca2ff2c
* renamed TLineState to TLyricsStatetobigun2008-07-193-45/+45
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1214 b956fd51-792f-4845-bead-9b4dfca2ff2c
* clean-up, removed some unused stufftobigun2008-07-191-121/+35
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1213 b956fd51-792f-4845-bead-9b4dfca2ff2c
* PTexture addedtobigun2008-07-191-8/+9
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1212 b956fd51-792f-4845-bead-9b4dfca2ff2c
* lyric engine patches, solvestobigun2008-07-194-396/+508
| | | | | | | | | | - pixeled/transparent fonts bug - some lines were erroneously marked active or disabled - state was not initialized correctly - negative gap problem (TLyricLine.Start was of type cardinal) - some more lyrics bugs git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1211 b956fd51-792f-4845-bead-9b4dfca2ff2c
* - SetFontBlend addedtobigun2008-07-191-117/+127
| | | | | | - clean-up git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1210 b956fd51-792f-4845-bead-9b4dfca2ff2c
* references to UMacResources.pp removedtobigun2008-07-171-3/+0
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1208 b956fd51-792f-4845-bead-9b4dfca2ff2c
* - UPlatformXYZ.pas clean-uptobigun2008-07-175-171/+216
| | | | | | | - TPlatform now implements common behaviour - added TPlatform.Init() git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1207 b956fd51-792f-4845-bead-9b4dfca2ff2c
* Renamed the old ULyrics_bak.pas to UEditorLyrics.pas as it is used in the ↵tobigun2008-07-172-429/+229
| | | | | | editor only. This might be replaced by ULyrics.pas later. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1204 b956fd51-792f-4845-bead-9b4dfca2ff2c
* New place for the Resources for Mac OS X: $HOME/Appliations ↵k-m_schindler2008-07-152-15/+51
| | | | | | Support/UltraStarDeluxe/Resources git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1201 b956fd51-792f-4845-bead-9b4dfca2ff2c
* As sdl_ttf isn't of any use for now, I uncommented all occurrences of it.mogguh2008-07-153-9/+9
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1195 b956fd51-792f-4845-bead-9b4dfca2ff2c
* Lyric help bar works againtobigun2008-07-141-73/+119
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1194 b956fd51-792f-4845-bead-9b4dfca2ff2c
* cleanuptobigun2008-07-141-52/+49
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1193 b956fd51-792f-4845-bead-9b4dfca2ff2c
* - conversion of TLyricLine into a class. tobigun2008-07-141-134/+149
| | | | | | | - Added GetLowerLine/GetUpperLine. - cleanup git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1192 b956fd51-792f-4845-bead-9b4dfca2ff2c
* TLine.LyricWidth (width of the line in pixels) is marked as deprecated. Do ↵tobigun2008-07-141-2/+4
| | | | | | not use this as the stored width is not correct. Use TLyricsEngine.GetUpperLine().Width instead. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1191 b956fd51-792f-4845-bead-9b4dfca2ff2c
* - cleanup/comments for TDisplay.Create tobigun2008-07-121-23/+11
| | | | | | | | - fading works now, it was broken because RenderW/H was not defined when SwapBuffers() was called for the first time. This caused glOrtho() to set the OpenGL error state. When fading was initialized in UDisplay this error-state was checked to see if glGenTextures failed. Although it didn't the error state was set because of the older error in glOrtho (Note: errors aren't reset after a successful OpenGL call), so it was wrongly assumed that no texture could be allocated. This problem was fixed by defining RenderW/H before the first call of SwapBuffers and resetting OpenGL's error state before calling an OpenGL function whose error state is to be checked. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1188 b956fd51-792f-4845-bead-9b4dfca2ff2c
* cleanup + commentstobigun2008-07-121-6/+19
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1187 b956fd51-792f-4845-bead-9b4dfca2ff2c
* unit UScreenStatMain;GogolNr12008-07-121-5/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Text has a new property -> Z (default is 0)mogguh2008-07-122-81/+95
| | | | | | | | | Selects on the options have been exchanged for SelectSlides (OptionsScreens are looking less broken (more to come)) Solmization has been banned from the options (it's still available via config.ini and is working) Uncommented poc ttf code [Back] button in OptionsRecord is skineable again git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1183 b956fd51-792f-4845-bead-9b4dfca2ff2c
* 64bit compatibility fixtobigun2008-07-031-4/+5
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1162 b956fd51-792f-4845-bead-9b4dfca2ff2c
* indenting and cleanuptobigun2008-07-022-42/+38
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1158 b956fd51-792f-4845-bead-9b4dfca2ff2c
* Audio/Video engine update:tobigun2008-07-0225-2299/+4681
| | | | | | | | | | | | | | | - lyrics<->audio synchronisation (TSyncSource) - better resampling (optional support for libsamplerate) - cleaner termination of audio/video streams/devices - improved decoders and decoder infrastructure - many other improvements/cleanups Currently just for testing (not enabled by default): - Background music - Voice-Passthrough (hear what you sing) - Video VSync git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1157 b956fd51-792f-4845-bead-9b4dfca2ff2c
* Disabled Alt+Tab screen-mode switching for Windows and MacOSX. ↵tobigun2008-07-011-6/+5
| | | | | | SDL_SetVideoMode creates a new OpenGL RC (all textures are invalidated) so we have to reload all texture data (-> whitescreen bug or scrambled screen). Only Linux is able to handle screen-switching this way. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1156 b956fd51-792f-4845-bead-9b4dfca2ff2c
* Delphi 7 compatibility fix:tobigun2008-06-163-60/+63
| | | | | | | - "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
* code improvement: conversion of case statements to boolean assignmentsk-m_schindler2008-06-141-30/+11
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1149 b956fd51-792f-4845-bead-9b4dfca2ff2c
* corrected String index to start from 1 and not from 0k-m_schindler2008-06-131-4/+4
| | | | git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1146 b956fd51-792f-4845-bead-9b4dfca2ff2c
* - all references to the libc unit removed. The Libc unit (not the library) ↵tobigun2008-06-093-71/+83
| | | | | | | | | 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
* - set svn:eol-style to nativetobigun2008-06-0826-13356/+13356
| | | | | | - 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