diff options
-rw-r--r-- | engines/director/director.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/engines/director/director.cpp b/engines/director/director.cpp index ea21986dcc..4df959d05d 100644 --- a/engines/director/director.cpp +++ b/engines/director/director.cpp @@ -79,10 +79,14 @@ void DirectorEngine::loadEXE() { } void DirectorEngine::loadEXEv3(Common::SeekableReadStream *stream) { - stream->readUint32LE(); // unknown - stream->readUint16LE(); // unknown + uint16 entryCount = stream->readUint16LE(); + + if (entryCount != 1) + error("Unhandled multiple entry v3 EXE"); + + stream->skip(5); // unknown + stream->readUint32LE(); // Main MMM size - stream->readByte(); // zero Common::String mmmFileName = readPascalString(*stream); Common::String directoryName = readPascalString(*stream); |