aboutsummaryrefslogtreecommitdiff
path: root/engines/director
diff options
context:
space:
mode:
authorEugene Sandulenko2017-03-21 23:20:04 +0100
committerEugene Sandulenko2017-03-21 23:44:51 +0100
commiteb1393a8596ff339c47c5b499115c28fece8da66 (patch)
tree2acaec45af410d16f2602652a94dd27356505599 /engines/director
parenta20d2172fa721188fb8cb07766504e59b8985629 (diff)
downloadscummvm-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/director')
-rw-r--r--engines/director/resource.cpp28
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) {