[Scummvm-git-logs] scummvm master -> cb830ebc467cb2a4d17596382356ddea5a4fb15e
tag2015
noreply at scummvm.org
Thu Aug 7 21:16:23 UTC 2025
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
e3e42a75eb AGS: Implement AGSFileDel plugin
5ada9807b0 AGS: Partially Implement AGSMaya plugin
cb830ebc46 AGS: Update Office Olympics entry and add 2 old versions
Commit: e3e42a75eb93896313fe3039541785793658bebc
https://github.com/scummvm/scummvm/commit/e3e42a75eb93896313fe3039541785793658bebc
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2025-08-07T23:15:57+02:00
Commit Message:
AGS: Implement AGSFileDel plugin
Used in Office Olympics XP
Changed paths:
A engines/ags/plugins/ags_filedel/ags_filedel.cpp
A engines/ags/plugins/ags_filedel/ags_filedel.h
engines/ags/module.mk
engines/ags/plugins/plugin_base.cpp
diff --git a/engines/ags/module.mk b/engines/ags/module.mk
index 43cce99c107..c5efaab1ed8 100644
--- a/engines/ags/module.mk
+++ b/engines/ags/module.mk
@@ -325,6 +325,7 @@ MODULE_OBJS = \
plugins/ags_creditz/ags_creditz1.o \
plugins/ags_creditz/ags_creditz2.o \
plugins/ags_creditz/drawing.o \
+ plugins/ags_filedel/ags_filedel.o \
plugins/ags_fire/ags_fire.o \
plugins/ags_flashlight/ags_flashlight.o \
plugins/ags_flashlight/gfx.o \
diff --git a/engines/ags/plugins/ags_filedel/ags_filedel.cpp b/engines/ags/plugins/ags_filedel/ags_filedel.cpp
new file mode 100644
index 00000000000..218c1f50f3e
--- /dev/null
+++ b/engines/ags/plugins/ags_filedel/ags_filedel.cpp
@@ -0,0 +1,62 @@
+/* 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 3 of the License, or
+ * 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, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "ags/plugins/ags_filedel/ags_filedel.h"
+#include "common/config-manager.h"
+#include "common/debug.h"
+#include "common/savefile.h"
+#include "common/system.h"
+
+namespace AGS3 {
+namespace Plugins {
+namespace AGSFileDel {
+
+const char *AGSFileDel::AGS_GetPluginName() {
+ return "AGS FileDel";
+}
+
+void AGSFileDel::AGS_EngineStartup(IAGSEngine *engine) {
+ PluginBase::AGS_EngineStartup(engine);
+
+ SCRIPT_METHOD(FileDelete, AGSFileDel::FileDelete);
+}
+
+void AGSFileDel::FileDelete(ScriptMethodParams ¶ms) {
+ PARAMS1(const char *, filename);
+
+ if (!filename) {
+ warning("AGSFileDel: empty filename!");
+ params._result = 0;
+ } else {
+ Common::String fullPath(ConfMan.get("gameid") + "-" + filename);
+ if (g_system->getSavefileManager()->removeSavefile(fullPath)) {
+ debug(0, "AGSFileDel: Deleted file %s", fullPath.c_str());
+ params._result = 1;
+ } else {
+ debug(0, "AGSFileDel: Couldn't delete file %s", fullPath.c_str());
+ params._result = 0;
+ }
+ }
+}
+
+} // namespace AGSFileDel
+} // namespace Plugins
+} // namespace AGS3
diff --git a/engines/ags/plugins/ags_filedel/ags_filedel.h b/engines/ags/plugins/ags_filedel/ags_filedel.h
new file mode 100644
index 00000000000..e9bceff6665
--- /dev/null
+++ b/engines/ags/plugins/ags_filedel/ags_filedel.h
@@ -0,0 +1,52 @@
+/* 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 3 of the License, or
+ * 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, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef AGS_PLUGINS_AGS_FILEDEL_H
+#define AGS_PLUGINS_AGS_FILEDEL_H
+
+#include "ags/plugins/ags_plugin.h"
+
+namespace AGS3 {
+namespace Plugins {
+namespace AGSFileDel {
+
+class AGSFileDel : public PluginBase {
+ SCRIPT_HASH(AGSFileDel)
+
+private:
+ /**
+ * Deletes file specified in <string>.
+ */
+ void FileDelete(ScriptMethodParams ¶ms);
+
+public:
+ AGSFileDel() : PluginBase() {}
+ virtual ~AGSFileDel() {}
+
+ const char *AGS_GetPluginName() override;
+ void AGS_EngineStartup(IAGSEngine *engine) override;
+};
+
+} // namespace AGSFileDel
+} // namespace Plugins
+} // namespace AGS3
+
+#endif
diff --git a/engines/ags/plugins/plugin_base.cpp b/engines/ags/plugins/plugin_base.cpp
index cb5e16f6f13..52e04844aac 100644
--- a/engines/ags/plugins/plugin_base.cpp
+++ b/engines/ags/plugins/plugin_base.cpp
@@ -32,6 +32,7 @@
#include "ags/plugins/ags_controller/ags_controller_arcnor.h"
#include "ags/plugins/ags_creditz/ags_creditz1.h"
#include "ags/plugins/ags_creditz/ags_creditz2.h"
+#include "ags/plugins/ags_filedel/ags_filedel.h"
#include "ags/plugins/ags_fire/ags_fire.h"
#include "ags/plugins/ags_flashlight/ags_flashlight.h"
#include "ags/plugins/ags_galaxy_steam/ags_wadjeteye_steam.h"
@@ -110,6 +111,9 @@ Plugins::PluginBase *pluginOpen(const char *filename) {
if (fname.equalsIgnoreCase("ags_d3d") || fname.equalsIgnoreCase("ags_spritevideo"))
return new AGSSpriteVideo::AGSSpriteVideo();
+ if (fname.equalsIgnoreCase("AGS_FileDel"))
+ return new AGSFileDel::AGSFileDel();
+
if (fname.equalsIgnoreCase("AGS_Fire"))
return new AGSFire::AGSFire();
Commit: 5ada9807b04c60be3e5d365e5f5a482a5caaad86
https://github.com/scummvm/scummvm/commit/5ada9807b04c60be3e5d365e5f5a482a5caaad86
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2025-08-07T23:15:57+02:00
Commit Message:
AGS: Partially Implement AGSMaya plugin
Used in Office Olympics XP
Changed paths:
A engines/ags/plugins/ags_maya/ags_maya.cpp
A engines/ags/plugins/ags_maya/ags_maya.h
engines/ags/module.mk
engines/ags/plugins/plugin_base.cpp
diff --git a/engines/ags/module.mk b/engines/ags/module.mk
index c5efaab1ed8..563bd60f232 100644
--- a/engines/ags/module.mk
+++ b/engines/ags/module.mk
@@ -332,6 +332,7 @@ MODULE_OBJS = \
plugins/ags_galaxy_steam/ags_wadjeteye_steam.o \
plugins/ags_galaxy_steam/ags_galaxy_steam.o \
plugins/ags_joy/ags_joy.o \
+ plugins/ags_maya/ags_maya.o \
plugins/ags_nickenstien_gfx/ags_nickenstien_gfx.o \
plugins/ags_pal_render/ags_pal_render.o \
plugins/ags_pal_render/raycast.o \
diff --git a/engines/ags/plugins/ags_maya/ags_maya.cpp b/engines/ags/plugins/ags_maya/ags_maya.cpp
new file mode 100644
index 00000000000..d95230efcce
--- /dev/null
+++ b/engines/ags/plugins/ags_maya/ags_maya.cpp
@@ -0,0 +1,103 @@
+/* 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 3 of the License, or
+ * 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, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "ags/plugins/ags_maya/ags_maya.h"
+#include "ags/engine/ac/math.h"
+
+namespace AGS3 {
+namespace Plugins {
+namespace AGSMaya {
+
+const char *AGSMaya::AGS_GetPluginName() {
+ return "AGS Maya";
+}
+
+void AGSMaya::AGS_EngineStartup(IAGSEngine *engine) {
+ PluginBase::AGS_EngineStartup(engine);
+
+ SCRIPT_METHOD(sin, AGSMaya::Sin);
+ SCRIPT_METHOD(cos, AGSMaya::Cos);
+ SCRIPT_METHOD(fmul, AGSMaya::FMul);
+ SCRIPT_METHOD(fdiv, AGSMaya::FDiv);
+ SCRIPT_METHOD(int_to_float, AGSMaya::intToFloat);
+ SCRIPT_METHOD(ints_to_float, AGSMaya::intsToFloat);
+ SCRIPT_METHOD(float_to_int, AGSMaya::floatToInt);
+}
+
+void AGSMaya::Sin(ScriptMethodParams ¶ms) {
+ PARAMS1(int, angle);
+
+ params._result = 1000 * Math_Sin(angle * 0.001f);
+}
+
+void AGSMaya::Cos(ScriptMethodParams ¶ms) {
+ PARAMS1(int, angle);
+
+ params._result = 1000 * Math_Cos(angle * 0.001f);
+}
+
+void AGSMaya::FMul(ScriptMethodParams ¶ms) {
+ PARAMS2(int, value1, int, value2);
+
+ int calculation = (value1 / 1000) * (value2 / 1000);
+ calculation *= 1000;
+ calculation += (((value1 % 1000) * (value2 % 1000)) / 1000);
+ params._result = calculation;
+}
+
+void AGSMaya::FDiv(ScriptMethodParams ¶ms) {
+ PARAMS2(int, value1, int, value2);
+
+ if (value2) {
+ float division, decimals;
+ division = value1 / (float)value2;
+ modf(division, &decimals);
+ params._result = floor(division) * 1000 + decimals * 1000;
+ } else {
+ params._result = 0;
+ warning("AGSMaya::FDiv divide by zero!");
+ }
+}
+
+void AGSMaya::intToFloat(ScriptMethodParams ¶ms) {
+ PARAMS1(int, value);
+
+ params._result = value * 1000;
+}
+
+void AGSMaya::floatToInt(ScriptMethodParams ¶ms) {
+ PARAMS1(int, value);
+
+ if (value % 1000 > 500)
+ params._result = (value + 1000) / 1000; // round up
+ else
+ params._result = value / 1000;
+}
+
+void AGSMaya::intsToFloat(ScriptMethodParams ¶ms) {
+ PARAMS2(int, units, int, thousandths);
+
+ params._result = units * 1000 + thousandths;
+}
+
+} // namespace AGSMaya
+} // namespace Plugins
+} // namespace AGS3
diff --git a/engines/ags/plugins/ags_maya/ags_maya.h b/engines/ags/plugins/ags_maya/ags_maya.h
new file mode 100644
index 00000000000..dedbe9255cc
--- /dev/null
+++ b/engines/ags/plugins/ags_maya/ags_maya.h
@@ -0,0 +1,58 @@
+/* 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 3 of the License, or
+ * 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, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef AGS_PLUGINS_AGS_MAYA_H
+#define AGS_PLUGINS_AGS_MAYA_H
+
+#include "ags/plugins/ags_plugin.h"
+
+namespace AGS3 {
+namespace Plugins {
+namespace AGSMaya {
+
+class AGSMaya : public PluginBase {
+ SCRIPT_HASH(AGSMaya)
+
+private:
+
+ // Trig functions use radians
+ void Sin(ScriptMethodParams ¶ms);
+ void Cos(ScriptMethodParams ¶ms);
+ void FMul(ScriptMethodParams ¶ms);
+ void FDiv(ScriptMethodParams ¶ms);
+
+ void intToFloat(ScriptMethodParams ¶ms);
+ void intsToFloat(ScriptMethodParams ¶ms);
+ void floatToInt(ScriptMethodParams ¶ms);
+
+public:
+ AGSMaya() : PluginBase() {}
+ virtual ~AGSMaya() {}
+
+ const char *AGS_GetPluginName() override;
+ void AGS_EngineStartup(IAGSEngine *engine) override;
+};
+
+} // namespace AGSMaya
+} // namespace Plugins
+} // namespace AGS3
+
+#endif
diff --git a/engines/ags/plugins/plugin_base.cpp b/engines/ags/plugins/plugin_base.cpp
index 52e04844aac..e2c521a2849 100644
--- a/engines/ags/plugins/plugin_base.cpp
+++ b/engines/ags/plugins/plugin_base.cpp
@@ -38,6 +38,7 @@
#include "ags/plugins/ags_galaxy_steam/ags_wadjeteye_steam.h"
#include "ags/plugins/ags_galaxy_steam/ags_galaxy_steam.h"
#include "ags/plugins/ags_joy/ags_joy.h"
+#include "ags/plugins/ags_maya/ags_maya.h"
#include "ags/plugins/ags_nickenstien_gfx/ags_nickenstien_gfx.h"
#include "ags/plugins/ags_pal_render/ags_pal_render.h"
#include "ags/plugins/ags_parallax/ags_parallax.h"
@@ -123,6 +124,9 @@ Plugins::PluginBase *pluginOpen(const char *filename) {
if (fname.equalsIgnoreCase("AGSJoy"))
return new AGSJoy::AGSJoy();
+ if (fname.equalsIgnoreCase("AGS_Maya"))
+ return new AGSMaya::AGSMaya();
+
if (fname.equalsIgnoreCase("AGSPalRender"))
return new AGSPalRender::AGSPalRender();
Commit: cb830ebc467cb2a4d17596382356ddea5a4fb15e
https://github.com/scummvm/scummvm/commit/cb830ebc467cb2a4d17596382356ddea5a4fb15e
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2025-08-07T23:15:57+02:00
Commit Message:
AGS: Update Office Olympics entry and add 2 old versions
Fix #16113 and #16114
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 461ff77fad6..0fc2be89264 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -3813,6 +3813,9 @@ const PlainGameDescriptor GAME_NAMES[] = {
#define UNSUPPORTED_GAME_ENTRY_EN(ID, FILENAME, MD5, SIZE) \
UNSUPPORTED_ENTRY(ID, FILENAME, MD5, SIZE, Common::EN_ANY, 0)
+#define UNSUPPORTED_GAME_ENTRY_LANG(ID, FILENAME, MD5, SIZE, LANG) \
+ UNSUPPORTED_ENTRY(ID, FILENAME, MD5, SIZE, LANG, 0)
+
#define TESTING_ENTRY(ID, FILENAME, MD5, SIZE, LANG, PLATFORM) \
DETECTION_ENTRY(ID, FILENAME, MD5, SIZE, LANG, PLATFORM, ADGF_TESTING, 0)
@@ -4242,8 +4245,8 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
UNSUPPORTED_GAME_ENTRY_EN("razorsinthenight", "Razors.exe", "0500aacb6c176d47ac0f8158f055db83", 25439808), //v1.0
UNSUPPORTED_GAME_ENTRY_EN("razorsinthenight", "Razors.exe", "0500aacb6c176d47ac0f8158f055db83", 25442827), //v2.0
- // using unsupported ags_Maya, ags_FileDel plugins
- UNSUPPORTED_GAME_ENTRY_EN("officeolympics", "Oo.exe", "465f972675db2da6040518221af5b0ba", 30378663),
+ // using ags_Maya plugin, partially implemented
+ UNSUPPORTED_GAME_ENTRY_LANG("officeolympics", "Oo.exe", "465f972675db2da6040518221af5b0ba", 30378663, Common::IT_ITA),
// using unsupported agsEngine plugin
UNSUPPORTED_DEMO_ENTRY_EN("spacesim", "space_3d.exe", "8538afa638531020f79df88aec0fb797", 1667537),
@@ -5014,6 +5017,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN_STEAM("rnrneverdies", "Rock 'n' Roll Will Never Die.exe", "28456c6a3a38874b833651c4433e22b4", 37722884),
GAME_ENTRY_EN_STEAM("rnrneverdies", "Rock 'n' Roll Will Never Die.exe", "28456c6a3a38874b833651c4433e22b4", 37725830),
GAME_ENTRY_EN_STEAM("rnrneverdies", "Rock 'n' Roll Will Never Die.exe", "28456c6a3a38874b833651c4433e22b4", 37729146),
+ DETECTION_ENTRY_GUIO("roguestate", "roguestate.exe", "981a1c4d5a64b8ebe300f9769acf0fe5", 895485662, Common::EN_ANY, "Steam", GUIO2(GUIO_NOLANG, GAMEOPTION_NO_SAVELOAD), ADGF_NO_FLAGS, 0),
DETECTION_ENTRY_GUIO("roguestate", "roguestate.exe", "981a1c4d5a64b8ebe300f9769acf0fe5", 895486573, Common::EN_ANY, "Steam", GUIO2(GUIO_NOLANG, GAMEOPTION_NO_SAVELOAD), ADGF_NO_FLAGS, 0),
GAME_ENTRY_PLUGIN_GOG_NOAUTOSAVE("rosewater", "Rosewater.ags", "9748c2a388a93061a1a480127493acb2", 3905499047, 0), // v1.00.1
GAME_ENTRY_PLUGIN_GOG_NOAUTOSAVE("rosewater", "Rosewater.ags", "9748c2a388a93061a1a480127493acb2", 3905515500, 0), // v1.02.0
@@ -5238,6 +5242,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_PLUGIN_GOG_EN_NOAUTOSAVE("unavowed", "ac2game.dat", "f311000c476689a6e77d25f002f412db", 1617832596, 0), // Mac v2.0.0 (GOG v2.6)
GAME_ENTRY_EN_STEAM("unlikelyprometheus", "The Unlikely Prometheus.exe", "a370a1db43a1d376d09e43469abba1d1", 129124983),
GAME_ENTRY_EN_STEAM("untilihaveyou", "until i have you.exe", "cda1d7e36993dd55ba5513c1c43e5b2b", 1072879555),
+ GAME_ENTRY_EN_STEAM("untilihaveyou", "until i have you.exe", "cda1d7e36993dd55ba5513c1c43e5b2b", 1074262526),
GAME_ENTRY_EN_STEAM("untilihaveyou", "until i have you.exe", "cda1d7e36993dd55ba5513c1c43e5b2b", 1089857773),
GAME_ENTRY_EN_STEAM("waitingfortheloop", "waitingfortheloop.exe", "0241777c2537fc5d077c05cde10bfa9f", 51472537),
GAME_ENTRY_EN("waitingfortheloop", "waitingfortheloop.exe", "0241777c2537fc5d077c05cde10bfa9f", 51273604),
More information about the Scummvm-git-logs
mailing list