[Scummvm-git-logs] scummvm master -> 147ae7dc300a0746768a7a8a1355d56f0144c6b2

sev- sev at scummvm.org
Sun May 24 15:37:21 UTC 2020


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:
147ae7dc30 DIRECTOR: Fixed dumping Lscr script for shared casts


Commit: 147ae7dc300a0746768a7a8a1355d56f0144c6b2
    https://github.com/scummvm/scummvm/commit/147ae7dc300a0746768a7a8a1355d56f0144c6b2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-05-24T17:36:51+02:00

Commit Message:
DIRECTOR: Fixed dumping Lscr script for shared casts

Changed paths:
    engines/director/lingo/lingo-bytecode.cpp
    engines/director/lingo/lingo.h
    engines/director/resource.cpp
    engines/director/score.cpp


diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index d4c727620c..d883f24e23 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -744,7 +744,7 @@ void LC::cb_zeropush() {
 	g_lingo->push(d);
 }
 
-void Lingo::addCodeV4(Common::SeekableSubReadStreamEndian &stream, ScriptType type, uint16 id) {
+void Lingo::addCodeV4(Common::SeekableSubReadStreamEndian &stream, ScriptType type, uint16 id, Common::String &archName) {
 	debugC(1, kDebugLingoCompile, "Add V4 bytecode for type %s with id %d", scriptType2str(type), id);
 
 	if (getScriptContext(type, id)) {
@@ -967,11 +967,13 @@ void Lingo::addCodeV4(Common::SeekableSubReadStreamEndian &stream, ScriptType ty
 	bool skipdump = false;
 
 	if (ConfMan.getBool("dump_scripts")) {
-		Common::String buf = dumpScriptName(_vm->getCurrentScore()->getMacName().c_str(), type, id, "lscr");
+		Common::String buf = dumpScriptName(archName.c_str(), type, id, "lscr");
 
 		if (!out.open(buf)) {
-			warning("Can not open dump file %s", buf.c_str());
+			warning("Lingo::addCodeV4(): Can not open dump file %s", buf.c_str());
 			skipdump = true;
+		} else {
+			warning("Lingo::addCodeV4(): Dumping Lscr to %s", buf.c_str());
 		}
 	}
 
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 94cb97d27c..d5c0087161 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -267,7 +267,7 @@ public:
 	void restartLingo();
 
 	void addCode(const char *code, ScriptType type, uint16 id);
-	void addCodeV4(Common::SeekableSubReadStreamEndian &stream, ScriptType type, uint16 id);
+	void addCodeV4(Common::SeekableSubReadStreamEndian &stream, ScriptType type, uint16 id, Common::String &archName);
 	void addNamesV4(Common::SeekableSubReadStreamEndian &stream);
 	void executeHandler(Common::String name);
 	void executeScript(ScriptType type, uint16 id, uint16 function);
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index b80e4b9130..053f347c40 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -295,6 +295,7 @@ void DirectorEngine::loadSharedCastsFrom(Common::String filename) {
 
 		return;
 	}
+	sharedCast->setFileName(filename);
 
 	debug(0, "\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
 	debug(0, "@@@@ Loading Shared cast '%s'", filename.c_str());
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 2cba2c8c34..6b43e6c3d6 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -964,7 +964,7 @@ void Score::loadCastData(Common::SeekableSubReadStreamEndian &stream, uint16 id,
 			if (scriptId < _castScriptIds.size()) {
 				int resourceId = _castScriptIds[scriptId];
 				Common::SeekableSubReadStreamEndian *r;
-				_lingo->addCodeV4(*(r = _movieArchive->getResource(MKTAG('L', 's', 'c', 'r'), resourceId)), ((ScriptCast *)member)->_scriptType, id);
+				_lingo->addCodeV4(*(r = _movieArchive->getResource(MKTAG('L', 's', 'c', 'r'), resourceId)), ((ScriptCast *)member)->_scriptType, id, _macName);
 				delete r;
 			} else {
 				warning("Score::loadCastData(): Lingo context missing a resource entry for script %d referenced in cast %d", scriptId, id);




More information about the Scummvm-git-logs mailing list