From 94cefdb78044e0f9996e3032de34b690de98b708 Mon Sep 17 00:00:00 2001 From: tobigun Date: Thu, 23 Jul 2009 12:34:07 +0000 Subject: - revert to 1777 - Ocean.ini and SVN properties are not reverted git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/branches/experimental@1854 b956fd51-792f-4845-bead-9b4dfca2ff2c --- unicode/src/base/UDLLManager.pas | 194 ++++++++++++++++++--------------------- 1 file changed, 90 insertions(+), 104 deletions(-) (limited to 'unicode/src/base/UDLLManager.pas') diff --git a/unicode/src/base/UDLLManager.pas b/unicode/src/base/UDLLManager.pas index 3faa15bf..cd4b7991 100644 --- a/unicode/src/base/UDLLManager.pas +++ b/unicode/src/base/UDLLManager.pas @@ -40,42 +40,37 @@ uses type TDLLMan = class private - hLib: THandle; + hLib: THandle; P_Init: fModi_Init; P_Draw: fModi_Draw; P_Finish: fModi_Finish; P_RData: pModi_RData; public Plugins: array of TPluginInfo; - PluginPaths: array of string; + PluginPaths: array of String; Selected: ^TPluginInfo; constructor Create; procedure GetPluginList; - procedure ClearPluginInfo(No: cardinal); - function LoadPluginInfo(Filename: string; No: cardinal): boolean; + procedure ClearPluginInfo(No: Cardinal); + function LoadPluginInfo(Filename: String; No: Cardinal): boolean; - function LoadPlugin(No: cardinal): boolean; + function LoadPlugin(No: Cardinal): boolean; procedure UnLoadPlugin; - function PluginInit (const TeamInfo: TTeamInfo; - var Playerinfo: TPlayerinfo; - const Sentences: TSentences; - const LoadTex: fModi_LoadTex; - const Print: fModi_Print; - LoadSound: fModi_LoadSound; - PlaySound: pModi_PlaySound) - : boolean; - function PluginDraw (var Playerinfo: TPlayerinfo; const CurSentence: cardinal): boolean; + function PluginInit (const TeamInfo: TTeamInfo; var Playerinfo: TPlayerinfo; const Sentences: TSentences; const LoadTex: fModi_LoadTex; const Print: fModi_Print; LoadSound: fModi_LoadSound; PlaySound: pModi_PlaySound): boolean; + function PluginDraw (var Playerinfo: TPlayerinfo; const CurSentence: Cardinal): boolean; function PluginFinish (var Playerinfo: TPlayerinfo): byte; - procedure PluginRData (handle: HSTREAM; buffer: Pointer; len: dword; user: dword); + procedure PluginRData (handle: HSTREAM; buffer: Pointer; len: DWORD; user: DWORD); end; var DLLMan: TDLLMan; const + DLLPath = 'Plugins'; + {$IF Defined(MSWINDOWS)} DLLExt = '.dll'; {$ELSEIF Defined(DARWIN)} @@ -92,7 +87,6 @@ uses {$ELSE} dynlibs, {$ENDIF} - UPath, ULog, SysUtils; @@ -107,33 +101,33 @@ end; procedure TDLLMan.GetPluginList; var - SearchRecord: TSearchRec; + SR: TSearchRec; begin - if FindFirst(PluginPath + '*' + DLLExt, faAnyFile, SearchRecord) = 0 then + if FindFirst(DLLPath +PathDelim+ '*' + DLLExt, faAnyFile , SR) = 0 then begin repeat SetLength(Plugins, Length(Plugins)+1); SetLength(PluginPaths, Length(Plugins)); - if LoadPluginInfo(SearchRecord.Name, High(Plugins)) then // loaded succesful + if LoadPluginInfo(SR.Name, High(Plugins)) then //Loaded succesful begin - PluginPaths[High(PluginPaths)] := SearchRecord.Name; + PluginPaths[High(PluginPaths)] := SR.Name; end - else // error loading + else //Error Loading begin SetLength(Plugins, Length(Plugins)-1); SetLength(PluginPaths, Length(Plugins)); end; - until FindNext(SearchRecord) <> 0; - FindClose(SearchRecord); + until FindNext(SR) <> 0; + FindClose(SR); end; end; -procedure TDLLMan.ClearPluginInfo(No: cardinal); +procedure TDLLMan.ClearPluginInfo(No: Cardinal); begin -// set to party modi plugin + //Set to Party Modi Plugin Plugins[No].Typ := 8; Plugins[No].Name := 'unknown'; @@ -142,117 +136,109 @@ begin Plugins[No].Creator := 'Nobody'; Plugins[No].PluginDesc := 'NO_PLUGIN_DESC'; - Plugins[No].LoadSong := true; - Plugins[No].ShowScore := true; - Plugins[No].ShowBars := true; - Plugins[No].ShowNotes := true; - Plugins[No].LoadVideo := true; - Plugins[No].LoadBack := true; + Plugins[No].LoadSong := True; + Plugins[No].ShowScore := True; + Plugins[No].ShowBars := False; + Plugins[No].ShowNotes := True; + Plugins[No].LoadVideo := True; + Plugins[No].LoadBack := True; - Plugins[No].TeamModeOnly := true; - Plugins[No].GetSoundData := true; - Plugins[No].Dummy := true; + Plugins[No].TeamModeOnly := False; + Plugins[No].GetSoundData := False; + Plugins[No].Dummy := False; - Plugins[No].BGShowFull := true; - Plugins[No].BGShowFull_O := true; + Plugins[No].BGShowFull := False; + Plugins[No].BGShowFull_O := True; - Plugins[No].ShowRateBar := true; - Plugins[No].ShowRateBar_O := true; + Plugins[No].ShowRateBar:= False; + Plugins[No].ShowRateBar_O := True; - Plugins[No].EnLineBonus := true; - Plugins[No].EnLineBonus_O := true; + Plugins[No].EnLineBonus := False; + Plugins[No].EnLineBonus_O := True; end; -function TDLLMan.LoadPluginInfo(Filename: string; No: cardinal): boolean; +function TDLLMan.LoadPluginInfo(Filename: String; No: Cardinal): boolean; var hLibg: THandle; Info: pModi_PluginInfo; -// I: integer; + //I: Integer; begin - Result := true; -// clear plugin info + Result := False; + //Clear Plugin Info ClearPluginInfo(No); -{ -// workaround plugins loaded 2 times - for i := low(pluginpaths) to high(pluginpaths) do - if (pluginpaths[i] = filename) then - exit; -} + {//Workaround Plugins Loaded 2 Times + For I := low(PluginPaths) to high(PluginPaths) do + if (PluginPaths[I] = Filename) then + exit; } -// load libary - hLibg := LoadLibrary(PChar(PluginPath + Filename)); -// if loaded + //Load Libary + hLibg := LoadLibrary(PChar(DLLPath +PathDelim+ Filename)); + //If Loaded if (hLibg <> 0) then begin -// load info procedure - @Info := GetProcAddress(hLibg, PChar('PluginInfo')); + //Load Info Procedure + @Info := GetProcAddress (hLibg, PChar('PluginInfo')); -// if loaded + //If Loaded if (@Info <> nil) then begin -// load plugininfo - Info(Plugins[No]); - Result := true; + //Load PluginInfo + Info (Plugins[No]); + Result := True; end else - Log.LogError('Could not load plugin "' + Filename + '": Info procedure not found'); + Log.LogError('Could not Load Plugin "' + Filename + '": Info Procedure not Found'); FreeLibrary (hLibg); end - else - Log.LogError('Could not load plugin "' + Filename + '": Libary not loaded'); + else + Log.LogError('Could not Load Plugin "' + Filename + '": Libary not Loaded'); end; -function TDLLMan.LoadPlugin(No: cardinal): boolean; +function TDLLMan.LoadPlugin(No: Cardinal): boolean; begin - Result := true; -// load libary - hLib := LoadLibrary(PChar(PluginPath + PluginPaths[No])); -// if loaded + Result := False; + //Load Libary + hLib := LoadLibrary(PChar(DLLPath +PathDelim+ PluginPaths[No])); + //If Loaded if (hLib <> 0) then begin -// load info procedure - @P_Init := GetProcAddress (hLib, 'Init'); - @P_Draw := GetProcAddress (hLib, 'Draw'); - @P_Finish := GetProcAddress (hLib, 'Finish'); + //Load Info Procedure + @P_Init := GetProcAddress (hLib, PChar('Init')); + @P_Draw := GetProcAddress (hLib, PChar('Draw')); + @P_Finish := GetProcAddress (hLib, PChar('Finish')); -// if loaded - if (@P_Init <> nil) and (@P_Draw <> nil) and (@P_Finish <> nil) then + //If Loaded + if (@P_Init <> nil) And (@P_Draw <> nil) And (@P_Finish <> nil) then begin Selected := @Plugins[No]; - Result := true; + Result := True; end else begin - Log.LogError('Could not load plugin "' + PluginPaths[No] + '": Procedures not found'); + Log.LogError('Could not Load Plugin "' + PluginPaths[No] + '": Procedures not Found'); + end; end - else - Log.LogError('Could not load plugin "' + PluginPaths[No] + '": Libary not loaded'); + else + Log.LogError('Could not Load Plugin "' + PluginPaths[No] + '": Libary not Loaded'); end; procedure TDLLMan.UnLoadPlugin; begin - if (hLib <> 0) then - FreeLibrary (hLib); - -// Selected := nil; - @P_Init := nil; - @P_Draw := nil; - @P_Finish := nil; - @P_RData := nil; +if (hLib <> 0) then + FreeLibrary (hLib); + +//Selected := nil; +@P_Init := nil; +@P_Draw := nil; +@P_Finish := nil; +@P_RData := nil; end; -function TDLLMan.PluginInit (const TeamInfo: TTeamInfo; - var Playerinfo: TPlayerinfo; - const Sentences: TSentences; - const LoadTex: fModi_LoadTex; - const Print: fModi_Print; - LoadSound: fModi_LoadSound; - PlaySound: pModi_PlaySound) - : boolean; +function TDLLMan.PluginInit (const TeamInfo: TTeamInfo; var Playerinfo: TPlayerinfo; const Sentences: TSentences; const LoadTex: fModi_LoadTex; const Print: fModi_Print; LoadSound: fModi_LoadSound; PlaySound: pModi_PlaySound): boolean; var Methods: TMethodRec; begin @@ -264,26 +250,26 @@ begin if (@P_Init <> nil) then Result := P_Init (TeamInfo, PlayerInfo, Sentences, Methods) else - Result := true + Result := False end; -function TDLLMan.PluginDraw (var Playerinfo: TPlayerinfo; const CurSentence: cardinal): boolean; +function TDLLMan.PluginDraw (var Playerinfo: TPlayerinfo; const CurSentence: Cardinal): boolean; begin - if (@P_Draw <> nil) then - Result := P_Draw (PlayerInfo, CurSentence) - else - Result := true +if (@P_Draw <> nil) then + Result := P_Draw (PlayerInfo, CurSentence) +else + Result := False end; function TDLLMan.PluginFinish (var Playerinfo: TPlayerinfo): byte; begin - if (@P_Finish <> nil) then - Result := P_Finish (PlayerInfo) - else - Result := 0; +if (@P_Finish <> nil) then + Result := P_Finish (PlayerInfo) +else + Result := 0; end; -procedure TDLLMan.PluginRData (handle: HStream; buffer: Pointer; len: dword; user: dword); +procedure TDLLMan.PluginRData (handle: HSTREAM; buffer: Pointer; len: DWORD; user: DWORD); begin if (@P_RData <> nil) then P_RData (handle, buffer, len, user); -- cgit v1.2.3