[Scummvm-git-logs] scummvm master -> 7df744c291e5fcf5dc7afd3b21189c2c56810f8e
sev-
sev at scummvm.org
Tue Aug 30 10:13:48 CEST 2016
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
736f5e61db DIRECTOR: Fix archive scanning at the start
c207d703fe DIRECTOR: Fixed shared cast loading
7df744c291 DIRECTOR: Fix class initialization
Commit: 736f5e61db244a62c03eb1dfcfa3786f4005255a
https://github.com/scummvm/scummvm/commit/736f5e61db244a62c03eb1dfcfa3786f4005255a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-08-30T09:46:34+02:00
Commit Message:
DIRECTOR: Fix archive scanning at the start
Changed paths:
engines/director/archive.cpp
engines/director/director.cpp
diff --git a/engines/director/archive.cpp b/engines/director/archive.cpp
index 1b68649..4d85d33 100644
--- a/engines/director/archive.cpp
+++ b/engines/director/archive.cpp
@@ -29,10 +29,13 @@
namespace Director {
Archive *DirectorEngine::createArchive() {
- if (getVersion() < 4) {
- return new RIFFArchive();
+ if (getPlatform() == Common::kPlatformMacintosh) {
+ if (getVersion() < 4)
+ return new MacArchive();
+ else
+ return new RIFXArchive();
} else {
- return new RIFXArchive();
+ return new RIFFArchive();
}
}
diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index d03236e..f868c9a 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -142,13 +142,13 @@ Common::HashMap<Common::String, Score *> DirectorEngine::loadMMMNames(Common::St
for (Common::FSList::const_iterator i = movies.begin(); i != movies.end(); ++i) {
debugC(2, kDebugLoading, "File: %s", i->getName().c_str());
if (Common::matchString(i->getName().c_str(), sharedMMMname, true)) {
- loadSharedCastsFrom(i->getPath());
+ loadSharedCastsFrom(i->getName());
continue;
}
Archive *arc = createArchive();
- arc->openFile(i->getPath());
+ arc->openFile(i->getName());
Score *sc = new Score(this, arc);
nameMap[sc->getMacName()] = sc;
}
Commit: c207d703fea29f9630e4776b14d78eb8138b1aa3
https://github.com/scummvm/scummvm/commit/c207d703fea29f9630e4776b14d78eb8138b1aa3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-08-30T09:55:20+02:00
Commit Message:
DIRECTOR: Fixed shared cast loading
Changed paths:
engines/director/archive.cpp
engines/director/director.cpp
engines/director/score.cpp
engines/director/score.h
diff --git a/engines/director/archive.cpp b/engines/director/archive.cpp
index 4d85d33..5b22b45 100644
--- a/engines/director/archive.cpp
+++ b/engines/director/archive.cpp
@@ -196,21 +196,22 @@ void DirectorEngine::loadSharedCastsFrom(Common::String filename) {
shardcst->openFile(filename);
+ _sharedDIB = new Common::HashMap<int, Common::SeekableSubReadStreamEndian *>;
+ _sharedSTXT = new Common::HashMap<int, Common::SeekableSubReadStreamEndian *>;
+ _sharedSound = new Common::HashMap<int, Common::SeekableSubReadStreamEndian *>;
+ _sharedBMP = new Common::HashMap<int, Common::SeekableSubReadStreamEndian *>;
+
Score *castScore = new Score(this, shardcst);
- Common::Array<uint16> cast = shardcst->getResourceIDList(MKTAG('V','W','C','R'));
- if (cast.size() == 1) {
- for (Common::Array<uint16>::iterator iterator = cast.begin(); iterator != cast.end(); ++iterator) {
- debugC(3, kDebugLoading, "Shared VWCR %d", *iterator);
- castScore->loadCastData(*shardcst->getResource(MKTAG('V','W','C','R'), *iterator));
- *_sharedCasts = castScore->_casts;
- }
- } else {
- error("Incorrect number of VWCR in shared cast '%s': %d", filename.c_str(), cast.size());
- }
+ castScore->loadConfig(*shardcst->getResource(MKTAG('V','W','C','F'), 1024));
+ castScore->loadCastData(*shardcst->getResource(MKTAG('V','W','C','R'), 1024));
+
+ _sharedCasts = &castScore->_casts;
Common::Array<uint16> dib = shardcst->getResourceIDList(MKTAG('D','I','B',' '));
if (dib.size() != 0) {
+ debugC(3, kDebugLoading, "Loading %d DIBs", dib.size());
+
for (Common::Array<uint16>::iterator iterator = dib.begin(); iterator != dib.end(); ++iterator) {
debugC(3, kDebugLoading, "Shared DIB %d", *iterator);
_sharedDIB->setVal(*iterator, shardcst->getResource(MKTAG('D','I','B',' '), *iterator));
@@ -219,6 +220,8 @@ void DirectorEngine::loadSharedCastsFrom(Common::String filename) {
Common::Array<uint16> stxt = shardcst->getResourceIDList(MKTAG('S','T','X','T'));
if (stxt.size() != 0) {
+ debugC(3, kDebugLoading, "Loading %d STXTs", stxt.size());
+
for (Common::Array<uint16>::iterator iterator = stxt.begin(); iterator != stxt.end(); ++iterator) {
debugC(3, kDebugLoading, "Shared STXT %d", *iterator);
_sharedSTXT->setVal(*iterator, shardcst->getResource(MKTAG('S','T','X','T'), *iterator));
@@ -227,16 +230,16 @@ void DirectorEngine::loadSharedCastsFrom(Common::String filename) {
Common::Array<uint16> bmp = shardcst->getResourceIDList(MKTAG('B','I','T','D'));
if (bmp.size() != 0) {
+ debugC(3, kDebugLoading, "Loading %d BITDs", bmp.size());
for (Common::Array<uint16>::iterator iterator = bmp.begin(); iterator != bmp.end(); ++iterator) {
_sharedBMP->setVal(*iterator, shardcst->getResource(MKTAG('B','I','T','D'), *iterator));
}
}
Common::Array<uint16> sound = shardcst->getResourceIDList(MKTAG('S','N','D',' '));
-
if (stxt.size() != 0) {
- Common::Array<uint16>::iterator iterator;
- for (iterator = sound.begin(); iterator != sound.end(); ++iterator) {
+ debugC(3, kDebugLoading, "Loading %d SNDs", sound.size());
+ for (Common::Array<uint16>::iterator iterator = sound.begin(); iterator != sound.end(); ++iterator) {
_sharedSound->setVal(*iterator, shardcst->getResource(MKTAG('S','N','D',' '), *iterator));
}
}
diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index f868c9a..1e46d2b 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -47,10 +47,6 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
syncSoundSettings();
_sharedCasts = nullptr;
- _sharedSound = nullptr;
- _sharedBMP = nullptr;
- _sharedSTXT = nullptr;
- _sharedDIB = nullptr;
_currentScore = nullptr;
_soundManager = nullptr;
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 8278c28..6d6d022 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -272,6 +272,8 @@ void Score::readVersion(uint32 rid) {
}
void Score::loadCastData(Common::SeekableSubReadStreamEndian &stream) {
+ debugC(1, kDebugLoading, "Score::loadCastData(). start: %d, end: %d", _castArrayStart, _castArrayEnd);
+
for (uint16 id = _castArrayStart; id <= _castArrayEnd; id++) {
byte size = stream.readByte();
if (size == 0)
diff --git a/engines/director/score.h b/engines/director/score.h
index 35e6f97..a9ac1f9 100644
--- a/engines/director/score.h
+++ b/engines/director/score.h
@@ -183,6 +183,7 @@ public:
void startLoop();
void processEvents();
Archive *getArchive() const { return _movieArchive; };
+ void loadConfig(Common::SeekableSubReadStreamEndian &stream);
void loadCastData(Common::SeekableSubReadStreamEndian &stream);
void setCurrentFrame(uint16 frameId) { _currentFrame = frameId; }
Common::String getMacName() const { return _macName; }
@@ -190,7 +191,6 @@ public:
private:
void update();
void readVersion(uint32 rid);
- void loadConfig(Common::SeekableSubReadStreamEndian &stream);
void loadPalette(Common::SeekableSubReadStreamEndian &stream);
void loadFrames(Common::SeekableSubReadStreamEndian &stream);
void loadLabels(Common::SeekableSubReadStreamEndian &stream);
Commit: 7df744c291e5fcf5dc7afd3b21189c2c56810f8e
https://github.com/scummvm/scummvm/commit/7df744c291e5fcf5dc7afd3b21189c2c56810f8e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-08-30T10:13:09+02:00
Commit Message:
DIRECTOR: Fix class initialization
Changed paths:
engines/director/director.cpp
diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index 1e46d2b..40796f0 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -54,6 +54,12 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
_currentPaletteLength = 0;
_lingo = nullptr;
+ _sharedCasts = nullptr;
+ _sharedSound = nullptr;
+ _sharedBMP = nullptr;
+ _sharedSTXT = nullptr;
+ _sharedDIB = nullptr;
+
_mainArchive = nullptr;
_macBinary = nullptr;
More information about the Scummvm-git-logs
mailing list