diff options
-rw-r--r-- | engines/director/director.cpp | 3 | ||||
-rw-r--r-- | engines/director/score.cpp | 16 | ||||
-rw-r--r-- | engines/director/score.h | 2 |
3 files changed, 12 insertions, 9 deletions
diff --git a/engines/director/director.cpp b/engines/director/director.cpp index b7a62746e9..7b7227e597 100644 --- a/engines/director/director.cpp +++ b/engines/director/director.cpp @@ -85,8 +85,9 @@ Common::Error DirectorEngine::run() { _mainArchive->openFile("bookshelf_example.mmm"); Score score(*_mainArchive, *_lingo, *_soundManager); + score.loadArchive(); score.startLoop(); - + debug(0, "Score name %s", score.getMacName().c_str()); if (getPlatform() == Common::kPlatformWindows) loadEXE(); else diff --git a/engines/director/score.cpp b/engines/director/score.cpp index 44242eca75..32ade8bc75 100644 --- a/engines/director/score.cpp +++ b/engines/director/score.cpp @@ -48,14 +48,6 @@ Score::Score(Archive &movie, Lingo &lingo, DirectorSound &soundManager) { _lingo->processEvent(kEventPrepareMovie, 0); _movieScriptCount = 0; - assert(_movieArchive->hasResource(MKTAG('V','W','S','C'), 1024)); - assert(_movieArchive->hasResource(MKTAG('V','W','C','F'), 1024)); - assert(_movieArchive->hasResource(MKTAG('V','W','C','R'), 1024)); - - loadFrames(*_movieArchive->getResource(MKTAG('V','W','S','C'), 1024)); - loadConfig(*_movieArchive->getResource(MKTAG('V','W','C','F'), 1024)); - loadCastData(*_movieArchive->getResource(MKTAG('V','W','C','R'), 1024)); - if (_movieArchive->hasResource(MKTAG('M','C','N','M'), 0)) { _macName = _movieArchive->getName(MKTAG('M','C','N','M'), 0).c_str(); } @@ -63,7 +55,15 @@ Score::Score(Archive &movie, Lingo &lingo, DirectorSound &soundManager) { if (_movieArchive->hasResource(MKTAG('V','W','L','B'), 1024)) { loadLabels(*_movieArchive->getResource(MKTAG('V','W','L','B'), 1024)); } +} +void Score::loadArchive() { + assert(_movieArchive->hasResource(MKTAG('V','W','S','C'), 1024)); + assert(_movieArchive->hasResource(MKTAG('V','W','C','F'), 1024)); + assert(_movieArchive->hasResource(MKTAG('V','W','C','R'), 1024)); + loadFrames(*_movieArchive->getResource(MKTAG('V','W','S','C'), 1024)); + loadConfig(*_movieArchive->getResource(MKTAG('V','W','C','F'), 1024)); + loadCastData(*_movieArchive->getResource(MKTAG('V','W','C','R'), 1024)); if (_movieArchive->hasResource(MKTAG('V','W','A','C'), 1024)) { loadActions(*_movieArchive->getResource(MKTAG('V','W','A','C'), 1024)); } diff --git a/engines/director/score.h b/engines/director/score.h index 9636dfb496..9490d5f54d 100644 --- a/engines/director/score.h +++ b/engines/director/score.h @@ -289,9 +289,11 @@ public: ~Score(); static Common::Rect readRect(Common::SeekableReadStream &stream); + void loadArchive(); void startLoop(); void processEvents(); + Common::String getMacName() const { return _macName; } private: void update(); void readVersion(uint32 rid); |