[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