aboutsummaryrefslogtreecommitdiff
path: root/engines/director/resource.cpp
diff options
context:
space:
mode:
authorstevenhoefel2017-04-13 14:41:00 +1000
committerstevenhoefel2017-04-13 14:41:00 +1000
commitbcc3fffc2d5f48adc3dc2618cba9b5fa5093ca62 (patch)
tree4611371d4aabddef168118154d626a7435b62d70 /engines/director/resource.cpp
parent5741ee3103ec9a7a1802b020dad243c21e71572e (diff)
downloadscummvm-rg350-bcc3fffc2d5f48adc3dc2618cba9b5fa5093ca62.tar.gz
scummvm-rg350-bcc3fffc2d5f48adc3dc2618cba9b5fa5093ca62.tar.bz2
scummvm-rg350-bcc3fffc2d5f48adc3dc2618cba9b5fa5093ca62.zip
DIRECTOR: D5 Shared Cast loading.
Diffstat (limited to 'engines/director/resource.cpp')
-rw-r--r--engines/director/resource.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index dc961b86eb..da3b1b2fed 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -40,7 +40,10 @@ Archive *DirectorEngine::createArchive() {
else
return new RIFXArchive();
} else {
- return new RIFFArchive();
+ if (getVersion() < 4)
+ return new RIFFArchive();
+ else
+ return new RIFXArchive();
}
}
@@ -269,8 +272,10 @@ void DirectorEngine::loadSharedCastsFrom(Common::String filename) {
if (cast.size() > 0) {
debug(0, "****** Loading %d CASt resources", cast.size());
- for (Common::Array<uint16>::iterator iterator = cast.begin(); iterator != cast.end(); ++iterator)
- _sharedScore->loadCastData(*shardcst->getResource(MKTAG('C','A','S','t'), *iterator), *iterator, NULL);
+ for (Common::Array<uint16>::iterator iterator = cast.begin(); iterator != cast.end(); ++iterator) {
+ Resource res = shardcst->getResourceDetail(MKTAG('C', 'A', 'S', 't'), *iterator);
+ _sharedScore->loadCastData(*shardcst->getResource(MKTAG('C', 'A', 'S', 't'), *iterator), *iterator, &res);
+ }
}
Common::Array<uint16> vwci = shardcst->getResourceIDList(MKTAG('V', 'W', 'C', 'I'));