diff options
Diffstat (limited to '')
-rw-r--r-- | Game/Code/UltraStar.dpr | 286 |
1 files changed, 286 insertions, 0 deletions
diff --git a/Game/Code/UltraStar.dpr b/Game/Code/UltraStar.dpr new file mode 100644 index 00000000..5c598eda --- /dev/null +++ b/Game/Code/UltraStar.dpr @@ -0,0 +1,286 @@ + program UltraStar;
+
+{$DEFINE TRANSLATE}
+//DEFINE THEMESAVE}
+
+{$R 'UltraStar.res' 'UltraStar.rc'}
+
+uses
+ {//Earlyer in Code Dir.. Now in SearchDir
+ DDKint in '..\ZLPortIO\ddkint.pas',
+ ZLPortIO in '..\ZLPortIO\zlportio.pas',
+ SQLiteTable3 in '..\SQLite\SQLiteTable3.pas',
+ SQLite3 in '..\SQLite\SQLite3.pas',}
+ Windows,
+ SDL,
+ SysUtils,
+
+ //Menu Objects
+ UDisplay in 'Menu\UDisplay.pas',
+ UMenu in 'Menu\UMenu.pas',
+ UMenuStatic in 'Menu\UMenuStatic.pas',
+ UMenuText in 'Menu\UMenuText.pas',
+ UMenuButton in 'Menu\UMenuButton.pas',
+ UMenuInteract in 'Menu\UMenuInteract.pas',
+ UMenuSelect in 'Menu\UMenuSelect.pas',
+ UMenuSelectSlide in 'Menu\UMenuSelectSlide.pas',
+ UDrawTexture in 'Menu\UDrawTexture.pas',
+
+ //Classes
+ UGraphic in 'Classes\UGraphic.pas',
+ UTexture in 'Classes\UTexture.pas',
+ UMusic in 'Classes\UMusic.pas',
+ UPliki in 'Classes\UPliki.pas',
+ UMain in 'Classes\UMain.pas',
+ UDraw in 'Classes\UDraw.pas',
+ URecord in 'Classes\URecord.pas',
+ UTime in 'Classes\UTime.pas',
+ TextGL in 'Classes\TextGL.pas',
+ USongs in 'Classes\USongs.pas',
+ UIni in 'Classes\UIni.pas',
+ USmpeg in 'SMpeg\USmpeg.pas',
+ ULyrics in 'Classes\ULyrics.pas',
+ USkins in 'Classes\USkins.pas',
+ UThemes in 'Classes\UThemes.pas',
+ ULog in 'Classes\ULog.pas',
+ UJoystick in 'Classes\UJoystick.pas',
+ ULCD in 'Classes\ULCD.pas',
+ ULight in 'Classes\ULight.pas',
+ UScores in 'Classes\UScores.pas',
+ ULanguage in 'Classes\ULanguage.pas',
+ UCovers in 'Classes\UCovers.pas',
+ UCatCovers in 'Classes\UCatCovers.pas',
+ UFiles in 'Classes\UFiles.pas',
+ UGraphicClasses in 'Classes\UGraphicClasses.pas',
+ UDLLManager in 'Classes\UDLLManager.pas',
+ UParty in 'Classes\UParty.pas',
+
+ //Screens
+ UScreenLoading in 'Screens\UScreenLoading.pas',
+ UScreenWelcome in 'Screens\UScreenWelcome.pas',
+ UScreenMain in 'Screens\UScreenMain.pas',
+ UScreenName in 'Screens\UScreenName.pas',
+ UScreenLevel in 'Screens\UScreenLevel.pas',
+ UScreenSong in 'Screens\UScreenSong.pas',
+ UScreenSing in 'Screens\UScreenSing.pas',
+ UScreenScore in 'Screens\UScreenScore.pas',
+ UScreenOptions in 'Screens\UScreenOptions.pas',
+ UScreenOptionsGame in 'Screens\UScreenOptionsGame.pas',
+ UScreenOptionsGraphics in 'Screens\UScreenOptionsGraphics.pas',
+ UScreenOptionsSound in 'Screens\UScreenOptionsSound.pas',
+ UScreenOptionsLyrics in 'Screens\UScreenOptionsLyrics.pas',
+ UScreenOptionsThemes in 'Screens\UScreenOptionsThemes.pas',
+ UScreenOptionsRecord in 'Screens\UScreenOptionsRecord.pas',
+ UScreenEditSub in 'Screens\UScreenEditSub.pas',
+ UScreenEdit in 'Screens\UScreenEdit.pas',
+ UScreenEditConvert in 'Screens\UScreenEditConvert.pas',
+ UScreenEditHeader in 'Screens\UScreenEditHeader.pas',
+ UScreenOpen in 'Screens\UScreenOpen.pas',
+ UScreenTop5 in 'Screens\UScreenTop5.pas',
+ UScreenSongMenu in 'Screens\UScreenSongMenu.pas',
+ //PartyMode
+ UScreenSingModi in 'Screens\UScreenSingModi.pas',
+ UScreenPartyNewRound in 'Screens\UScreenPartyNewRound.pas',
+ UScreenPartyScore in 'Screens\UScreenPartyScore.pas',
+ UScreenPartyPlayer in 'Screens\UScreenPartyPlayer.pas',
+ UScreenPartyOptions in 'Screens\UScreenPartyOptions.pas',
+ UScreenPartyWin in 'Screens\UScreenPartyWin.pas',
+
+ //Modi SDK
+ ModiSDK in '..\..\Modis\SDK\ModiSDK.pas';
+
+const
+ Version = 'UltraStar Deluxe V 0.90 Beta';
+
+var
+ WndTitle: string;
+ hWnd: THandle;
+ I: Integer;
+
+begin
+ WndTitle := Version;
+
+ //Start more than One Time Prevention
+ hWnd:= FindWindow(nil, PChar(WndTitle));
+ //Programm already started
+ if (hWnd <> 0) then
+ begin
+ I := Messagebox(0, PChar('Another Instance of Ultrastar is already running. Contėnue ?'), PChar(WndTitle), MB_ICONWARNING or MB_YESNO);
+ if (I = IDYes) then
+ begin
+ I := 1;
+ repeat
+ Inc(I);
+ hWnd := FindWindow(nil, PChar(WndTitle + ' Instance ' + InttoStr(I)));
+ until (hWnd = 0);
+
+ WndTitle := WndTitle + ' Instance ' + InttoStr(I);
+ end
+ else
+ Exit;
+ end;
+
+
+
+ USTime := TTime.Create;
+
+ // Log + Benchmark
+ Log := TLog.Create;
+ Log.Title := WndTitle;
+ Log.BenchmarkStart(0);
+// Log.LogError(IntToStr(DayOfTheYear(Date)));
+
+ // Language
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Initialize Paths', 'Initialization'); InitializePaths;
+ Log.LogStatus('Load Language', 'Initialization'); Language := TLanguage.Create;
+ //Add Const Values:
+ Language.AddConst('US_VERSION', Version);
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Language', 1);
+
+ // SDL
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Initialize SDL', 'Initialization');
+ SDL_Init(SDL_INIT_VIDEO or SDL_INIT_AUDIO);
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Initializing SDL', 1);
+
+ // Skin
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Loading Skin List', 'Initialization'); Skin := TSkin.Create;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Skin List', 1);
+
+ //Log.LogBenchmark(inttostr(Skin.), 1);
+
+ // Sound Card List
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Loading Soundcard list', 'Initialization');
+ Recording := TRecord.Create;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Soundcard list', 1);
+
+ // Ini + Paths
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Load Ini', 'Initialization'); Ini := TIni.Create;
+ Ini.Load;
+ Language.ChangeLanguage(ILanguage[Ini.Language]);
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Ini', 1);
+
+ // LCD
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Load LCD', 'Initialization'); LCD := TLCD.Create;
+ if Ini.LPT = 1 then begin
+// LCD.HalfInterface := true;
+ LCD.Enable;
+ LCD.Clear;
+ LCD.WriteText(1, ' UltraStar ');
+ LCD.WriteText(2, ' Loading... ');
+ end;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading LCD', 1);
+
+ // Light
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Load Light', 'Initialization'); Light := TLight.Create;
+ if Ini.LPT = 2 then begin
+ Light.Enable;
+// Light.LightOne(0, 1000);
+ end;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Light', 1);
+
+ // Theme
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Load Themes', 'Initialization'); Theme := TTheme.Create('Themes\' + ITheme[Ini.Theme] + '.ini', Ini.Color);
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Themes', 1);
+
+ // Covers Cache
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Creating Covers Cache', 'Initialization'); Covers := TCovers.Create;
+ Log.LogBenchmark('Loading Covers Cache Array', 1);
+ Log.BenchmarkStart(1);
+
+ // Category Covers
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Creating Category Covers Array', 'Initialization');
+ CatCovers:= TCatCovers.Create;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Category Covers Array', 1);
+
+ // Songs
+ //Log.BenchmarkStart(1);
+ Log.LogStatus('Creating Song Array', 'Initialization'); Songs := TSongs.Create;
+ Songs.LoadSongList;
+ Log.LogStatus('Creating 2nd Song Array', 'Initialization'); CatSongs := TCatSongs.Create;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Songs', 1);
+
+ // PluginManager
+ Log.BenchmarkStart(1);
+ Log.LogStatus('PluginManager', 'Initialization');
+ DLLMan := TDLLMan.Create; //Load PluginList
+
+ Log.LogError(inttostr(Length(DLLMan.Plugins)) + ' Plugins Loaded');
+
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading PluginManager', 1);
+
+ // Party Mode Manager
+ Log.BenchmarkStart(1);
+ Log.LogStatus('PartySession Manager', 'Initialization');
+ PartySession := TParty_Session.Create; //Load PartySession
+
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading PartySession Manager', 1);
+
+ // Graphics
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Initialize 3D', 'Initialization'); Initialize3D(WndTitle);
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Initializing 3D', 1);
+
+ // Sound
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Initialize Sound', 'Initialization');
+ Log.LogStatus('Creating Music', 'InitializeSound'); Music := TMusic.Create;
+ InitializeSound;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Initializing Sound', 1);
+
+ // Score Saving System
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Score DB System', 'Initialization');
+ InitScore('Scores.db');
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Loading Score DB System', 1);
+
+ // Joypad
+ if Ini.Joypad = 1 then begin
+ Log.BenchmarkStart(1);
+ Log.LogStatus('Initialize Joystick', 'Initialization'); Joy := TJoy.Create;
+ Log.BenchmarkEnd(1);
+ Log.LogBenchmark('Initializing Joystick', 1);
+ end;
+
+ Log.BenchmarkEnd(0);
+ Log.LogBenchmark('Loading Time', 0);
+
+
+// Music.SetLoop(true);
+// Music.SetVolume(50);
+// Music.Open(SkinPath + 'Menu Music 3.mp3');
+// Music.Play;
+ Log.LogStatus('Main Loop', 'Initialization'); MainLoop;
+
+// sleep(3000);
+
+ // finish
+ if Ini.LPT = 1 then LCD.Clear;
+ if Ini.LPT = 2 then Light.TurnOff;
+
+ Log.Free;
+end.
\ No newline at end of file |