[Scummvm-git-logs] scummvm master -> 9528d5482818d791a1371c2d356bc61fc3e10ffb

sev- sev at scummvm.org
Sun Mar 19 23:29:12 CET 2017


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:
9528d54828 DIRECTOR: Initial code for parsing D2 win executables


Commit: 9528d5482818d791a1371c2d356bc61fc3e10ffb
    https://github.com/scummvm/scummvm/commit/9528d5482818d791a1371c2d356bc61fc3e10ffb
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2017-03-19T23:28:41+01:00

Commit Message:
DIRECTOR: Initial code for parsing D2 win executables

Changed paths:
    engines/director/resource.cpp


diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index 10e7d93..7dbd5a7 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -76,6 +76,7 @@ void DirectorEngine::loadEXE(const Common::String movie) {
 	exeStream->seek(exeStream->readUint32LE());
 
 	switch (getVersion()) {
+	case 2:
 	case 3:
 		loadEXEv3(exeStream);
 		break;
@@ -100,12 +101,23 @@ void DirectorEngine::loadEXEv3(Common::SeekableReadStream *stream) {
 
 	stream->skip(5); // unknown
 
-	stream->readUint32LE(); // Main MMM size
+	uint32 mmmSize = stream->readUint32LE(); // Main MMM size
+
 	Common::String mmmFileName = stream->readPascalString();
 	Common::String directoryName = stream->readPascalString();
 
 	debugC(1, kDebugLoading, "Main MMM: '%s'", mmmFileName.c_str());
 	debugC(1, kDebugLoading, "Directory Name: '%s'", directoryName.c_str());
+	debugC(1, kDebugLoading, "Main mmmSize: %d (0x%x)", mmmSize, mmmSize);
+
+	if (mmmSize) {
+		uint32 riffOffset = stream->pos();
+
+		_mainArchive = new RIFFArchive();
+
+		if (!_mainArchive->openStream(stream, riffOffset))
+			error("Failed to load RIFF from EXE");
+	}
 
 	openMainArchive(mmmFileName);
 





More information about the Scummvm-git-logs mailing list