Skip to content

Commit

Permalink
DIRECTOR: Loading shared DIB, STXT
Browse files Browse the repository at this point in the history
  • Loading branch information
Dmitry Iskrich authored and sev- committed Aug 3, 2016
1 parent 16cca80 commit 9319eee
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 4 deletions.
22 changes: 20 additions & 2 deletions engines/director/director.cpp
Expand Up @@ -372,7 +372,7 @@ void DirectorEngine::setPalette(byte *palette, uint16 count) {
_currentPaletteLength = count;
}

Common::HashMap<int, Cast *> DirectorEngine::loadSharedCastsFrom(Common::String filename) {
void DirectorEngine::loadSharedCastsFrom(Common::String filename) {

//TODO d4 arch
RIFFArchive *shardcst = new RIFFArchive();
Expand All @@ -383,6 +383,24 @@ Common::HashMap<int, Cast *> DirectorEngine::loadSharedCastsFrom(Common::String
Common::SeekableSubReadStreamEndian *castStream = shardcst->getResource(MKTAG('V','W','C','R'), 1024);

castScore->loadCastData(*castStream);
return castScore->_casts;
_sharedCasts = castScore->_casts;
Common::Array<uint16> dib = shardcst->getResourceIDList(MKTAG('D','I','B',' '));

if (dib.size() != 0) {
Common::Array<uint16>::iterator iterator;
for (iterator = dib.begin(); iterator != dib.end(); ++iterator) {
_sharedDIB[*iterator] = shardcst->getResource(MKTAG('D','I','B',' '), *iterator);
}
}

Common::Array<uint16> stxt = shardcst->getResourceIDList(MKTAG('D','I','B',' '));

if (stxt.size() != 0) {
Common::Array<uint16>::iterator iterator;
for (iterator = stxt.begin(); iterator != stxt.end(); ++iterator) {
_sharedSTXT[*iterator] = shardcst->getResource(MKTAG('S','T','X','T'), *iterator);
}
}
}

} // End of namespace Director
6 changes: 4 additions & 2 deletions engines/director/director.h
Expand Up @@ -66,7 +66,7 @@ class DirectorEngine : public ::Engine {
bool hasFeature(EngineFeature f) const;
const byte *getPalette() const { return _currentPalette; }
uint16 getPaletteColorCount() const { return _currentPaletteLength; }
Common::HashMap<int, Cast *> loadSharedCastsFrom(Common::String filename);
void loadSharedCastsFrom(Common::String filename);

Common::HashMap<Common::String, Score *> *_movies;
Score *_currentScore;
Expand All @@ -88,7 +88,9 @@ class DirectorEngine : public ::Engine {
void loadMac();

Common::String readPascalString(Common::SeekableReadStream &stream);

Common::HashMap<int, Cast *> _sharedCasts;
Common::HashMap<int, Common::SeekableReadStream *> _sharedDIB;
Common::HashMap<int, Common::SeekableReadStream *> _sharedSTXT;
Archive *_mainArchive;
Common::MacResManager *_macBinary;
DirectorSound *_soundManager;
Expand Down

0 comments on commit 9319eee

Please sign in to comment.