diff options
author | Dmitry Iskrich | 2016-06-29 15:38:36 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2016-08-03 23:40:36 +0200 |
commit | aaf8448cbc0a282a1c28f0ef4d7c738c8b87ab3b (patch) | |
tree | dc07bb7b8c7440c45b85d6fe7e3c8b0f5aed2fe7 /engines | |
parent | 7164b1531c63c825c7a2a5675bfabc1cf7887b5c (diff) | |
download | scummvm-rg350-aaf8448cbc0a282a1c28f0ef4d7c738c8b87ab3b.tar.gz scummvm-rg350-aaf8448cbc0a282a1c28f0ef4d7c738c8b87ab3b.tar.bz2 scummvm-rg350-aaf8448cbc0a282a1c28f0ef4d7c738c8b87ab3b.zip |
DIRECTOR: Add loading shared casts for Director version > 3
Diffstat (limited to 'engines')
-rw-r--r-- | engines/director/director.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/engines/director/director.cpp b/engines/director/director.cpp index 0c63525c53..10db492e59 100644 --- a/engines/director/director.cpp +++ b/engines/director/director.cpp @@ -381,17 +381,22 @@ void DirectorEngine::setPalette(byte *palette, uint16 count) { } void DirectorEngine::loadSharedCastsFrom(Common::String filename) { + Archive *shardcst; + + if (getVersion() < 4) { + shardcst = new RIFFArchive(); + } else { + shardcst = new RIFXArchive(); + } - //TODO d4 arch - RIFFArchive *shardcst = new RIFFArchive(); shardcst->openFile(filename); Score *castScore = new Score(this); - Common::SeekableSubReadStreamEndian *castStream = shardcst->getResource(MKTAG('V','W','C','R'), 1024); castScore->loadCastData(*castStream); _sharedCasts = castScore->_casts; + Common::Array<uint16> dib = shardcst->getResourceIDList(MKTAG('D','I','B',' ')); if (dib.size() != 0) { |