diff options
author | Eugene Sandulenko | 2017-03-21 23:20:04 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2017-03-21 23:44:51 +0100 |
commit | eb1393a8596ff339c47c5b499115c28fece8da66 (patch) | |
tree | 2acaec45af410d16f2602652a94dd27356505599 /engines | |
parent | a20d2172fa721188fb8cb07766504e59b8985629 (diff) | |
download | scummvm-rg350-eb1393a8596ff339c47c5b499115c28fece8da66.tar.gz scummvm-rg350-eb1393a8596ff339c47c5b499115c28fece8da66.tar.bz2 scummvm-rg350-eb1393a8596ff339c47c5b499115c28fece8da66.zip |
DIRECTOR: Dump bulit-in director file for D3
Diffstat (limited to 'engines')
-rw-r--r-- | engines/director/resource.cpp | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp index 7dbd5a78a6..d0a1ce8289 100644 --- a/engines/director/resource.cpp +++ b/engines/director/resource.cpp @@ -20,7 +20,9 @@ * */ +#include "common/config-manager.h" #include "common/macresman.h" + #include "graphics/macgui/macwindowmanager.h" #include "graphics/macgui/macfontmanager.h" @@ -113,6 +115,30 @@ void DirectorEngine::loadEXEv3(Common::SeekableReadStream *stream) { if (mmmSize) { uint32 riffOffset = stream->pos(); + debugC(1, kDebugLoading, "RIFF offset: %d (%x)", riffOffset, riffOffset); + + if (ConfMan.getBool("dump_scripts")) { + Common::DumpFile out; + byte *buf = (byte *)malloc(mmmSize); + stream->read(buf, mmmSize); + stream->seek(riffOffset); + Common::String fname = Common::String::format("./dumps/%s", mmmFileName.c_str()); + + + if (!out.open(fname.c_str())) { + warning("Can not open dump file %s", fname.c_str()); + return; + } + + out.write(buf, mmmSize); + + out.flush(); + out.close(); + + free(buf); + } + + _mainArchive = new RIFFArchive(); if (!_mainArchive->openStream(stream, riffOffset)) @@ -120,8 +146,6 @@ void DirectorEngine::loadEXEv3(Common::SeekableReadStream *stream) { } openMainArchive(mmmFileName); - - delete stream; } void DirectorEngine::loadEXEv4(Common::SeekableReadStream *stream) { |