[Scummvm-git-logs] scummvm master -> fc7d5ff6136997d45971337f4ff8576b8de28813
sev-
noreply at scummvm.org
Sat Apr 19 10:14:21 UTC 2025
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
ae46e89879 DIRECTOR: Dump decompiled lingo scripts
fc7d5ff613 DIRECTOR: Dump decompiled scripts along with bytecode
Commit: ae46e898791c477db2984b3b9735241199d575d2
https://github.com/scummvm/scummvm/commit/ae46e898791c477db2984b3b9735241199d575d2
Author: BunnyBun (kethushanmukhareddy2126 at gmail.com)
Date: 2025-04-19T12:08:46+02:00
Commit Message:
DIRECTOR: Dump decompiled lingo scripts
Changed paths:
engines/director/cast.cpp
diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index e581e47bd65..faab49c99a6 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -1301,6 +1301,27 @@ void Cast::loadLingoContext(Common::SeekableReadStreamEndian &stream) {
for (auto it = _lingodec->scripts.begin(); it != _lingodec->scripts.end(); ++it) {
debugC(9, kDebugCompile, "[%d/%d] %s", it->second->castID, it->first, it->second->scriptText("\n", false).c_str());
}
+
+ for (auto it = _lingodec->scripts.begin(); it != _lingodec->scripts.end(); ++it) {
+ Common::DumpFile out;
+ ScriptType scriptType = kMovieScript;
+
+ if (_loadedCast->contains(it->second->castID)) {
+ CastMember *member = _loadedCast->getVal(it->second->castID);
+ if (member && member->_type == kCastLingoScript) {
+ scriptType = ((ScriptCastMember *)member)->_scriptType;
+ }
+ }
+
+ Common::Path lingoPath(dumpScriptName(encodePathForDump(_macName).c_str(), scriptType, it->second->castID, "lingo"));
+
+ if (out.open(lingoPath, true)) {
+ Common::String decompiled = it->second->scriptText("\n", true);
+ out.writeString(decompiled);
+ out.flush();
+ out.close();
+ }
+ }
}
}
Commit: fc7d5ff6136997d45971337f4ff8576b8de28813
https://github.com/scummvm/scummvm/commit/fc7d5ff6136997d45971337f4ff8576b8de28813
Author: BunnyBun (kethushanmukhareddy2126 at gmail.com)
Date: 2025-04-19T12:12:32+02:00
Commit Message:
DIRECTOR: Dump decompiled scripts along with bytecode
TODO: The script ids currently do not match those of bytecode
Changed paths:
engines/director/cast.cpp
diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index faab49c99a6..a5a974953ea 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -1302,26 +1302,29 @@ void Cast::loadLingoContext(Common::SeekableReadStreamEndian &stream) {
debugC(9, kDebugCompile, "[%d/%d] %s", it->second->castID, it->first, it->second->scriptText("\n", false).c_str());
}
- for (auto it = _lingodec->scripts.begin(); it != _lingodec->scripts.end(); ++it) {
- Common::DumpFile out;
- ScriptType scriptType = kMovieScript;
-
- if (_loadedCast->contains(it->second->castID)) {
- CastMember *member = _loadedCast->getVal(it->second->castID);
- if (member && member->_type == kCastLingoScript) {
- scriptType = ((ScriptCastMember *)member)->_scriptType;
- }
- }
-
- Common::Path lingoPath(dumpScriptName(encodePathForDump(_macName).c_str(), scriptType, it->second->castID, "lingo"));
-
- if (out.open(lingoPath, true)) {
- Common::String decompiled = it->second->scriptText("\n", true);
- out.writeString(decompiled);
- out.flush();
- out.close();
- }
- }
+ if (ConfMan.getBool("dump_scripts")) {
+ for (auto it = _lingodec->scripts.begin(); it != _lingodec->scripts.end(); ++it) {
+ Common::DumpFile out;
+ ScriptType scriptType = kMovieScript;
+
+ if (_loadedCast->contains(it->second->castID)) {
+ CastMember *member = _loadedCast->getVal(it->second->castID);
+ if (member && member->_type == kCastLingoScript) {
+ scriptType = ((ScriptCastMember *)member)->_scriptType;
+ }
+ }
+
+ // FIXME: castID is set incorrectly for D5+
+ Common::Path lingoPath(dumpScriptName(encodePathForDump(_macName).c_str(), scriptType, it->second->castID, "lingo"));
+
+ if (out.open(lingoPath, true)) {
+ Common::String decompiled = it->second->scriptText("\n", true);
+ out.writeString(decompiled);
+ out.flush();
+ out.close();
+ }
+ }
+ }
}
}
More information about the Scummvm-git-logs
mailing list