aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authortobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2009-03-21 23:51:48 +0000
committertobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2009-03-21 23:51:48 +0000
commitda59aa15bc4f42de0268d389a8d7dca1bbf19ee7 (patch)
tree2d122f2944decad2aac859a3630939e1b3f1e2f6 /src
parenta613385586f840f8aa9b91a8302ed5caa41a72c4 (diff)
downloadusdx-da59aa15bc4f42de0268d389a8d7dca1bbf19ee7.tar.gz
usdx-da59aa15bc4f42de0268d389a8d7dca1bbf19ee7.tar.xz
usdx-da59aa15bc4f42de0268d389a8d7dca1bbf19ee7.zip
party fix for linux:
- plugin-path from UPath used - calling convention must be cdecl for a non-windows os git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1646 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to 'src')
-rw-r--r--src/base/UDLLManager.pas23
-rw-r--r--src/screens/UScreenSingModi.pas29
2 files changed, 31 insertions, 21 deletions
diff --git a/src/base/UDLLManager.pas b/src/base/UDLLManager.pas
index cd4b7991..9ecee34a 100644
--- a/src/base/UDLLManager.pas
+++ b/src/base/UDLLManager.pas
@@ -69,8 +69,6 @@ var
DLLMan: TDLLMan;
const
- DLLPath = 'Plugins';
-
{$IF Defined(MSWINDOWS)}
DLLExt = '.dll';
{$ELSEIF Defined(DARWIN)}
@@ -87,6 +85,7 @@ uses
{$ELSE}
dynlibs,
{$ENDIF}
+ UPath,
ULog,
SysUtils;
@@ -104,7 +103,7 @@ var
SR: TSearchRec;
begin
- if FindFirst(DLLPath +PathDelim+ '*' + DLLExt, faAnyFile , SR) = 0 then
+ if FindFirst(PluginPath + '*' + DLLExt, faAnyFile , SR) = 0 then
begin
repeat
SetLength(Plugins, Length(Plugins)+1);
@@ -174,18 +173,18 @@ begin
exit; }
//Load Libary
- hLibg := LoadLibrary(PChar(DLLPath +PathDelim+ Filename));
+ hLibg := LoadLibrary(PChar(PluginPath + Filename));
//If Loaded
if (hLibg <> 0) then
begin
//Load Info Procedure
- @Info := GetProcAddress (hLibg, PChar('PluginInfo'));
+ @Info := GetProcAddress(hLibg, PChar('PluginInfo'));
//If Loaded
if (@Info <> nil) then
begin
//Load PluginInfo
- Info (Plugins[No]);
+ Info(Plugins[No]);
Result := True;
end
else
@@ -193,22 +192,22 @@ begin
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;
begin
Result := False;
//Load Libary
- hLib := LoadLibrary(PChar(DLLPath +PathDelim+ PluginPaths[No]));
+ hLib := LoadLibrary(PChar(PluginPath + PluginPaths[No]));
//If Loaded
if (hLib <> 0) then
begin
//Load Info Procedure
- @P_Init := GetProcAddress (hLib, PChar('Init'));
- @P_Draw := GetProcAddress (hLib, PChar('Draw'));
- @P_Finish := GetProcAddress (hLib, PChar('Finish'));
+ @P_Init := GetProcAddress (hLib, 'Init');
+ @P_Draw := GetProcAddress (hLib, 'Draw');
+ @P_Finish := GetProcAddress (hLib, 'Finish');
//If Loaded
if (@P_Init <> nil) And (@P_Draw <> nil) And (@P_Finish <> nil) then
diff --git a/src/screens/UScreenSingModi.pas b/src/screens/UScreenSingModi.pas
index 4ead8e55..a8bd7473 100644
--- a/src/screens/UScreenSingModi.pas
+++ b/src/screens/UScreenSingModi.pas
@@ -109,11 +109,19 @@ var
CustomSounds: array of TCustomSoundEntry;
//Procedured for Plugin
-function LoadTex (const Name: PChar; Typ: TTextureType): TsmallTexture; stdcall;
-//function Translate (const Name: PChar): PChar; stdcall;
-procedure Print (const Style, Size: Byte; const X, Y: Real; const Text: PChar); stdcall; //Procedure to Print Text
-function LoadSound (const Name: PChar): Cardinal; stdcall; //Procedure that loads a Custom Sound
-procedure PlaySound (const Index: Cardinal); stdcall; //Plays a Custom Sound
+function LoadTex(const Name: PChar; Typ: TTextureType): TsmallTexture;
+ {$IFDEF MSWINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
+//function Translate (const Name: PChar): PChar;
+// {$IFDEF MSWINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
+//Procedure to Print Text
+procedure Print(const Style, Size: Byte; const X, Y: Real; const Text: PChar);
+ {$IFDEF MSWINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
+//Procedure that loads a Custom Sound
+function LoadSound(const Name: PChar): Cardinal;
+ {$IFDEF MSWINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
+//Plays a Custom Sound
+procedure PlaySound(const Index: Cardinal);
+ {$IFDEF MSWINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
//Utilys
function ToSentences(Const Lines: TLines): TSentences;
@@ -665,7 +673,7 @@ Winner := DllMan.PluginFinish(PlayerInfo);
//DLLMan.UnLoadPlugin;
end;
-function LoadTex (const Name: PChar; Typ: TTextureType): TsmallTexture; stdcall;
+function LoadTex(const Name: PChar; Typ: TTextureType): TsmallTexture;
var
Texname, EXT: String;
Tex: TTexture;
@@ -691,7 +699,8 @@ begin
Result := PChar(Language.Translate(String(Name)));
end; }
-procedure Print(const Style, Size: Byte; const X, Y: Real; const Text: PChar); stdcall; //Procedure to Print Text
+//Procedure to Print Text
+procedure Print(const Style, Size: Byte; const X, Y: Real; const Text: PChar);
begin
SetFontItalic ((Style and 128) = 128);
SetFontStyle(Style and 7);
@@ -702,7 +711,8 @@ begin
glPrint (Language.Translate(String(Text)));
end;
-function LoadSound(const Name: PChar): Cardinal; stdcall; //Procedure that loads a Custom Sound
+//Procedure that loads a Custom Sound
+function LoadSound(const Name: PChar): Cardinal;
var
Stream: TAudioPlaybackStream;
i: Integer;
@@ -731,7 +741,8 @@ begin
Result := High(CustomSounds);
end;
-procedure PlaySound(const Index: Cardinal); stdcall; //Plays a Custom Sound
+//Plays a Custom Sound
+procedure PlaySound(const Index: Cardinal);
begin
if (Index <= High(CustomSounds)) then
AudioPlayback.PlaySound(CustomSounds[Index].Stream);