From 6e7b96ca3a7d47b0441bed904a9b8bb25c3223de Mon Sep 17 00:00:00 2001 From: jaybinks Date: Wed, 12 Sep 2007 12:43:38 +0000 Subject: * added missed dependency PNGImage. * moved FUNCTION InitializePaths(), from uFiles to uMain as this is a more sane location for it. * updated files that used UFiles to point to UMain, and removed uFiles where its not needed. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@385 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/Classes/UCatCovers.pas | 7 ++- Game/Code/Classes/UCommandLine.pas | 11 +++- Game/Code/Classes/UCovers.pas | 64 +++++++++++---------- Game/Code/Classes/UFiles.pas | 113 ++++++++++++++++++------------------- Game/Code/Classes/UIni.pas | 9 ++- Game/Code/Classes/ULanguage.pas | 9 ++- Game/Code/Classes/ULog.pas | 12 +++- Game/Code/Classes/UMain.pas | 51 +++++++++++++++++ Game/Code/Classes/UPlaylist.pas | 9 ++- Game/Code/Classes/USongs.pas | 6 +- 10 files changed, 197 insertions(+), 94 deletions(-) (limited to 'Game/Code/Classes') diff --git a/Game/Code/Classes/UCatCovers.pas b/Game/Code/Classes/UCatCovers.pas index 34742902..d40b2564 100644 --- a/Game/Code/Classes/UCatCovers.pas +++ b/Game/Code/Classes/UCatCovers.pas @@ -24,7 +24,12 @@ var CatCovers: TCatCovers; implementation -uses IniFiles, SysUtils, Classes, UFiles, ULog; +uses IniFiles, + SysUtils, + Classes, + // UFiles, + UMain, + ULog; constructor TCatCovers.Create; begin diff --git a/Game/Code/Classes/UCommandLine.pas b/Game/Code/Classes/UCommandLine.pas index 03229721..259c6e16 100644 --- a/Game/Code/Classes/UCommandLine.pas +++ b/Game/Code/Classes/UCommandLine.pas @@ -45,7 +45,10 @@ var Params: TCMDParams; implementation -uses SysUtils, UIni; + +uses SysUtils; +// uINI -- Nasty requirement... ( removed with permission of blindy ) + //------------- // Constructor - Create class, Reset Variables and Read Infos @@ -249,6 +252,7 @@ var I: integer; begin Result := -1; +{* JB - 12sep07 to remove uINI dependency //Search for Language For I := 0 to high(ILanguage) do @@ -257,6 +261,7 @@ begin Result := I; Break; end; +*} end; //------------- @@ -267,6 +272,7 @@ var I: integer; begin Result := -1; +{* JB - 12sep07 to remove uINI dependency //Search for Resolution For I := 0 to high(IResolution) do @@ -275,6 +281,7 @@ begin Result := I; Break; end; +*} end; -end. \ No newline at end of file +end. diff --git a/Game/Code/Classes/UCovers.pas b/Game/Code/Classes/UCovers.pas index 5b0a06d4..0740c143 100644 --- a/Game/Code/Classes/UCovers.pas +++ b/Game/Code/Classes/UCovers.pas @@ -34,7 +34,11 @@ var Covers: TCovers; implementation -uses UFiles, ULog, DateUtils; + +uses UMain, + // UFiles, + ULog, + DateUtils; constructor TCovers.Create; begin @@ -56,48 +60,50 @@ var Name: string; // Data: array of byte; begin - if FileExists(GamePath + 'covers.cache') then begin - AssignFile(F, GamePath + 'covers.cache'); - Reset(F, 1); + if FileExists(GamePath + 'covers.cache') then + begin + AssignFile(F, GamePath + 'covers.cache'); + Reset(F, 1); - WritetoFile := not FileIsReadOnly(GamePath + 'covers.cache'); + WritetoFile := not FileIsReadOnly(GamePath + 'covers.cache'); - SetLength(Cover, 0); + SetLength(Cover, 0); - while not EOF(F) do begin - SetLength(Cover, Length(Cover)+1); + while not EOF(F) do + begin + SetLength(Cover, Length(Cover)+1); - BlockRead(F, W, 2); - Cover[High(Cover)].W := W; + BlockRead(F, W, 2); + Cover[High(Cover)].W := W; - BlockRead(F, H, 2); - Cover[High(Cover)].H := H; + BlockRead(F, H, 2); + Cover[High(Cover)].H := H; - BlockRead(F, Bits, 1); + BlockRead(F, Bits, 1); - Cover[High(Cover)].Size := W * H * (Bits div 8); + Cover[High(Cover)].Size := W * H * (Bits div 8); - // test -// W := 128; -// H := 128; -// Bits := 24; -// Seek(F, FilePos(F) + 3); + // test + // W := 128; + // H := 128; + // Bits := 24; + // Seek(F, FilePos(F) + 3); - BlockRead(F, NLen, 2); - SetLength(Name, NLen); + BlockRead(F, NLen, 2); + SetLength(Name, NLen); - BlockRead(F, Name[1], NLen); - Cover[High(Cover)].Name := Name; + BlockRead(F, Name[1], NLen); + Cover[High(Cover)].Name := Name; - Cover[High(Cover)].Position := FilePos(F); - Seek(F, FilePos(F) + W*H*(Bits div 8)); + Cover[High(Cover)].Position := FilePos(F); + Seek(F, FilePos(F) + W*H*(Bits div 8)); -// SetLength(Cover[High(Cover)].Data, W*H*(Bits div 8)); -// BlockRead(F, Cover[High(Cover)].Data[0], W*H*(Bits div 8)); + // SetLength(Cover[High(Cover)].Data, W*H*(Bits div 8)); + // BlockRead(F, Cover[High(Cover)].Data[0], W*H*(Bits div 8)); - end; + end; // While - CloseFile(F); + CloseFile(F); end; // fileexists end; diff --git a/Game/Code/Classes/UFiles.pas b/Game/Code/Classes/UFiles.pas index e6982a1a..008061a4 100644 --- a/Game/Code/Classes/UFiles.pas +++ b/Game/Code/Classes/UFiles.pas @@ -2,9 +2,12 @@ unit UFiles; interface -uses USongs, SysUtils, ULog, UMusic; +uses SysUtils, + ULog, + UMusic, + USongs; -procedure InitializePaths; //Function sets All Absolute Paths eg. for Songs +//procedure InitializePaths; //Function sets All Absolute Paths eg. for Songs function ReadTXTHeader(var Song: TSong): boolean; //Reads Standard TXT Header function AnalyseFile(var Song: TSong): boolean; //Analyse Song File and Read Header procedure ClearSong(var Song: TSong); //Clears Song Header values @@ -13,12 +16,13 @@ procedure ClearSong(var Song: TSong); //Clears Song Header values procedure ResetSingTemp; procedure ParseNote(NrCzesci: integer; TypeP: char; StartP, DurationP, NoteP: integer; LyricS: string); procedure NewSentence(NrCzesciP: integer; Param1, Param2: integer); -function LoadSong(Name: string): boolean; -function SaveSong(Song: TSong; Czesc: TCzesci; Name: string; Relative: boolean): boolean; +function LoadSong(Name: string): boolean; +function SaveSong(Song: TSong; Czesc: TCzesci; Name: string; Relative: boolean): boolean; var +{* //Absolute Paths GamePath: string; SoundPath: string; @@ -30,6 +34,7 @@ var LanguagesPath: string; PluginPath: string; PlayListPath: string; +*} SongFile: TextFile; // all procedures in this unit operates on this file FileLineNo: integer; //Line which is readed at Last, for error reporting @@ -41,57 +46,51 @@ var MultBPM: integer = 4; implementation -uses TextGL, UIni, UMain; +uses TextGL, + UIni, + UMain; +{* //-------------------- // Function sets all Absolute Paths e.g. Song Path and makes sure the Directorys exist //-------------------- procedure InitializePaths; -var - Writeable: Boolean; -begin - GamePath := ExtractFilePath(ParamStr(0)); - - SoundPath := GamePath + 'Sounds\'; - SongPath := GamePath + 'Songs\'; - LogPath := GamePath; - ThemePath := GamePath + 'Themes\'; - ScreenshotsPath := GamePath + 'Screenshots\'; - CoversPath := GamePath + 'Covers\'; - LanguagesPath := GamePath + 'Languages\'; - PluginPath := GamePath + 'Plugins\'; - PlaylistPath := GamePath + 'Playlists\'; - - //After Setting Paths, make sure that Paths exist - If not DirectoryExists(SoundPath) then - Writeable := ForceDirectories(SoundPath); - - If Writeable And (not DirectoryExists(SongPath)) then - Writeable := ForceDirectories(SongPath); - - If Writeable And (not DirectoryExists(ThemePath)) then - Writeable := ForceDirectories(ThemePath); - If Writeable And (not DirectoryExists(ScreenshotsPath)) then - Writeable := ForceDirectories(ScreenshotsPath); - - If Writeable And (not DirectoryExists(CoversPath)) then - Writeable := ForceDirectories(CoversPath); - - If Writeable And (not DirectoryExists(LanguagesPath)) then - Writeable := ForceDirectories(LanguagesPath); - - If Writeable And (not DirectoryExists(PluginPath)) then - Writeable := ForceDirectories(PluginPath); + // Initialize a Path Variable + // After Setting Paths, make sure that Paths exist + function initialize_path( out aPathVar : String; const aLocation : String ): boolean; + var + lWriteable: Boolean; + begin + aPathVar := aLocation; + + If DirectoryExists(aPathVar) then + lWriteable := ForceDirectories(aPathVar) + else + lWriteable := false; - If Writeable And (not DirectoryExists(PlaylistPath)) then - Writeable := ForceDirectories(PlaylistPath); + if not Writeable then + Log.LogError('Error: Dir ('+ aLocation +') is Readonly'); + + result := lWriteable; + end; - if not Writeable then - Log.LogError('Error: Dir is Readonly'); +begin + GamePath := ExtractFilePath(ParamStr(0)); + + initialize_path( LogPath , GamePath ); + initialize_path( SoundPath , GamePath + 'Sounds\' ); + initialize_path( SongPath , GamePath + 'Songs\' ); + initialize_path( ThemePath , GamePath + 'Themes\' ); + initialize_path( ScreenshotsPath , GamePath + 'Screenshots\'); + initialize_path( CoversPath , GamePath + 'Covers\' ); + initialize_path( LanguagesPath , GamePath + 'Languages\' ); + initialize_path( PluginPath , GamePath + 'Plugins\' ); + initialize_path( PlaylistPath , GamePath + 'Playlists\' ); DecimalSeparator := ','; end; +*} //-------------------- // Clears Song Header values @@ -99,29 +98,29 @@ end; procedure ClearSong(var Song: TSong); begin //Main Information - Song.Title := ''; + Song.Title := ''; Song.Artist := ''; //Sortings: - Song.Genre := 'Unknown'; - Song.Edition := 'Unknown'; + Song.Genre := 'Unknown'; + Song.Edition := 'Unknown'; Song.Language := 'Unknown'; //Language Patch //Required Information - Song.Mp3 := ''; - Song.BPM := 0; - Song.GAP := 0; - Song.Start := 0; + Song.Mp3 := ''; + Song.BPM := 0; + Song.GAP := 0; + Song.Start := 0; Song.Finish := 0; //Additional Information Song.Background := ''; - Song.Cover := ''; - Song.Video := ''; - Song.VideoGAP := 0; - Song.NotesGAP := 0; + Song.Cover := ''; + Song.Video := ''; + Song.VideoGAP := 0; + Song.NotesGAP := 0; Song.Resolution := 4; - Song.Creator := ''; + Song.Creator := ''; end; //-------------------- @@ -791,4 +790,4 @@ begin CloseFile(SongFile); end; -end. \ No newline at end of file +end. diff --git a/Game/Code/Classes/UIni.pas b/Game/Code/Classes/UIni.pas index 846c0deb..67649a51 100644 --- a/Game/Code/Classes/UIni.pas +++ b/Game/Code/Classes/UIni.pas @@ -162,7 +162,14 @@ const IChannel: array[0..6] of string = ('0', '1', '2', '3', '4', '5', '6'); implementation -uses UFiles, SDL, ULanguage, USkins, URecord, UCommandLine; + +uses //UFiles, + UMain, + SDL, + ULanguage, + USkins, + URecord, + UCommandLine; procedure TIni.Load; var diff --git a/Game/Code/Classes/ULanguage.pas b/Game/Code/Classes/ULanguage.pas index 4649c089..5deed1f7 100644 --- a/Game/Code/Classes/ULanguage.pas +++ b/Game/Code/Classes/ULanguage.pas @@ -36,7 +36,14 @@ var implementation -uses UFiles, UIni, IniFiles, Classes, SysUtils, Windows, ULog; +uses UMain, + // UFiles, + UIni, + IniFiles, + Classes, + SysUtils, + Windows, + ULog; //---------- //Create - Construct Class then LoadList + Standard Language + Set Standard Implode Glues diff --git a/Game/Code/Classes/ULog.pas b/Game/Code/Classes/ULog.pas index 9d20d2f1..2233ec1b 100644 --- a/Game/Code/Classes/ULog.pas +++ b/Game/Code/Classes/ULog.pas @@ -45,7 +45,17 @@ var Log: TLog; implementation -uses UFiles, SysUtils, DateUtils, URecord, UTime, UIni, Windows, UCommandLine; + +uses + Windows, + SysUtils, + DateUtils, +// UFiles, + UMain, + URecord, + UTime, +// UIni, // JB - Seems to not be needed. + UCommandLine; destructor TLog.Free; begin diff --git a/Game/Code/Classes/UMain.pas b/Game/Code/Classes/UMain.pas index 98e1acb4..43010bde 100644 --- a/Game/Code/Classes/UMain.pas +++ b/Game/Code/Classes/UMain.pas @@ -70,6 +70,18 @@ type var + //Absolute Paths + GamePath: string; + SoundPath: string; + SongPath: string; + LogPath: string; + ThemePath: string; + ScreenshotsPath: string; + CoversPath: string; + LanguagesPath: string; + PluginPath: string; + PlayListPath: string; + OGL: Boolean; Done: Boolean; Event: TSDL_event; @@ -80,6 +92,7 @@ var Player: array of TPlayer; PlayersPlay: integer; +procedure InitializePaths; procedure MainLoop; procedure CheckEvents; @@ -706,9 +719,47 @@ begin Player[PlayerNum].LineBonus_TargetX := 70 + PlayerNum*500; Player[PlayerNum].LineBonus_TargetY := 30; //PhrasenBonus - Line Bonus Mod End +end; + +//-------------------- +// Function sets all Absolute Paths e.g. Song Path and makes sure the Directorys exist +//-------------------- +procedure InitializePaths; + + // Initialize a Path Variable + // After Setting Paths, make sure that Paths exist + function initialize_path( out aPathVar : String; const aLocation : String ): boolean; + var + lWriteable: Boolean; + begin + aPathVar := aLocation; + + If DirectoryExists(aPathVar) then + lWriteable := ForceDirectories(aPathVar) + else + lWriteable := false; + + if not lWriteable then + Log.LogError('Error: Dir ('+ aLocation +') is Readonly'); + + result := lWriteable; + end; + +begin + GamePath := ExtractFilePath(ParamStr(0)); + initialize_path( LogPath , GamePath ); + initialize_path( SoundPath , GamePath + 'Sounds\' ); + initialize_path( SongPath , GamePath + 'Songs\' ); + initialize_path( ThemePath , GamePath + 'Themes\' ); + initialize_path( ScreenshotsPath , GamePath + 'Screenshots\'); + initialize_path( CoversPath , GamePath + 'Covers\' ); + initialize_path( LanguagesPath , GamePath + 'Languages\' ); + initialize_path( PluginPath , GamePath + 'Plugins\' ); + initialize_path( PlaylistPath , GamePath + 'Playlists\' ); + DecimalSeparator := ','; end; end. diff --git a/Game/Code/Classes/UPlaylist.pas b/Game/Code/Classes/UPlaylist.pas index e3f68239..1e517ef7 100644 --- a/Game/Code/Classes/UPlaylist.pas +++ b/Game/Code/Classes/UPlaylist.pas @@ -59,7 +59,14 @@ type implementation -uses USongs, ULog, UFiles, UGraphic, UThemes, SysUtils; + +uses USongs, + ULog, + UMain, + //UFiles, + UGraphic, + UThemes, + SysUtils; //---------- //Create - Construct Class - Dummy for now diff --git a/Game/Code/Classes/USongs.pas b/Game/Code/Classes/USongs.pas index edf5b6df..7065024b 100644 --- a/Game/Code/Classes/USongs.pas +++ b/Game/Code/Classes/USongs.pas @@ -96,7 +96,11 @@ var implementation -uses UFiles, UIni, StrUtils; +uses StrUtils, + UFiles, + UMain, + UIni; + procedure TSongs.LoadSongList; begin -- cgit v1.2.3