aboutsummaryrefslogtreecommitdiffstats
path: root/unicode/src/base/UDLLManager.pas
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--unicode/src/base/UDLLManager.pas194
1 files changed, 90 insertions, 104 deletions
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);