[Scummvm-git-logs] scummvm master -> 789e8b1a4d17469d8448455a1d9a5dba1260e045

djsrv dservilla at gmail.com
Sun Jul 11 20:20:57 UTC 2021


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
dbb0ea96e8 DIRECTOR: LINGO: Check if FPlayXObj is already initialized
789e8b1a4d DIRECTOR: Load FPlay in warlock-mac with --start-movie


Commit: dbb0ea96e8bf6084098296e062427dfa9f309775
    https://github.com/scummvm/scummvm/commit/dbb0ea96e8bf6084098296e062427dfa9f309775
Author: djsrv (dservilla at gmail.com)
Date: 2021-07-11T16:16:28-04:00

Commit Message:
DIRECTOR: LINGO: Check if FPlayXObj is already initialized

Changed paths:
    engines/director/lingo/xlibs/fplayxobj.cpp


diff --git a/engines/director/lingo/xlibs/fplayxobj.cpp b/engines/director/lingo/xlibs/fplayxobj.cpp
index 3f0e705bc4..a7a2c2a725 100644
--- a/engines/director/lingo/xlibs/fplayxobj.cpp
+++ b/engines/director/lingo/xlibs/fplayxobj.cpp
@@ -45,7 +45,11 @@ static BuiltinProto builtins[] = {
 };
 
 void FPlayXObj::initialize(int type) {
-	g_lingo->initBuiltIns(builtins);
+	if (!g_lingo->_builtinCmds.contains("FPlay")) {
+		g_lingo->initBuiltIns(builtins);
+	} else {
+		warning("FPlayXObj already initialized");
+	}
 }
 
 void FPlayXObj::b_fplay(int nargs) {


Commit: 789e8b1a4d17469d8448455a1d9a5dba1260e045
    https://github.com/scummvm/scummvm/commit/789e8b1a4d17469d8448455a1d9a5dba1260e045
Author: djsrv (dservilla at gmail.com)
Date: 2021-07-11T16:18:22-04:00

Commit Message:
DIRECTOR: Load FPlay in warlock-mac with --start-movie

Changed paths:
    engines/director/resource.cpp
    engines/director/window.h


diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index 2abdd0314a..f27b807d6f 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -76,6 +76,12 @@ Common::Error Window::loadInitialMovie() {
 		_currentMovie->loadSharedCastsFrom(sharedCastPath);
 	_currentMovie->setArchive(_mainArchive);
 
+	// XLibs are usually loaded in the initial movie.
+	// These may not be present if a --start-movie is specified, so
+	// we sometimes need to load them manually.
+	if (!g_director->getStartMovie().startMovie.empty())
+		loadStartMovieXLibs();
+
 	return Common::kNoError;
 }
 
@@ -382,4 +388,10 @@ void Window::loadMac(const Common::String movie) {
 	}
 }
 
+void Window::loadStartMovieXLibs() {
+	if (strcmp(g_director->getGameId(), "warlock") == 0 && g_director->getPlatform() == Common::kPlatformMacintosh) {
+		g_lingo->openXLib("FPlayXObj", kXObj);
+	}
+}
+
 } // End of namespace Director
diff --git a/engines/director/window.h b/engines/director/window.h
index 95991baf3b..3d278aa2d5 100644
--- a/engines/director/window.h
+++ b/engines/director/window.h
@@ -151,6 +151,7 @@ public:
 	void loadEXEv7(Common::SeekableReadStream *stream);
 	void loadEXERIFX(Common::SeekableReadStream *stream, uint32 offset);
 	void loadMac(const Common::String movie);
+	void loadStartMovieXLibs();
 
 	// lingo/lingo-object.cpp
 	Common::String asString() override;




More information about the Scummvm-git-logs mailing list