diff options
author | Eugene Sandulenko | 2016-08-30 18:21:34 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2016-08-30 18:21:34 +0200 |
commit | fe22b8bd0e70839a001e0c91e9e598faa36e724b (patch) | |
tree | a698af6fe3db548d9f8cc905b24a7d20c16f5490 | |
parent | 6d3e772897a9fad59899e41e289720c1945a958a (diff) | |
download | scummvm-rg350-fe22b8bd0e70839a001e0c91e9e598faa36e724b.tar.gz scummvm-rg350-fe22b8bd0e70839a001e0c91e9e598faa36e724b.tar.bz2 scummvm-rg350-fe22b8bd0e70839a001e0c91e9e598faa36e724b.zip |
DIRECTOR: Fix scanned archive names
-rw-r--r-- | engines/director/director.cpp | 2 | ||||
-rw-r--r-- | engines/director/frame.cpp | 2 | ||||
-rw-r--r-- | engines/director/resource.cpp | 8 | ||||
-rw-r--r-- | engines/director/resource.h | 4 | ||||
-rw-r--r-- | engines/director/score.cpp | 12 |
5 files changed, 22 insertions, 6 deletions
diff --git a/engines/director/director.cpp b/engines/director/director.cpp index e72ad89f89..e1f4ef1bdb 100644 --- a/engines/director/director.cpp +++ b/engines/director/director.cpp @@ -152,6 +152,8 @@ Common::HashMap<Common::String, Score *> DirectorEngine::loadMMMNames(Common::St arc->openFile(i->getName()); Score *sc = new Score(this, arc); nameMap[sc->getMacName()] = sc; + + debugC(2, kDebugLoading, "Movie name: \"%s\"", sc->getMacName().c_str()); } } diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp index 3d5d8b6a4b..174581f336 100644 --- a/engines/director/frame.cpp +++ b/engines/director/frame.cpp @@ -174,7 +174,7 @@ void Frame::readMainChannels(Common::SeekableSubReadStreamEndian &stream, uint16 default: offset++; stream.readByte(); - debug("Field Position %d, Finish Position %d", offset, finishPosition); + debugC(kDebugLoading, "Frame::readMainChannels: Field Position %d, Finish Position %d", offset, finishPosition); break; } } diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp index 787becf28c..7bb73289dd 100644 --- a/engines/director/resource.cpp +++ b/engines/director/resource.cpp @@ -51,6 +51,8 @@ bool Archive::openFile(const Common::String &fileName) { return false; } + _fileName = fileName; + return true; } @@ -190,6 +192,12 @@ bool MacArchive::openFile(const Common::String &fileName) { return false; } + _fileName = _resFork->getBaseFileName(); + if (_fileName.hasSuffix(".bin")) { + for (int i = 0; i < 4; i++) + _fileName.deleteLastChar(); + } + Common::MacResTagArray tagArray = _resFork->getResTagArray(); for (uint32 i = 0; i < tagArray.size(); i++) { diff --git a/engines/director/resource.h b/engines/director/resource.h index 2d5a4aeba1..8e2ceaeaa5 100644 --- a/engines/director/resource.h +++ b/engines/director/resource.h @@ -43,6 +43,8 @@ public: virtual bool openStream(Common::SeekableReadStream *stream, uint32 offset = 0) = 0; virtual void close(); + Common::String getFileName() const { return _fileName; } + bool isOpen() const { return _stream != 0; } bool hasResource(uint32 tag, uint16 id) const; @@ -67,6 +69,8 @@ protected: typedef Common::HashMap<uint16, Resource> ResourceMap; typedef Common::HashMap<uint32, ResourceMap> TypeMap; TypeMap _types; + + Common::String _fileName; }; class MacArchive : public Archive { diff --git a/engines/director/score.cpp b/engines/director/score.cpp index 6d6d02274c..90506519ac 100644 --- a/engines/director/score.cpp +++ b/engines/director/score.cpp @@ -108,12 +108,14 @@ Score::Score(DirectorEngine *vm, Archive *archive) { _stopPlay = false; _stageColor = 0; - if (_movieArchive->hasResource(MKTAG('M','C','N','M'), 0)) { - _macName = _movieArchive->getName(MKTAG('M','C','N','M'), 0).c_str(); + if (archive->hasResource(MKTAG('M','C','N','M'), 0)) { + _macName = archive->getName(MKTAG('M','C','N','M'), 0).c_str(); + } else { + _macName = archive->getFileName(); } - if (_movieArchive->hasResource(MKTAG('V','W','L','B'), 1024)) { - loadLabels(*_movieArchive->getResource(MKTAG('V','W','L','B'), 1024)); + if (archive->hasResource(MKTAG('V','W','L','B'), 1024)) { + loadLabels(*archive->getResource(MKTAG('V','W','L','B'), 1024)); } } @@ -344,7 +346,7 @@ void Score::loadLabels(Common::SeekableSubReadStreamEndian &stream) { Common::SortedArray<Label *>::iterator j; for (j = _labels->begin(); j != _labels->end(); ++j) { - debug("Frame %d, Label %s", (*j)->number, (*j)->name.c_str()); + debugC(2, kDebugLoading, "Frame %d, Label %s", (*j)->number, (*j)->name.c_str()); } } |