[Scummvm-git-logs] scummvm master -> 6706c3be6573c00faa753abd23485f851a213a77

mduggan noreply at scummvm.org
Tue Mar 14 07:03:45 UTC 2023


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:
6706c3be65 TETRAEDGE: Add can-start-game level support for iOS Syberia


Commit: 6706c3be6573c00faa753abd23485f851a213a77
    https://github.com/scummvm/scummvm/commit/6706c3be6573c00faa753abd23485f851a213a77
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2023-03-14T16:03:35+09:00

Commit Message:
TETRAEDGE: Add can-start-game level support for iOS Syberia

Changed paths:
    engines/tetraedge/detection_tables.h
    engines/tetraedge/game/lua_binds.cpp
    engines/tetraedge/game/notifier.cpp
    engines/tetraedge/te/te_core.cpp
    engines/tetraedge/tetraedge.cpp
    engines/tetraedge/tetraedge.h


diff --git a/engines/tetraedge/detection_tables.h b/engines/tetraedge/detection_tables.h
index 65633e18902..d9578d1b07d 100644
--- a/engines/tetraedge/detection_tables.h
+++ b/engines/tetraedge/detection_tables.h
@@ -42,6 +42,18 @@ const ADGameDescription GAME_DESCRIPTIONS[] = {
 		GUIO1(GAMEOPTION_CORRECT_MOVIE_ASPECT)
 	},
 
+	// iOS release v1.1.3
+	{
+		"syberia",
+		nullptr,
+		AD_ENTRY1s("Syberia", "d:be658efbcf4541f56b656f92a05d271a", 15821120),
+		Common::UNK_LANG,
+		Common::kPlatformIOS,
+		ADGF_TESTING,
+		GUIO1(GAMEOPTION_CORRECT_MOVIE_ASPECT)
+	},
+
+
 	// GOG release
 	{
 		"syberia2",
diff --git a/engines/tetraedge/game/lua_binds.cpp b/engines/tetraedge/game/lua_binds.cpp
index 10919264cb5..df3d001c2fb 100644
--- a/engines/tetraedge/game/lua_binds.cpp
+++ b/engines/tetraedge/game/lua_binds.cpp
@@ -106,11 +106,20 @@ static int tolua_ExportedFunctions_PlayMovie00(lua_State *L) {
 		return 0;
 	} else if (tolua_isstring(L, 1, 0, &err) && tolua_isstring(L, 2, 0, &err)
 			&& tolua_isnumber(L, 3, 1, &err) && tolua_isnoobj(L, 4, &err)) {
+		// Syberia II macOS - includes volume
 		Common::String s1(tolua_tostring(L, 1, nullptr));
 		Common::String s2(tolua_tostring(L, 2, nullptr));
 		double d1 = tolua_tonumber(L, 3, 1.0);
 		PlayMovie(s1, s2, d1);
 		return 0;
+	} else if (tolua_isstring(L, 1, 0, &err) && tolua_isstring(L, 2, 0, &err)
+			&& tolua_isstring(L, 3, 0, &err) && tolua_isnoobj(L, 4, &err)) {
+		// iOS version.. sometimes has "video" as 3rd param?
+		Common::String s1(tolua_tostring(L, 1, nullptr));
+		Common::String s2(tolua_tostring(L, 2, nullptr));
+		Common::String s3(tolua_tostring(L, 2, nullptr));
+		PlayMovie(s1, s2);
+		return 0;
 	}
 	error("#ferror in function 'PlayMovie': %d %d %s", err.index, err.array, err.type);
 }
