aboutsummaryrefslogtreecommitdiff
path: root/engines/director/director.cpp
diff options
context:
space:
mode:
authorDmitry Iskrich2016-06-27 21:11:26 +0300
committerEugene Sandulenko2016-08-03 23:40:36 +0200
commit825a9fb29f39226a6be0f66ed0253ebafa8b143f (patch)
treea884111154ca790088f092c152c56e5129e748ad /engines/director/director.cpp
parent840487d2ef1aa50748e526bd70dc2b7a3677d7eb (diff)
downloadscummvm-rg350-825a9fb29f39226a6be0f66ed0253ebafa8b143f.tar.gz
scummvm-rg350-825a9fb29f39226a6be0f66ed0253ebafa8b143f.tar.bz2
scummvm-rg350-825a9fb29f39226a6be0f66ed0253ebafa8b143f.zip
DIRECTOR: Load shared casts in engine
Diffstat (limited to 'engines/director/director.cpp')
-rw-r--r--engines/director/director.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index cb31f88aa0..2c8441d1d9 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -56,6 +56,7 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
_mainArchive = 0;
_macBinary = 0;
_currentPalette = 0;
+
_movies = new Common::HashMap<Common::String, Score *>();
const Common::FSNode gameDataDir(ConfMan.get("path"));
SearchMan.addSubDirectoryMatching(gameDataDir, "data");
@@ -370,4 +371,17 @@ void DirectorEngine::setPalette(byte *palette, uint16 count) {
_currentPaletteLength = count;
}
+Common::HashMap<int, Cast *> DirectorEngine::loadSharedCastsFrom(Common::String filename) {
+
+ //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);
+ return castScore->_casts;
+}
} // End of namespace Director