[Scummvm-git-logs] scummvm master -> e6f7b43945b3b3a30544b69f4cbfed8190b738de
dreammaster
dreammaster at scummvm.org
Mon Feb 8 02:34:18 UTC 2021
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
e6f7b43945 AGS: Plugin code cleanup, stubs for Galaxy/Steam plugins
Commit: e6f7b43945b3b3a30544b69f4cbfed8190b738de
https://github.com/scummvm/scummvm/commit/e6f7b43945b3b3a30544b69f4cbfed8190b738de
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2021-02-07T17:56:37-08:00
Commit Message:
AGS: Plugin code cleanup, stubs for Galaxy/Steam plugins
Changed paths:
A engines/ags/engine/util/library_scummvm.h
A engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.cpp
A engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.h
R engines/ags/engine/util/library_dummy.h
R engines/ags/engine/util/library_posix.h
R engines/ags/engine/util/library_psp.h
R engines/ags/engine/util/library_windows.h
R engines/ags/plugins/ags_steam/ags_steam.cpp
R engines/ags/plugins/ags_steam/ags_steam.h
R engines/ags/plugins/library.cpp
R engines/ags/plugins/library.h
engines/ags/engine/util/library.h
engines/ags/module.mk
engines/ags/plugins/agsplugin.cpp
engines/ags/plugins/dll.cpp
engines/ags/plugins/dll.h
diff --git a/engines/ags/engine/util/library.h b/engines/ags/engine/util/library.h
index c91c62964d..8aaeab4b63 100644
--- a/engines/ags/engine/util/library.h
+++ b/engines/ags/engine/util/library.h
@@ -36,13 +36,11 @@ public:
virtual ~BaseLibrary() {}
- virtual AGS::Shared::String GetFilenameForLib(AGS::Shared::String libraryName) = 0;
-
- virtual bool Load(AGS::Shared::String libraryName) = 0;
+ virtual bool Load(const AGS::Shared::String &libraryName) = 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 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
diff --git a/engines/ags/engine/util/library_posix.h b/engines/ags/engine/util/library_posix.h
deleted file mode 100644
index bc9152d0d1..0000000000
--- a/engines/ags/engine/util/library_posix.h
+++ /dev/null
@@ -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
diff --git a/engines/ags/engine/util/library_psp.h b/engines/ags/engine/util/library_psp.h
deleted file mode 100644
index 10b95d2431..0000000000
--- a/engines/ags/engine/util/library_psp.h
+++ /dev/null
@@ -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
diff --git a/engines/ags/engine/util/library_dummy.h b/engines/ags/engine/util/library_scummvm.h
similarity index 52%
rename from engines/ags/engine/util/library_dummy.h
rename to engines/ags/engine/util/library_scummvm.h
index 0972228b30..760a0b0017 100644
--- a/engines/ags/engine/util/library_dummy.h
+++ b/engines/ags/engine/util/library_scummvm.h
@@ -20,39 +20,64 @@
*
*/
-#ifndef AGS_ENGINE_UTIL_LIBRARY_DUMMY_H
-#define AGS_ENGINE_UTIL_LIBRARY_DUMMY_H
+#ifndef AGS_ENGINE_UTIL_LIBRARY_SCUMMVM_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 AGS {
namespace Engine {
-class DummyLibrary : BaseLibrary {
+class ScummVMLibrary : BaseLibrary {
public:
- DummyLibrary() {
+ ScummVMLibrary()
+ : _library(nullptr) {
};
- ~DummyLibrary() override {
+ ~ScummVMLibrary() override {
+ Unload();
};
- AGS::Shared::String GetFilenameForLib(AGS::Shared::String libraryName) override {
- return libraryName;
- }
+ bool Load(const AGS::Shared::String &libraryName) override {
+ Unload();
+
+ _library = Plugins::pluginOpen(libraryName.GetCStr());
+ AGS::Shared::Debug::Printf("pluginOpen returned: %s", Plugins::pluginError());
- bool Load(AGS::Shared::String libraryName) override {
- return false;
+ return (_library != nullptr);
}
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 {
- return NULL;
+ void *GetFunctionAddress(const AGS::Shared::String &functionName) override {
+ if (_library) {
+ return Plugins::pluginSym(_library, functionName.GetCStr());
+ } else {
+ return nullptr;
+ }
}
+
+private:
+ void *_library;
};
-typedef DummyLibrary Library;
+
+typedef ScummVMLibrary Library;
} // namespace Engine
} // namespace AGS
diff --git a/engines/ags/engine/util/library_windows.h b/engines/ags/engine/util/library_windows.h
deleted file mode 100644
index 8f7c2ab881..0000000000
--- a/engines/ags/engine/util/library_windows.h
+++ /dev/null
@@ -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
diff --git a/engines/ags/module.mk b/engines/ags/module.mk
index a51a8ad285..0b9123cea9 100644
--- a/engines/ags/module.mk
+++ b/engines/ags/module.mk
@@ -288,11 +288,11 @@ MODULE_OBJS = \
plugins/agsplugin.o \
plugins/dll.o \
plugins/global_plugin.o \
- plugins/library.o \
plugins/pluginobjectreader.o \
plugins/ags_blend/ags_blend.o \
plugins/ags_creditz/ags_creditz.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/raycast.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_renderer.o \
plugins/ags_sprite_font/variable_width_font.o \
- plugins/ags_sprite_font/variable_width_sprite_font.o \
- plugins/ags_steam/ags_steam.o
+ plugins/ags_sprite_font/variable_width_sprite_font.o
ifdef ENABLE_AGS_SCANNER
MODULE_OBJS += \
diff --git a/engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.cpp b/engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.cpp
new file mode 100644
index 0000000000..5a22f1c4b0
--- /dev/null
+++ b/engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.cpp
@@ -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
diff --git a/engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.h b/engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.h
new file mode 100644
index 0000000000..e966c54a22
--- /dev/null
+++ b/engines/ags/plugins/ags_galaxy_steam/ags_galaxy_steam.h
@@ -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
diff --git a/engines/ags/plugins/ags_steam/ags_steam.cpp b/engines/ags/plugins/ags_steam/ags_steam.cpp
deleted file mode 100644
index aa4a38aef9..0000000000
--- a/engines/ags/plugins/ags_steam/ags_steam.cpp
+++ /dev/null
@@ -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
diff --git a/engines/ags/plugins/ags_steam/ags_steam.h b/engines/ags/plugins/ags_steam/ags_steam.h
deleted file mode 100644
index 41c447dc72..0000000000
--- a/engines/ags/plugins/ags_steam/ags_steam.h
+++ /dev/null
@@ -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
diff --git a/engines/ags/plugins/agsplugin.cpp b/engines/ags/plugins/agsplugin.cpp
index 07fccba737..01f7df28b6 100644
--- a/engines/ags/plugins/agsplugin.cpp
+++ b/engines/ags/plugins/agsplugin.cpp
@@ -73,19 +73,9 @@
#include "ags/shared/util/memory.h"
#include "ags/shared/util/filestream.h"
#include "ags/engine/media/audio/audio_system.h"
-#include "ags/engine/util/library.h"
#include "ags/engine/globals.h"
-
-#if defined(BUILTIN_PLUGINS)
-#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
+#include "ags/engine/util/library.h"
+#include "ags/engine/util/library_scummvm.h"
namespace AGS3 {
@@ -1028,7 +1018,7 @@ Engine::GameInitError pl_register_plugins(const std::vector<Shared::PluginInfo>
strcpy(apl->filename, "ags_snowrain");
}
- String expect_filename = apl->library.GetFilenameForLib(apl->filename);
+ String expect_filename = 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());
diff --git a/engines/ags/plugins/dll.cpp b/engines/ags/plugins/dll.cpp
index 87cadef04e..4c2fdfca95 100644
--- a/engines/ags/plugins/dll.cpp
+++ b/engines/ags/plugins/dll.cpp
@@ -25,10 +25,10 @@
#include "ags/plugins/ags_blend/ags_blend.h"
#include "ags/plugins/ags_creditz/ags_creditz.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_snow_rain/ags_snow_rain.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/detection.h"
#include "common/str.h"
@@ -36,59 +36,64 @@
namespace AGS3 {
namespace Plugins {
-void *dlopen(const char *filename) {
+void *pluginOpen(const char *filename) {
Common::String fname(filename);
// Check for if the game specifies a specific plugin version for this game
int version = 0;
for (const ::AGS::PluginVersion *v = ::AGS::g_vm->getNeededPlugins();
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;
break;
}
}
- if (fname.equalsIgnoreCase("libAGSBlend.so"))
+ if (fname.equalsIgnoreCase("AGSBlend"))
return new AGSBlend::AGSBlend();
- if (fname.equalsIgnoreCase("libagsCreditz.so")) {
+ if (fname.equalsIgnoreCase("agsCreditz")) {
if (version == 20)
return new AGSCreditz::AGSCreditz20();
else
return new AGSCreditz::AGSCreditz11();
}
- if (fname.equalsIgnoreCase("libAGSFlashlight.so"))
+ if (fname.equalsIgnoreCase("AGSFlashlight"))
return new AGSFlashlight::AGSFlashlight();
- if (fname.equalsIgnoreCase("libAGSPalRender.so"))
+ if (fname.equalsIgnoreCase("AGSPalRender"))
return new AGSPalRender::AGSPalRender();
- if (fname.equalsIgnoreCase("libAGSSnowRain.so"))
+ if (fname.equalsIgnoreCase("AGSSnowRain"))
return new AGSSnowRain::AGSSnowRain();
- if (fname.equalsIgnoreCase("libAGSSpriteFont.so"))
+ if (fname.equalsIgnoreCase("AGSSpriteFont"))
return new AGSSpriteFont::AGSSpriteFont();
- if (fname.equalsIgnoreCase("libagsteam.so"))
- return new AGSSteam::AGSSteam();
+ if (fname.equalsIgnoreCase("agsgalaxy") || fname.equalsIgnoreCase("agsgalaxy-unified") ||
+ 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;
}
-int dlclose(void *lib) {
+int pluginClose(void *lib) {
DLL *dll = static_cast<DLL *>(lib);
delete dll;
return 0;
}
-void *dlsym(void *lib, const char *method) {
+void *pluginSym(void *lib, const char *method) {
DLL *dll = static_cast<DLL *>(lib);
return (*dll)[method];
}
-const char *dlerror() {
+const char *pluginError() {
return nullptr;
}
diff --git a/engines/ags/plugins/dll.h b/engines/ags/plugins/dll.h
index b6406d9f5a..034be5774c 100644
--- a/engines/ags/plugins/dll.h
+++ b/engines/ags/plugins/dll.h
@@ -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 AGS3
diff --git a/engines/ags/plugins/library.cpp b/engines/ags/plugins/library.cpp
deleted file mode 100644
index 1fe645d8fc..0000000000
--- a/engines/ags/plugins/library.cpp
+++ /dev/null
@@ -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
diff --git a/engines/ags/plugins/library.h b/engines/ags/plugins/library.h
deleted file mode 100644
index 4679f9c642..0000000000
--- a/engines/ags/plugins/library.h
+++ /dev/null
@@ -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
More information about the Scummvm-git-logs
mailing list