diff --git a/engines/tetraedge/game/notifier.cpp b/engines/tetraedge/game/notifier.cpp
index c8dd1c53f4d..32c1fb5da71 100644
--- a/engines/tetraedge/game/notifier.cpp
+++ b/engines/tetraedge/game/notifier.cpp
@@ -77,7 +77,7 @@ void Notifier::launchNextnotifier() {
 
 void Notifier::load() {
 	_gui.load("menus/Notifier.lua");
-	TeLayout *notifierLayout = _gui.layout("notifier");
+	TeLayout *notifierLayout = _gui.layoutChecked("notifier");
 	Game *game = g_engine->getGame();
 	game->addNoScale2Child(notifierLayout);
 	notifierLayout->setVisible(false);
diff --git a/engines/tetraedge/te/te_core.cpp b/engines/tetraedge/te/te_core.cpp
index ac4e41525a1..9391672f2e4 100644
--- a/engines/tetraedge/te/te_core.cpp
+++ b/engines/tetraedge/te/te_core.cpp
@@ -145,7 +145,8 @@ Common::FSNode TeCore::findFile(const Common::Path &path) const {
 	const Common::FSNode gameRoot(ConfMan.get("path"));
 	if (!gameRoot.isDirectory())
 		error("Game directory should be a directory");
-	const Common::FSNode resNode = gameRoot.getChild("Resources");
+	const Common::FSNode resNode = (g_engine->getGamePlatform() == Common::kPlatformMacintosh
+			?  gameRoot.getChild("Resources") : gameRoot);
 	if (!resNode.isDirectory())
 		error("Resources directory should exist in game");
 
@@ -169,7 +170,14 @@ Common::FSNode TeCore::findFile(const Common::Path &path) const {
 		"Part2-Full-Part1",
 		"Part3-Full-Part1",
 		"HD",
-		"HD/PC-MacOSX-Xbox360-PS3"
+		"HD/PC-MacOSX-Xbox360-PS3",
+		"PC-PS3-Android-MacOSX-iPhone-iPad",	// for iOS Syb 1
+		"Android-iPhone-iPad",					// for iOS Syb 1
+		"Android-iPhone-iPad/HD",				// for iOS Syb 1
+		"HD/Android-iPhone-iPad",				// for iOS Syb 1
+		"iPhone-iPad",							// for iOS Syb 1
+		"iPhone-iPad/HD",						// for iOS Syb 1
+		"iPhone-iPad/HD/Freemium"				// for iOS Syb 1
 	};
 
 	const Common::Path langs[] = {
diff --git a/engines/tetraedge/tetraedge.cpp b/engines/tetraedge/tetraedge.cpp
index 3233689f672..cb75ac7dde8 100644
--- a/engines/tetraedge/tetraedge.cpp
+++ b/engines/tetraedge/tetraedge.cpp
@@ -138,6 +138,10 @@ Common::Language TetraedgeEngine::getGameLanguage() const {
 	return _gameDescription->language;
 }
 
+Common::Platform TetraedgeEngine::getGamePlatform() const {
+	return _gameDescription->platform;
+}
+
 bool TetraedgeEngine::canLoadGameStateCurrently() {
 	return _game && _application && !_application->mainMenu().isEntered();
 }
@@ -177,7 +181,8 @@ Common::Error TetraedgeEngine::loadGameStream(Common::SeekableReadStream *stream
 
 void TetraedgeEngine::configureSearchPaths() {
 	const Common::FSNode gameDataDir(ConfMan.get("path"));
-	SearchMan.addSubDirectoryMatching(gameDataDir, "Resources", 0, 5);
+	if (_gameDescription->platform != Common::kPlatformIOS)
+		SearchMan.addSubDirectoryMatching(gameDataDir, "Resources", 0, 5);
 }
 
 int TetraedgeEngine::getDefaultScreenWidth() const {
diff --git a/engines/tetraedge/tetraedge.h b/engines/tetraedge/tetraedge.h
index 8adafa938c4..616b5242977 100644
--- a/engines/tetraedge/tetraedge.h
+++ b/engines/tetraedge/tetraedge.h
@@ -88,6 +88,8 @@ public:
 
 	Common::Language getGameLanguage() const;
 
+	Common::Platform getGamePlatform() const;
+
 	/**
 	 * Gets a random number
 	 */




More information about the Scummvm-git-logs mailing list