aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Iskrich2016-06-29 15:38:36 +0300
committerEugene Sandulenko2016-08-03 23:40:36 +0200
commitaaf8448cbc0a282a1c28f0ef4d7c738c8b87ab3b (patch)
treedc07bb7b8c7440c45b85d6fe7e3c8b0f5aed2fe7
parent7164b1531c63c825c7a2a5675bfabc1cf7887b5c (diff)
downloadscummvm-rg350-aaf8448cbc0a282a1c28f0ef4d7c738c8b87ab3b.tar.gz
scummvm-rg350-aaf8448cbc0a282a1c28f0ef4d7c738c8b87ab3b.tar.bz2
scummvm-rg350-aaf8448cbc0a282a1c28f0ef4d7c738c8b87ab3b.zip
DIRECTOR: Add loading shared casts for Director version > 3
-rw-r--r--engines/director/director.cpp11
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) {