mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-15 14:18:37 +00:00
AGS: Plugin code cleanup, stubs for Galaxy/Steam plugins
This commit is contained in:
parent
e9300f33d5
commit
e6f7b43945
@ -36,13 +36,11 @@ public:
|
|||||||
|
|
||||||
virtual ~BaseLibrary() {}
|
virtual ~BaseLibrary() {}
|
||||||
|
|
||||||
virtual AGS::Shared::String GetFilenameForLib(AGS::Shared::String libraryName) = 0;
|
virtual bool Load(const AGS::Shared::String &libraryName) = 0;
|
||||||
|
|
||||||
virtual bool Load(AGS::Shared::String libraryName) = 0;
|
|
||||||
|
|
||||||
virtual bool Unload() = 0;
|
virtual bool Unload() = 0;
|
||||||
|
|
||||||
virtual void *GetFunctionAddress(AGS::Shared::String functionName) = 0;
|
virtual void *GetFunctionAddress(const AGS::Shared::String &functionName) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -50,17 +48,4 @@ public:
|
|||||||
} // namespace AGS
|
} // namespace AGS
|
||||||
} // namespace AGS3
|
} // namespace AGS3
|
||||||
|
|
||||||
#if AGS_PLATFORM_OS_WINDOWS
|
|
||||||
#include "ags/shared/library_windows.h"
|
|
||||||
|
|
||||||
#elif AGS_PLATFORM_OS_LINUX \
|
|
||||||
|| AGS_PLATFORM_OS_MACOS \
|
|
||||||
|| AGS_PLATFORM_OS_ANDROID
|
|
||||||
#include "ags/engine/util/library_posix.h"
|
|
||||||
|
|
||||||
#elif AGS_PLATFORM_OS_IOS
|
|
||||||
#include "ags/engine/util/library_dummy.h"
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,143 +0,0 @@
|
|||||||
/* ScummVM - Graphic Adventure Engine
|
|
||||||
*
|
|
||||||
* ScummVM is the legal property of its developers, whose names
|
|
||||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
||||||
* file distributed with this source distribution.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AGS_ENGINE_UTIL_LIBRARY_POSIX_H
|
|
||||||
#define AGS_ENGINE_UTIL_LIBRARY_POSIX_H
|
|
||||||
|
|
||||||
//include <dlfcn.h>
|
|
||||||
#include "ags/shared/core/platform.h"
|
|
||||||
#include "ags/shared/util/string.h"
|
|
||||||
#include "ags/shared/debugging/out.h"
|
|
||||||
#include "ags/plugins/library.h"
|
|
||||||
#include "ags/engine/globals.h"
|
|
||||||
|
|
||||||
namespace AGS3 {
|
|
||||||
|
|
||||||
// FIXME: Replace with a unified way to get the directory which contains the engine binary
|
|
||||||
#if AGS_PLATFORM_OS_ANDROID
|
|
||||||
extern char android_app_directory[256];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
namespace AGS {
|
|
||||||
namespace Engine {
|
|
||||||
|
|
||||||
|
|
||||||
class PosixLibrary : BaseLibrary {
|
|
||||||
public:
|
|
||||||
PosixLibrary()
|
|
||||||
: _library(nullptr) {
|
|
||||||
};
|
|
||||||
|
|
||||||
~PosixLibrary() override {
|
|
||||||
Unload();
|
|
||||||
};
|
|
||||||
|
|
||||||
AGS::Shared::String BuildFilename(AGS::Shared::String libraryName) {
|
|
||||||
return String::FromFormat(
|
|
||||||
#if AGS_PLATFORM_OS_MACOS
|
|
||||||
"lib%s.dylib"
|
|
||||||
#else
|
|
||||||
"lib%s.so"
|
|
||||||
#endif
|
|
||||||
, libraryName.GetCStr());
|
|
||||||
}
|
|
||||||
|
|
||||||
AGS::Shared::String BuildPath(const char *path, AGS::Shared::String libraryName) {
|
|
||||||
AGS::Shared::String platformLibraryName = "";
|
|
||||||
if (path) {
|
|
||||||
platformLibraryName = path;
|
|
||||||
platformLibraryName.Append("/");
|
|
||||||
}
|
|
||||||
platformLibraryName.Append(BuildFilename(libraryName));
|
|
||||||
|
|
||||||
AGS::Shared::Debug::Printf("Built library path: %s", platformLibraryName.GetCStr());
|
|
||||||
return platformLibraryName;
|
|
||||||
}
|
|
||||||
|
|
||||||
AGS::Shared::String GetFilenameForLib(AGS::Shared::String libraryName) override {
|
|
||||||
return BuildFilename(libraryName);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Load(AGS::Shared::String libraryName) override {
|
|
||||||
Unload();
|
|
||||||
|
|
||||||
// Try rpath first
|
|
||||||
_library = dlopen(BuildPath(nullptr, libraryName).GetCStr(), RTLD_LAZY);
|
|
||||||
AGS::Shared::Debug::Printf("dlopen returned: %s", dlerror());
|
|
||||||
if (_library != nullptr) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Try current path
|
|
||||||
_library = dlopen(BuildPath(".", libraryName).GetCStr(), RTLD_LAZY);
|
|
||||||
|
|
||||||
AGS::Shared::Debug::Printf("dlopen returned: %s", dlerror());
|
|
||||||
|
|
||||||
if (_library == nullptr) {
|
|
||||||
// Try the engine directory
|
|
||||||
|
|
||||||
#if AGS_PLATFORM_OS_ANDROID
|
|
||||||
char buffer[200];
|
|
||||||
sprintf(buffer, "%s%s", android_app_directory, "/lib");
|
|
||||||
_library = dlopen(BuildPath(buffer, libraryName).GetCStr(), RTLD_LAZY);
|
|
||||||
#else
|
|
||||||
_library = dlopen(BuildPath(_G(appDirectory), libraryName).GetCStr(), RTLD_LAZY);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
AGS::Shared::Debug::Printf("dlopen returned: %s", dlerror());
|
|
||||||
}
|
|
||||||
|
|
||||||
return (_library != nullptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Unload() override {
|
|
||||||
if (_library) {
|
|
||||||
void *lib = _library;
|
|
||||||
_library = nullptr;
|
|
||||||
|
|
||||||
return (dlclose(lib) == 0);
|
|
||||||
} else {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void *GetFunctionAddress(AGS::Shared::String functionName) override {
|
|
||||||
if (_library) {
|
|
||||||
return dlsym(_library, functionName.GetCStr());
|
|
||||||
} else {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
void *_library;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
typedef PosixLibrary Library;
|
|
||||||
|
|
||||||
} // namespace Engine
|
|
||||||
} // namespace AGS
|
|
||||||
} // namespace AGS3
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,134 +0,0 @@
|
|||||||
/* ScummVM - Graphic Adventure Engine
|
|
||||||
*
|
|
||||||
* ScummVM is the legal property of its developers, whose names
|
|
||||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
||||||
* file distributed with this source distribution.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AGS_ENGINE_UTIL_LIBRARY_PSP_H
|
|
||||||
#define AGS_ENGINE_UTIL_LIBRARY_PSP_H
|
|
||||||
|
|
||||||
//include <pspsdk.h>
|
|
||||||
#include "ags/shared/util/string.h"
|
|
||||||
#include "ags/shared/debugging/out.h"
|
|
||||||
|
|
||||||
namespace AGS3 {
|
|
||||||
namespace AGS {
|
|
||||||
namespace Engine {
|
|
||||||
|
|
||||||
class PSPLibrary : BaseLibrary {
|
|
||||||
public:
|
|
||||||
PSPLibrary()
|
|
||||||
: _library(-1) {
|
|
||||||
};
|
|
||||||
|
|
||||||
virtual ~PSPLibrary() {
|
|
||||||
Unload();
|
|
||||||
};
|
|
||||||
|
|
||||||
AGS::Shared::String BuildPath(char *path, AGS::Shared::String libraryName) {
|
|
||||||
AGS::Shared::String platformLibraryName = path;
|
|
||||||
platformLibraryName.Append(libraryName);
|
|
||||||
platformLibraryName.Append(".prx");
|
|
||||||
|
|
||||||
AGS::Shared::Debug::Printf("Built library path: %s", platformLibraryName.GetCStr());
|
|
||||||
|
|
||||||
return platformLibraryName;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Load(AGS::Shared::String libraryName) {
|
|
||||||
Unload();
|
|
||||||
|
|
||||||
// Try current path
|
|
||||||
_library = pspSdkLoadStartModule(BuildPath("./", libraryName).GetCStr(), PSP_MEMORY_PARTITION_USER);
|
|
||||||
|
|
||||||
if (_library < 0) {
|
|
||||||
// Try one directory higher, usually the AGS base directory
|
|
||||||
_library = pspSdkLoadStartModule(BuildPath("../", libraryName).GetCStr(), PSP_MEMORY_PARTITION_USER);
|
|
||||||
}
|
|
||||||
|
|
||||||
// The PSP module and PSP library name are assumed to be the same as the file name
|
|
||||||
_moduleName = libraryName;
|
|
||||||
_moduleName.MakeLower();
|
|
||||||
|
|
||||||
AGS::Shared::Debug::Printf("Result is %s %d", _moduleName.GetCStr(), _library);
|
|
||||||
|
|
||||||
return (_library > -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Unload() {
|
|
||||||
if (_library > -1) {
|
|
||||||
return (sceKernelUnloadModule(_library) > -1);
|
|
||||||
} else {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void *GetFunctionAddress(AGS::Shared::String functionName) {
|
|
||||||
if (_library > -1) {
|
|
||||||
// On the PSP functions are identified by an ID that is the first 4 byte of the SHA1 of the name.
|
|
||||||
int functionId;
|
|
||||||
|
|
||||||
#if 1
|
|
||||||
// Hardcoded values for plugin loading.
|
|
||||||
if (functionName == "AGS_PluginV2") {
|
|
||||||
functionId = 0x960C49BD;
|
|
||||||
} else if (functionName == "AGS_EngineStartup") {
|
|
||||||
functionId = 0x0F13D9E8;
|
|
||||||
} else if (functionName == "AGS_EngineShutdown") {
|
|
||||||
functionId = 0x2F131C76;
|
|
||||||
} else if (functionName == "AGS_EngineOnEvent") {
|
|
||||||
functionId = 0xE3DFFC5A;
|
|
||||||
} else if (functionName == "AGS_EngineDebugHook") {
|
|
||||||
functionId = 0xC37D6879;
|
|
||||||
} else if (functionName == "AGS_EngineInitGfx") {
|
|
||||||
functionId = 0xA428D254;
|
|
||||||
} else {
|
|
||||||
AGS::Shared::Debug::Printf("Function ID not found: %s", functionName.GetCStr());
|
|
||||||
functionId = -1;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
// This is a possible SHA1 implementation.
|
|
||||||
SceKernelUtilsSha1Context ctx;
|
|
||||||
uint8_t digest[20];
|
|
||||||
sceKernelUtilsSha1BlockInit(&ctx);
|
|
||||||
sceKernelUtilsSha1BlockUpdate(&ctx, (uint8_t *)functionName.GetCStr(), functionName.GetLength());
|
|
||||||
sceKernelUtilsSha1BlockResult(&ctx, digest);
|
|
||||||
|
|
||||||
functionId = strtol(digest, NULL, 8);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return (void *)kernel_sctrlHENFindFunction((char *)_moduleName.GetCStr(), (char *)_moduleName.GetCStr(), functionId);
|
|
||||||
} else {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
SceUID _library;
|
|
||||||
AGS::Shared::String _moduleName;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
typedef PSPLibrary Library;
|
|
||||||
|
|
||||||
} // namespace Engine
|
|
||||||
} // namespace AGS
|
|
||||||
} // namespace AGS3
|
|
||||||
|
|
||||||
#endif
|
|
@ -20,39 +20,64 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef AGS_ENGINE_UTIL_LIBRARY_DUMMY_H
|
#ifndef AGS_ENGINE_UTIL_LIBRARY_SCUMMVM_H
|
||||||
#define AGS_ENGINE_UTIL_LIBRARY_DUMMY_H
|
#define AGS_ENGINE_UTIL_LIBRARY_SCUMMVM_H
|
||||||
|
|
||||||
|
#include "ags/shared/core/platform.h"
|
||||||
|
#include "ags/shared/util/string.h"
|
||||||
|
#include "ags/shared/debugging/out.h"
|
||||||
|
#include "ags/plugins/dll.h"
|
||||||
|
#include "ags/engine/globals.h"
|
||||||
|
|
||||||
namespace AGS3 {
|
namespace AGS3 {
|
||||||
|
|
||||||
namespace AGS {
|
namespace AGS {
|
||||||
namespace Engine {
|
namespace Engine {
|
||||||
|
|
||||||
class DummyLibrary : BaseLibrary {
|
class ScummVMLibrary : BaseLibrary {
|
||||||
public:
|
public:
|
||||||
DummyLibrary() {
|
ScummVMLibrary()
|
||||||
|
: _library(nullptr) {
|
||||||
};
|
};
|
||||||
|
|
||||||
~DummyLibrary() override {
|
~ScummVMLibrary() override {
|
||||||
|
Unload();
|
||||||
};
|
};
|
||||||
|
|
||||||
AGS::Shared::String GetFilenameForLib(AGS::Shared::String libraryName) override {
|
bool Load(const AGS::Shared::String &libraryName) override {
|
||||||
return libraryName;
|
Unload();
|
||||||
}
|
|
||||||
|
|
||||||
bool Load(AGS::Shared::String libraryName) override {
|
_library = Plugins::pluginOpen(libraryName.GetCStr());
|
||||||
return false;
|
AGS::Shared::Debug::Printf("pluginOpen returned: %s", Plugins::pluginError());
|
||||||
|
|
||||||
|
return (_library != nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Unload() override {
|
bool Unload() override {
|
||||||
return true;
|
if (_library) {
|
||||||
|
void *lib = _library;
|
||||||
|
_library = nullptr;
|
||||||
|
|
||||||
|
return (Plugins::pluginClose(lib) == 0);
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void *GetFunctionAddress(AGS::Shared::String functionName) override {
|
void *GetFunctionAddress(const AGS::Shared::String &functionName) override {
|
||||||
return NULL;
|
if (_library) {
|
||||||
|
return Plugins::pluginSym(_library, functionName.GetCStr());
|
||||||
|
} else {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
void *_library;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef DummyLibrary Library;
|
|
||||||
|
typedef ScummVMLibrary Library;
|
||||||
|
|
||||||
} // namespace Engine
|
} // namespace Engine
|
||||||
} // namespace AGS
|
} // namespace AGS
|
@ -1,108 +0,0 @@
|
|||||||
/* ScummVM - Graphic Adventure Engine
|
|
||||||
*
|
|
||||||
* ScummVM is the legal property of its developers, whose names
|
|
||||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
||||||
* file distributed with this source distribution.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AGS_ENGINE_UTIL_LIBRARY_WINDOWS_H
|
|
||||||
#define AGS_ENGINE_UTIL_LIBRARY_WINDOWS_H
|
|
||||||
|
|
||||||
#include "ags/shared/debugging/out.h"
|
|
||||||
#include "ags/shared/platform/windows/winapi_exclusive.h"
|
|
||||||
#include "ags/shared/util/string.h"
|
|
||||||
|
|
||||||
namespace AGS3 {
|
|
||||||
|
|
||||||
// Because this class may be exposed to generic code in sake of inlining,
|
|
||||||
// we should avoid including <windows.h> full of macros with common names.
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
WINBASEAPI BOOL WINAPI FreeLibrary(HMODULE hLibModule);
|
|
||||||
WINBASEAPI FARPROC WINAPI GetProcAddress(HMODULE hModule, LPCSTR lpProcName);
|
|
||||||
WINBASEAPI HMODULE WINAPI LoadLibraryA(LPCSTR lpLibFileName);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
} // extern "C"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
namespace AGS {
|
|
||||||
namespace Engine {
|
|
||||||
|
|
||||||
|
|
||||||
class WindowsLibrary : BaseLibrary {
|
|
||||||
public:
|
|
||||||
WindowsLibrary()
|
|
||||||
: _library(NULL) {
|
|
||||||
};
|
|
||||||
|
|
||||||
virtual ~WindowsLibrary() {
|
|
||||||
Unload();
|
|
||||||
};
|
|
||||||
|
|
||||||
AGS::Shared::String BuildFilename(AGS::Shared::String libraryName) {
|
|
||||||
return String::FromFormat("%s.dll", libraryName.GetCStr());
|
|
||||||
}
|
|
||||||
|
|
||||||
AGS::Shared::String BuildPath(AGS::Shared::String libraryName) {
|
|
||||||
AGS::Shared::String platformLibraryName = BuildFilename(libraryName);
|
|
||||||
|
|
||||||
AGS::Shared::Debug::Printf("Built library path: %s", platformLibraryName.GetCStr());
|
|
||||||
|
|
||||||
return platformLibraryName;
|
|
||||||
}
|
|
||||||
|
|
||||||
AGS::Shared::String GetFilenameForLib(AGS::Shared::String libraryName) override {
|
|
||||||
return BuildFilename(libraryName);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Load(AGS::Shared::String libraryName) {
|
|
||||||
Unload();
|
|
||||||
|
|
||||||
_library = LoadLibraryA(BuildPath(libraryName).GetCStr());
|
|
||||||
|
|
||||||
return (_library != NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Unload() {
|
|
||||||
if (_library) {
|
|
||||||
return (FreeLibrary(_library) != 0);
|
|
||||||
} else {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void *GetFunctionAddress(AGS::Shared::String functionName) {
|
|
||||||
return GetProcAddress(_library, functionName.GetCStr());
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
HANDLE _library;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
typedef WindowsLibrary Library;
|
|
||||||
|
|
||||||
} // namespace Engine
|
|
||||||
} // namespace AGS
|
|
||||||
} // namespace AGS3
|
|
||||||
|
|
||||||
#endif
|
|
@ -288,11 +288,11 @@ MODULE_OBJS = \
|
|||||||
plugins/agsplugin.o \
|
plugins/agsplugin.o \
|
||||||
plugins/dll.o \
|
plugins/dll.o \
|
||||||
plugins/global_plugin.o \
|
plugins/global_plugin.o \
|
||||||
plugins/library.o \
|
|
||||||
plugins/pluginobjectreader.o \
|
plugins/pluginobjectreader.o \
|
||||||
plugins/ags_blend/ags_blend.o \
|
plugins/ags_blend/ags_blend.o \
|
||||||
plugins/ags_creditz/ags_creditz.o \
|
plugins/ags_creditz/ags_creditz.o \
|
||||||
plugins/ags_flashlight/ags_flashlight.o \
|
plugins/ags_flashlight/ags_flashlight.o \
|
||||||
|
plugins/ags_galaxy_steam/ags_galaxy_steam.o \
|
||||||
plugins/ags_pal_render/ags_pal_render.o \
|
plugins/ags_pal_render/ags_pal_render.o \
|
||||||
plugins/ags_pal_render/raycast.o \
|
plugins/ags_pal_render/raycast.o \
|
||||||
plugins/ags_parallax/ags_parallax.o \
|
plugins/ags_parallax/ags_parallax.o \
|
||||||
@ -304,8 +304,7 @@ MODULE_OBJS = \
|
|||||||
plugins/ags_sprite_font/sprite_font.o \
|
plugins/ags_sprite_font/sprite_font.o \
|
||||||
plugins/ags_sprite_font/sprite_font_renderer.o \
|
plugins/ags_sprite_font/sprite_font_renderer.o \
|
||||||
plugins/ags_sprite_font/variable_width_font.o \
|
plugins/ags_sprite_font/variable_width_font.o \
|
||||||
plugins/ags_sprite_font/variable_width_sprite_font.o \
|
plugins/ags_sprite_font/variable_width_sprite_font.o
|
||||||
plugins/ags_steam/ags_steam.o
|
|
||||||
|
|
||||||
ifdef ENABLE_AGS_SCANNER
|
ifdef ENABLE_AGS_SCANNER
|
||||||
MODULE_OBJS += \
|
MODULE_OBJS += \
|
||||||
|
356
engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.cpp
Normal file
356
engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.cpp
Normal file
@ -0,0 +1,356 @@
|
|||||||
|
/* ScummVM - Graphic Adventure Engine
|
||||||
|
*
|
||||||
|
* ScummVM is the legal property of its developers, whose names
|
||||||
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||||
|
* file distributed with this source distribution.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ags/plugins/ags_galaxy_steam/ags_galaxy_steam.h"
|
||||||
|
|
||||||
|
namespace AGS3 {
|
||||||
|
namespace Plugins {
|
||||||
|
namespace AGSGalaxySteam {
|
||||||
|
|
||||||
|
AGS2Client::AGS2Client() : DLL() {
|
||||||
|
DLL_METHOD(AGS_EngineStartup);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGS2Client::AGS_EngineStartup(IAGSEngine *engine) {
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::IsAchievementAchieved^1, IsAchievementAchieved);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::SetAchievementAchieved^1, SetAchievementAchieved);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::ResetAchievement^1, ResetAchievement);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::GetIntStat^1, GetIntStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::GetFloatStat^1, GetFloatStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::GetAverageRateStat^1, GetAverageRateStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::SetIntStat^2, SetIntStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::SetFloatStat^2, SetFloatStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::UpdateAverageRateStat^3, UpdateAverageRateStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::ResetStatsAndAchievements^0, ResetStatsAndAchievements);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::get_Initialized, get_Initialized);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::get_CurrentLeaderboardName, get_CurrentLeaderboardName);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::RequestLeaderboard^3, RequestLeaderboard);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::UploadScore^1, UploadScore);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::geti_LeaderboardNames, geti_LeaderboardNames);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::geti_LeaderboardScores, geti_LeaderboardScores);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::get_LeaderboardCount, get_LeaderboardCount);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::GetUserName^0, GetUserName);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::GetCurrentGameLanguage^0, GetCurrentGameLanguage);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::FindLeaderboard^1, FindLeaderboard);
|
||||||
|
SCRIPT_METHOD_EXT(AGS2Client::Initialize^2, Initialize);
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGS2Client::IsAchievementAchieved(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGS2Client::SetAchievementAchieved(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGS2Client::ResetAchievement(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGS2Client::GetIntStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGS2Client::GetFloatStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGS2Client::GetAverageRateStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGS2Client::SetIntStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGS2Client::SetFloatStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGS2Client::UpdateAverageRateStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGS2Client::ResetStatsAndAchievements(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGS2Client::get_Initialized(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGS2Client::get_CurrentLeaderboardName(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGS2Client::RequestLeaderboard(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGS2Client::UploadScore(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGS2Client::geti_LeaderboardNames(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGS2Client::geti_LeaderboardScores(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGS2Client::get_LeaderboardCount(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGS2Client::GetUserName(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGS2Client::GetCurrentGameLanguage(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGS2Client::FindLeaderboard(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGS2Client::Initialize(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
AGSGalaxy::AGSGalaxy() : AGS2Client() {
|
||||||
|
DLL_METHOD(AGS_GetPluginName);
|
||||||
|
DLL_METHOD(AGS_EngineStartup);
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *AGSGalaxy::AGS_GetPluginName() {
|
||||||
|
return "AGSGalaxy";
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGSGalaxy::AGS_EngineStartup(IAGSEngine *engine) {
|
||||||
|
AGS2Client::AGS_EngineStartup(engine);
|
||||||
|
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::IsAchievementAchieved^1, IsAchievementAchieved);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::SetAchievementAchieved^1, SetAchievementAchieved);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::ResetAchievement^1, ResetAchievement);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::GetIntStat^1, GetIntStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::GetFloatStat^1, GetFloatStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::GetAverageRateStat^1, GetAverageRateStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::SetIntStat^2, SetIntStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::SetFloatStat^2, SetFloatStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::UpdateAverageRateStat^3, UpdateAverageRateStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::ResetStatsAndAchievements^0, ResetStatsAndAchievements);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::get_Initialized, get_Initialized);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::get_CurrentLeaderboardName, get_CurrentLeaderboardName);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::RequestLeaderboard^3, RequestLeaderboard);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::UploadScore^1, UploadScore);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::geti_LeaderboardNames, geti_LeaderboardNames);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::geti_LeaderboardScores, geti_LeaderboardScores);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::get_LeaderboardCount, get_LeaderboardCount);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::GetUserName^0, GetUserName);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::GetCurrentGameLanguage^0, GetCurrentGameLanguage);
|
||||||
|
SCRIPT_METHOD_EXT(AGSGalaxy::Initialize^2, Initialize);
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSGalaxy::IsAchievementAchieved(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSGalaxy::SetAchievementAchieved(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSGalaxy::ResetAchievement(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSGalaxy::GetIntStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSGalaxy::GetFloatStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSGalaxy::GetAverageRateStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSGalaxy::SetIntStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSGalaxy::SetFloatStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSGalaxy::UpdateAverageRateStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGSGalaxy::ResetStatsAndAchievements(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSGalaxy::get_Initialized(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGSGalaxy::get_CurrentLeaderboardName(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGSGalaxy::RequestLeaderboard(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSGalaxy::UploadScore(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGSGalaxy::geti_LeaderboardNames(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSGalaxy::geti_LeaderboardScores(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSGalaxy::get_LeaderboardCount(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGSGalaxy::GetUserName(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGSGalaxy::GetCurrentGameLanguage(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSGalaxy::Initialize(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
AGSSteam::AGSSteam() : AGS2Client() {
|
||||||
|
DLL_METHOD(AGS_GetPluginName);
|
||||||
|
DLL_METHOD(AGS_EngineStartup);
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *AGSSteam::AGS_GetPluginName() {
|
||||||
|
return "AGSSteam";
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGSSteam::AGS_EngineStartup(IAGSEngine *engine) {
|
||||||
|
AGS2Client::AGS_EngineStartup(engine);
|
||||||
|
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::IsAchievementAchieved^1, IsAchievementAchieved);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::SetAchievementAchieved^1, SetAchievementAchieved);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::ResetAchievement^1, ResetAchievement);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::GetIntStat^1, GetIntStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::GetFloatStat^1, GetFloatStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::GetAverageRateStat^1, GetAverageRateStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::SetIntStat^2, SetIntStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::SetFloatStat^2, SetFloatStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::UpdateAverageRateStat^3, UpdateAverageRateStat);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::ResetStatsAndAchievements^0, ResetStatsAndAchievements);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::get_Initialized, get_Initialized);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::get_CurrentLeaderboardName, get_CurrentLeaderboardName);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::RequestLeaderboard^3, RequestLeaderboard);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::UploadScore^1, UploadScore);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::geti_LeaderboardNames, geti_LeaderboardNames);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::geti_LeaderboardScores, geti_LeaderboardScores);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::get_LeaderboardCount, get_LeaderboardCount);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::GetUserName^0, GetUserName);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::GetCurrentGameLanguage^0, GetCurrentGameLanguage);
|
||||||
|
SCRIPT_METHOD_EXT(AGSteam::FindLeaderboard^1, FindLeaderboard);
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSSteam::IsAchievementAchieved(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSSteam::SetAchievementAchieved(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSSteam::ResetAchievement(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSSteam::GetIntStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSSteam::GetFloatStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSSteam::GetAverageRateStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSSteam::SetIntStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSSteam::SetFloatStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSSteam::UpdateAverageRateStat(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGSSteam::ResetStatsAndAchievements(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSSteam::get_Initialized(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGSSteam::get_CurrentLeaderboardName(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGSSteam::RequestLeaderboard(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSSteam::UploadScore(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGSSteam::geti_LeaderboardNames(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSSteam::geti_LeaderboardScores(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSSteam::get_LeaderboardCount(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGSSteam::GetUserName(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void AGSSteam::GetCurrentGameLanguage(const ScriptMethodParams ¶ms) {
|
||||||
|
}
|
||||||
|
|
||||||
|
int AGSSteam::FindLeaderboard(const ScriptMethodParams ¶ms) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace AGSGalaxySteam
|
||||||
|
} // namespace Plugins
|
||||||
|
} // namespace AGS3
|
130
engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.h
Normal file
130
engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.h
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
/* ScummVM - Graphic Adventure Engine
|
||||||
|
*
|
||||||
|
* ScummVM is the legal property of its developers, whose names
|
||||||
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||||
|
* file distributed with this source distribution.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or(at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef AGS_PLUGINS_AGS_GALAXY_STEAM_AGS_GALAXY_STEAM_H
|
||||||
|
#define AGS_PLUGINS_AGS_GALAXY_STEAM_AGS_GALAXY_STEAM_H
|
||||||
|
|
||||||
|
#include "ags/plugins/dll.h"
|
||||||
|
#include "common/array.h"
|
||||||
|
#include "common/rect.h"
|
||||||
|
#include "common/str.h"
|
||||||
|
|
||||||
|
namespace AGS3 {
|
||||||
|
namespace Plugins {
|
||||||
|
namespace AGSGalaxySteam {
|
||||||
|
|
||||||
|
class AGS2Client : public DLL {
|
||||||
|
private:
|
||||||
|
static int IsAchievementAchieved(const ScriptMethodParams ¶ms);
|
||||||
|
static int SetAchievementAchieved(const ScriptMethodParams ¶ms);
|
||||||
|
static int ResetAchievement(const ScriptMethodParams ¶ms);
|
||||||
|
static int GetIntStat(const ScriptMethodParams ¶ms);
|
||||||
|
static int GetFloatStat(const ScriptMethodParams ¶ms);
|
||||||
|
static int GetAverageRateStat(const ScriptMethodParams ¶ms);
|
||||||
|
static int SetIntStat(const ScriptMethodParams ¶ms);
|
||||||
|
static int SetFloatStat(const ScriptMethodParams ¶ms);
|
||||||
|
static int UpdateAverageRateStat(const ScriptMethodParams ¶ms);
|
||||||
|
static void ResetStatsAndAchievements(const ScriptMethodParams ¶ms);
|
||||||
|
static int get_Initialized(const ScriptMethodParams ¶ms);
|
||||||
|
static void get_CurrentLeaderboardName(const ScriptMethodParams ¶ms);
|
||||||
|
static void RequestLeaderboard(const ScriptMethodParams ¶ms);
|
||||||
|
static int UploadScore(const ScriptMethodParams ¶ms);
|
||||||
|
static void geti_LeaderboardNames(const ScriptMethodParams ¶ms);
|
||||||
|
static int geti_LeaderboardScores(const ScriptMethodParams ¶ms);
|
||||||
|
static int get_LeaderboardCount(const ScriptMethodParams ¶ms);
|
||||||
|
static void GetUserName(const ScriptMethodParams ¶ms);
|
||||||
|
static void GetCurrentGameLanguage(const ScriptMethodParams ¶ms);
|
||||||
|
static void FindLeaderboard(const ScriptMethodParams ¶ms);
|
||||||
|
static int Initialize(const ScriptMethodParams ¶ms);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
static void AGS_EngineStartup(IAGSEngine *engine);
|
||||||
|
|
||||||
|
public:
|
||||||
|
AGS2Client();
|
||||||
|
};
|
||||||
|
|
||||||
|
class AGSGalaxy : public AGS2Client {
|
||||||
|
private:
|
||||||
|
static const char *AGS_GetPluginName();
|
||||||
|
static void AGS_EngineStartup(IAGSEngine *engine);
|
||||||
|
|
||||||
|
static int IsAchievementAchieved(const ScriptMethodParams ¶ms);
|
||||||
|
static int SetAchievementAchieved(const ScriptMethodParams ¶ms);
|
||||||
|
static int ResetAchievement(const ScriptMethodParams ¶ms);
|
||||||
|
static int GetIntStat(const ScriptMethodParams ¶ms);
|
||||||
|
static int GetFloatStat(const ScriptMethodParams ¶ms);
|
||||||
|
static int GetAverageRateStat(const ScriptMethodParams ¶ms);
|
||||||
|
static int SetIntStat(const ScriptMethodParams ¶ms);
|
||||||
|
static int SetFloatStat(const ScriptMethodParams ¶ms);
|
||||||
|
static int UpdateAverageRateStat(const ScriptMethodParams ¶ms);
|
||||||
|
static void ResetStatsAndAchievements(const ScriptMethodParams ¶ms);
|
||||||
|
static int get_Initialized(const ScriptMethodParams ¶ms);
|
||||||
|
static void get_CurrentLeaderboardName(const ScriptMethodParams ¶ms);
|
||||||
|
static void RequestLeaderboard(const ScriptMethodParams ¶ms);
|
||||||
|
static int UploadScore(const ScriptMethodParams ¶ms);
|
||||||
|
static void geti_LeaderboardNames(const ScriptMethodParams ¶ms);
|
||||||
|
static int geti_LeaderboardScores(const ScriptMethodParams ¶ms);
|
||||||
|
static int get_LeaderboardCount(const ScriptMethodParams ¶ms);
|
||||||
|
static void GetUserName(const ScriptMethodParams ¶ms);
|
||||||
|
static void GetCurrentGameLanguage(const ScriptMethodParams ¶ms);
|
||||||
|
static int Initialize(const ScriptMethodParams ¶ms);
|
||||||
|
|
||||||
|
public:
|
||||||
|
AGSGalaxy();
|
||||||
|
};
|
||||||
|
|
||||||
|
class AGSSteam : public AGS2Client {
|
||||||
|
private:
|
||||||
|
static const char *AGS_GetPluginName();
|
||||||
|
static void AGS_EngineStartup(IAGSEngine *engine);
|
||||||
|
|
||||||
|
static int IsAchievementAchieved(const ScriptMethodParams ¶ms);
|
||||||
|
static int SetAchievementAchieved(const ScriptMethodParams ¶ms);
|
||||||
|
static int ResetAchievement(const ScriptMethodParams ¶ms);
|
||||||
|
static int GetIntStat(const ScriptMethodParams ¶ms);
|
||||||
|
static int GetFloatStat(const ScriptMethodParams ¶ms);
|
||||||
|
static int GetAverageRateStat(const ScriptMethodParams ¶ms);
|
||||||
|
static int SetIntStat(const ScriptMethodParams ¶ms);
|
||||||
|
static int SetFloatStat(const ScriptMethodParams ¶ms);
|
||||||
|
static int UpdateAverageRateStat(const ScriptMethodParams ¶ms);
|
||||||
|
static void ResetStatsAndAchievements(const ScriptMethodParams ¶ms);
|
||||||
|
static int get_Initialized(const ScriptMethodParams ¶ms);
|
||||||
|
static void get_CurrentLeaderboardName(const ScriptMethodParams ¶ms);
|
||||||
|
static void RequestLeaderboard(const ScriptMethodParams ¶ms);
|
||||||
|
static int UploadScore(const ScriptMethodParams ¶ms);
|
||||||
|
static void geti_LeaderboardNames(const ScriptMethodParams ¶ms);
|
||||||
|
static int geti_LeaderboardScores(const ScriptMethodParams ¶ms);
|
||||||
|
static int get_LeaderboardCount(const ScriptMethodParams ¶ms);
|
||||||
|
static void GetUserName(const ScriptMethodParams ¶ms);
|
||||||
|
static void GetCurrentGameLanguage(const ScriptMethodParams ¶ms);
|
||||||
|
static int FindLeaderboard(const ScriptMethodParams ¶ms);
|
||||||
|
|
||||||
|
public:
|
||||||
|
AGSSteam();
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace AGSGalaxySteam
|
||||||
|
} // namespace Plugins
|
||||||
|
} // namespace AGS3
|
||||||
|
|
||||||
|
#endif
|
@ -1,43 +0,0 @@
|
|||||||
/* ScummVM - Graphic Adventure Engine
|
|
||||||
*
|
|
||||||
* ScummVM is the legal property of its developers, whose names
|
|
||||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
||||||
* file distributed with this source distribution.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ags/plugins/ags_steam/ags_steam.h"
|
|
||||||
|
|
||||||
namespace AGS3 {
|
|
||||||
namespace Plugins {
|
|
||||||
namespace AGSSteam {
|
|
||||||
|
|
||||||
AGSSteam::AGSSteam() {
|
|
||||||
DLL_METHOD(AGS_GetPluginName);
|
|
||||||
DLL_METHOD(AGS_EngineStartup);
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *AGSSteam::AGS_GetPluginName() {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
void AGSSteam::AGS_EngineStartup(IAGSEngine *engine) {
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace AGSSteam
|
|
||||||
} // namespace Plugins
|
|
||||||
} // namespace AGS3
|
|
@ -1,49 +0,0 @@
|
|||||||
/* ScummVM - Graphic Adventure Engine
|
|
||||||
*
|
|
||||||
* ScummVM is the legal property of its developers, whose names
|
|
||||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
||||||
* file distributed with this source distribution.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or(at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AGS_PLUGINS_AGSSTEAM_AGSSTEAM_H
|
|
||||||
#define AGS_PLUGINS_AGSSTEAM_AGSSTEAM_H
|
|
||||||
|
|
||||||
#include "ags/plugins/dll.h"
|
|
||||||
#include "common/array.h"
|
|
||||||
#include "common/rect.h"
|
|
||||||
#include "common/str.h"
|
|
||||||
|
|
||||||
namespace AGS3 {
|
|
||||||
namespace Plugins {
|
|
||||||
namespace AGSSteam {
|
|
||||||
|
|
||||||
class AGSSteam : public DLL {
|
|
||||||
private:
|
|
||||||
static const char *AGS_GetPluginName();
|
|
||||||
static void AGS_EngineStartup(IAGSEngine *engine);
|
|
||||||
|
|
||||||
public:
|
|
||||||
AGSSteam();
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
} // namespace AGSSteam
|
|
||||||
} // namespace Plugins
|
|
||||||
} // namespace AGS3
|
|
||||||
|
|
||||||
#endif
|
|
@ -73,19 +73,9 @@
|
|||||||
#include "ags/shared/util/memory.h"
|
#include "ags/shared/util/memory.h"
|
||||||
#include "ags/shared/util/filestream.h"
|
#include "ags/shared/util/filestream.h"
|
||||||
#include "ags/engine/media/audio/audio_system.h"
|
#include "ags/engine/media/audio/audio_system.h"
|
||||||
#include "ags/engine/util/library.h"
|
|
||||||
#include "ags/engine/globals.h"
|
#include "ags/engine/globals.h"
|
||||||
|
#include "ags/engine/util/library.h"
|
||||||
#if defined(BUILTIN_PLUGINS)
|
#include "ags/engine/util/library_scummvm.h"
|
||||||
#include "ags/shared/../Plugins/AGSflashlight/agsflashlight.h"
|
|
||||||
#include "ags/shared/../Plugins/agsblend/agsblend.h"
|
|
||||||
#include "ags/shared/../Plugins/ags_snowrain/ags_snowrain.h"
|
|
||||||
#include "ags/shared/../Plugins/ags_parallax/ags_parallax.h"
|
|
||||||
#include "ags/shared/../Plugins/agspalrender/agspalrender.h"
|
|
||||||
#if AGS_PLATFORM_OS_IOS
|
|
||||||
#include "ags/shared/../Plugins/agstouch/agstouch.h"
|
|
||||||
#endif // AGS_PLATFORM_OS_IOS
|
|
||||||
#endif // BUILTIN_PLUGINS
|
|
||||||
|
|
||||||
namespace AGS3 {
|
namespace AGS3 {
|
||||||
|
|
||||||
@ -1028,7 +1018,7 @@ Engine::GameInitError pl_register_plugins(const std::vector<Shared::PluginInfo>
|
|||||||
strcpy(apl->filename, "ags_snowrain");
|
strcpy(apl->filename, "ags_snowrain");
|
||||||
}
|
}
|
||||||
|
|
||||||
String expect_filename = apl->library.GetFilenameForLib(apl->filename);
|
String expect_filename = apl->filename;
|
||||||
if (apl->library.Load(apl->filename)) {
|
if (apl->library.Load(apl->filename)) {
|
||||||
AGS::Shared::Debug::Printf(kDbgMsg_Info, "Plugin '%s' loaded as '%s', resolving imports...", apl->filename, expect_filename.GetCStr());
|
AGS::Shared::Debug::Printf(kDbgMsg_Info, "Plugin '%s' loaded as '%s', resolving imports...", apl->filename, expect_filename.GetCStr());
|
||||||
|
|
||||||
|
@ -25,10 +25,10 @@
|
|||||||
#include "ags/plugins/ags_blend/ags_blend.h"
|
#include "ags/plugins/ags_blend/ags_blend.h"
|
||||||
#include "ags/plugins/ags_creditz/ags_creditz.h"
|
#include "ags/plugins/ags_creditz/ags_creditz.h"
|
||||||
#include "ags/plugins/ags_flashlight/ags_flashlight.h"
|
#include "ags/plugins/ags_flashlight/ags_flashlight.h"
|
||||||
|
#include "ags/plugins/ags_galaxy_steam/ags_galaxy_steam.h"
|
||||||
#include "ags/plugins/ags_pal_render/ags_pal_render.h"
|
#include "ags/plugins/ags_pal_render/ags_pal_render.h"
|
||||||
#include "ags/plugins/ags_snow_rain/ags_snow_rain.h"
|
#include "ags/plugins/ags_snow_rain/ags_snow_rain.h"
|
||||||
#include "ags/plugins/ags_sprite_font/ags_sprite_font.h"
|
#include "ags/plugins/ags_sprite_font/ags_sprite_font.h"
|
||||||
#include "ags/plugins/ags_steam/ags_steam.h"
|
|
||||||
#include "ags/ags.h"
|
#include "ags/ags.h"
|
||||||
#include "ags/detection.h"
|
#include "ags/detection.h"
|
||||||
#include "common/str.h"
|
#include "common/str.h"
|
||||||
@ -36,59 +36,64 @@
|
|||||||
namespace AGS3 {
|
namespace AGS3 {
|
||||||
namespace Plugins {
|
namespace Plugins {
|
||||||
|
|
||||||
void *dlopen(const char *filename) {
|
void *pluginOpen(const char *filename) {
|
||||||
Common::String fname(filename);
|
Common::String fname(filename);
|
||||||
|
|
||||||
// Check for if the game specifies a specific plugin version for this game
|
// Check for if the game specifies a specific plugin version for this game
|
||||||
int version = 0;
|
int version = 0;
|
||||||
for (const ::AGS::PluginVersion *v = ::AGS::g_vm->getNeededPlugins();
|
for (const ::AGS::PluginVersion *v = ::AGS::g_vm->getNeededPlugins();
|
||||||
v && v->_plugin; ++v) {
|
v && v->_plugin; ++v) {
|
||||||
if (Common::String::format("lib%s.so", v->_plugin).equalsIgnoreCase(filename)) {
|
if (Common::String(v->_plugin).equalsIgnoreCase(filename)) {
|
||||||
version = v->_version;
|
version = v->_version;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fname.equalsIgnoreCase("libAGSBlend.so"))
|
if (fname.equalsIgnoreCase("AGSBlend"))
|
||||||
return new AGSBlend::AGSBlend();
|
return new AGSBlend::AGSBlend();
|
||||||
|
|
||||||
if (fname.equalsIgnoreCase("libagsCreditz.so")) {
|
if (fname.equalsIgnoreCase("agsCreditz")) {
|
||||||
if (version == 20)
|
if (version == 20)
|
||||||
return new AGSCreditz::AGSCreditz20();
|
return new AGSCreditz::AGSCreditz20();
|
||||||
else
|
else
|
||||||
return new AGSCreditz::AGSCreditz11();
|
return new AGSCreditz::AGSCreditz11();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fname.equalsIgnoreCase("libAGSFlashlight.so"))
|
if (fname.equalsIgnoreCase("AGSFlashlight"))
|
||||||
return new AGSFlashlight::AGSFlashlight();
|
return new AGSFlashlight::AGSFlashlight();
|
||||||
|
|
||||||
if (fname.equalsIgnoreCase("libAGSPalRender.so"))
|
if (fname.equalsIgnoreCase("AGSPalRender"))
|
||||||
return new AGSPalRender::AGSPalRender();
|
return new AGSPalRender::AGSPalRender();
|
||||||
|
|
||||||
if (fname.equalsIgnoreCase("libAGSSnowRain.so"))
|
if (fname.equalsIgnoreCase("AGSSnowRain"))
|
||||||
return new AGSSnowRain::AGSSnowRain();
|
return new AGSSnowRain::AGSSnowRain();
|
||||||
|
|
||||||
if (fname.equalsIgnoreCase("libAGSSpriteFont.so"))
|
if (fname.equalsIgnoreCase("AGSSpriteFont"))
|
||||||
return new AGSSpriteFont::AGSSpriteFont();
|
return new AGSSpriteFont::AGSSpriteFont();
|
||||||
|
|
||||||
if (fname.equalsIgnoreCase("libagsteam.so"))
|
if (fname.equalsIgnoreCase("agsgalaxy") || fname.equalsIgnoreCase("agsgalaxy-unified") ||
|
||||||
return new AGSSteam::AGSSteam();
|
fname.equalsIgnoreCase("agsgalaxy-disjoint"))
|
||||||
|
return new AGSGalaxySteam::AGSGalaxy();
|
||||||
|
|
||||||
|
if (fname.equalsIgnoreCase("agsteam") || fname.equalsIgnoreCase("agsteam-unified") ||
|
||||||
|
fname.equalsIgnoreCase("agsteam-disjoint"))
|
||||||
|
return new AGSGalaxySteam::AGSSteam();
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
int dlclose(void *lib) {
|
int pluginClose(void *lib) {
|
||||||
DLL *dll = static_cast<DLL *>(lib);
|
DLL *dll = static_cast<DLL *>(lib);
|
||||||
delete dll;
|
delete dll;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *dlsym(void *lib, const char *method) {
|
void *pluginSym(void *lib, const char *method) {
|
||||||
DLL *dll = static_cast<DLL *>(lib);
|
DLL *dll = static_cast<DLL *>(lib);
|
||||||
return (*dll)[method];
|
return (*dll)[method];
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *dlerror() {
|
const char *pluginError() {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,13 +112,13 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void *dlopen(const char *filename);
|
extern void *pluginOpen(const char *filename);
|
||||||
|
|
||||||
extern int dlclose(void *lib);
|
extern int pluginClose(void *lib);
|
||||||
|
|
||||||
extern void *dlsym(void *lib, const char *method);
|
extern void *pluginSym(void *lib, const char *method);
|
||||||
|
|
||||||
extern const char *dlerror();
|
extern const char *pluginError();
|
||||||
|
|
||||||
} // namespace Plugins
|
} // namespace Plugins
|
||||||
} // namespace AGS3
|
} // namespace AGS3
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
/* ScummVM - Graphic Adventure Engine
|
|
||||||
*
|
|
||||||
* ScummVM is the legal property of its developers, whose names
|
|
||||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
||||||
* file distributed with this source distribution.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "ags/plugins/library.h"
|
|
||||||
#include "ags/plugins/dll.h"
|
|
||||||
|
|
||||||
namespace AGS3 {
|
|
||||||
|
|
||||||
void *dlopen(const char *filename, bool) {
|
|
||||||
return Plugins::dlopen(filename);
|
|
||||||
}
|
|
||||||
|
|
||||||
int dlclose(void *lib) {
|
|
||||||
return Plugins::dlclose(lib);
|
|
||||||
}
|
|
||||||
|
|
||||||
void *dlsym(void *lib, const char *method) {
|
|
||||||
return Plugins::dlsym(lib, method);
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *dlerror() {
|
|
||||||
return Plugins::dlerror();
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace AGS3
|
|
@ -1,40 +0,0 @@
|
|||||||
/* ScummVM - Graphic Adventure Engine
|
|
||||||
*
|
|
||||||
* ScummVM is the legal property of its developers, whose names
|
|
||||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
||||||
* file distributed with this source distribution.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AGS_ENGINE_PLUGIN_LIBRARY_H
|
|
||||||
#define AGS_ENGINE_PLUGIN_LIBRARY_H
|
|
||||||
|
|
||||||
namespace AGS3 {
|
|
||||||
|
|
||||||
#define RTLD_LAZY true
|
|
||||||
|
|
||||||
extern void *dlopen(const char *filename, bool);
|
|
||||||
|
|
||||||
extern int dlclose(void *lib);
|
|
||||||
|
|
||||||
extern void *dlsym(void *lib, const char *method);
|
|
||||||
|
|
||||||
extern const char *dlerror();
|
|
||||||
|
|
||||||
} // namespace AGS3
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
Reference in New Issue
Block a user