[Scummvm-git-logs] scummvm master -> 59941ad8863b72efa5525f386e817bb662cdcfcf
djsrv
dservilla at gmail.com
Thu Jun 25 03:41:33 UTC 2020
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:
f11da52a67 DIRECTOR: LINGO: Detect XCOD resources
59941ad886 DIRECTOR: LINGO: Clear LINGO.INI handlers
Commit: f11da52a67dddf5bec6332ffd72339a433e5bcf5
https://github.com/scummvm/scummvm/commit/f11da52a67dddf5bec6332ffd72339a433e5bcf5
Author: djsrv (dservilla at gmail.com)
Date: 2020-06-24T23:29:30-04:00
Commit Message:
DIRECTOR: LINGO: Detect XCOD resources
Changed paths:
engines/director/director.cpp
engines/director/lingo/lingo-object.cpp
diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index 797add797d..78cdf45b5e 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -199,6 +199,15 @@ Common::Error DirectorEngine::run() {
if (_mainArchive->hasResource(MKTAG('B', 'N', 'D', 'L'), "Projector")) {
warning("Detected Projector file");
+ if (_mainArchive->hasResource(MKTAG('X', 'C', 'O', 'D'), -1)) {
+ Common::Array<uint16> xcod = _mainArchive->getResourceIDList(MKTAG('X', 'C', 'O', 'D'));
+ for (Common::Array<uint16>::iterator iterator = xcod.begin(); iterator != xcod.end(); ++iterator) {
+ Resource res = _mainArchive->getResourceDetail(MKTAG('X', 'C', 'O', 'D'), *iterator);
+ debug(0, "Detected XObject '%s'", res.name.c_str());
+ g_lingo->openXLib(res.name, kXObj);
+ }
+ }
+
if (_mainArchive->hasResource(MKTAG('S', 'T', 'R', '#'), 0)) {
_currentScore->setArchive(_mainArchive);
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index 143cdbdad7..8054613de0 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -90,12 +90,6 @@ void Lingo::initXLibs() {
sym.u.bltin = lib->initializer;
_xlibInitializers[lib->name] = sym;
}
-
- if (_vm->getPlatform() == Common::kPlatformMacintosh) {
- // TODO: Mac executables can contain XObjects in XCOD resources.
- // If a Mac executable exists, check which XObjects should be loaded.
- openXLib("FileIO", kXObj);
- }
}
void Lingo::openXLib(const Common::String &name, ObjectType type) {
Commit: 59941ad8863b72efa5525f386e817bb662cdcfcf
https://github.com/scummvm/scummvm/commit/59941ad8863b72efa5525f386e817bb662cdcfcf
Author: djsrv (dservilla at gmail.com)
Date: 2020-06-24T23:29:30-04:00
Commit Message:
DIRECTOR: LINGO: Clear LINGO.INI handlers
Changed paths:
engines/director/resource.cpp
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index ca19d552c6..fc84f2e6a3 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -81,6 +81,7 @@ void DirectorEngine::loadEXE(const Common::String movie) {
iniStream->read(script, iniStream->size());
_lingo->addCode(script, kArchMain, kMovieScript, 0);
_lingo->processEvent(kEventStartUp);
+ _lingo->resetLingo(true);
free(script);
} else {
warning("No LINGO.INI");
More information about the Scummvm-git-logs
mailing list