[Scummvm-git-logs] scummvm master -> 82211302c04f8320953d568b912052e3c6d3f11c
sev-
sev at scummvm.org
Sun Nov 13 01:15:18 CET 2016
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
82211302c0 DIRECTOR: More work on Cast loading in D4
Commit: 82211302c04f8320953d568b912052e3c6d3f11c
https://github.com/scummvm/scummvm/commit/82211302c04f8320953d568b912052e3c6d3f11c
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-11-13T01:15:12+01:00
Commit Message:
DIRECTOR: More work on Cast loading in D4
Changed paths:
engines/director/frame.cpp
engines/director/resource.cpp
engines/director/score.cpp
engines/director/score.h
diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp
index 6464943..cccfb37 100644
--- a/engines/director/frame.cpp
+++ b/engines/director/frame.cpp
@@ -559,6 +559,8 @@ void Frame::renderSprites(Graphics::ManagedSurface &surface, bool renderTrail) {
continue;
}
+ assert(_sprites[i]->_cast);
+
uint32 regX = static_cast<BitmapCast *>(_sprites[i]->_cast)->regX;
uint32 regY = static_cast<BitmapCast *>(_sprites[i]->_cast)->regY;
uint32 rectLeft = static_cast<BitmapCast *>(_sprites[i]->_cast)->initialRect.left;
@@ -646,9 +648,10 @@ Image::ImageDecoder *Frame::getImageFrom(uint16 spriteId) {
}
if (_vm->_currentScore->getArchive()->hasResource(MKTAG('B', 'I', 'T', 'D'), imgId)) {
+ warning("************");
Common::SeekableReadStream *pic = _vm->_currentScore->getArchive()->getResource(MKTAG('B', 'I', 'T', 'D'), imgId);
- if (_vm->getVersion() < 4) {
+ if (_vm->getVersion() <= 4) {
BitmapCast *bc = static_cast<BitmapCast *>(_vm->_currentScore->_casts[spriteId]);
int w = bc->initialRect.width(), h = bc->initialRect.height();
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index 54ab219..2f8ef3e 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -220,6 +220,8 @@ void DirectorEngine::loadSharedCastsFrom(Common::String filename) {
castScore->loadCastData(*shardcst->getResource(MKTAG('C','A','S','t'), *iterator), *iterator);
}
+ castScore->setSpriteCasts();
+
_sharedCasts = &castScore->_casts;
Common::Array<uint16> dib = shardcst->getResourceIDList(MKTAG('D','I','B',' '));
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 1c78745..f145364 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -381,7 +381,9 @@ void Score::loadCastDataVWCR(Common::SeekableSubReadStreamEndian &stream) {
break;
}
}
+}
+void Score::setSpriteCasts() {
// Set cast pointers to sprites
for (uint16 i = 0; i < _frames.size(); i++) {
for (uint16 j = 0; j < _frames[i]->_sprites.size(); j++) {
diff --git a/engines/director/score.h b/engines/director/score.h
index 9f60883..49e4f35 100644
--- a/engines/director/score.h
+++ b/engines/director/score.h
@@ -72,6 +72,7 @@ public:
int getCurrentFrame() { return _currentFrame; }
Common::String getMacName() const { return _macName; }
Sprite *getSpriteById(uint16 id);
+ void setSpriteCasts();
private:
void update();
More information about the Scummvm-git-logs
mailing list