diff options
author | Paul Gilbert | 2015-01-17 16:46:57 -0500 |
---|---|---|
committer | Paul Gilbert | 2015-01-17 16:46:57 -0500 |
commit | 4ee29ef3a84186b79e00e3f50d3fb15e4c13d213 (patch) | |
tree | 9bb6e3894393e21f0b15db652f3c7ccdc4ecad72 | |
parent | 263c5924906b2fcb3303850ad919e158cb06e120 (diff) | |
download | scummvm-rg350-4ee29ef3a84186b79e00e3f50d3fb15e4c13d213.tar.gz scummvm-rg350-4ee29ef3a84186b79e00e3f50d3fb15e4c13d213.tar.bz2 scummvm-rg350-4ee29ef3a84186b79e00e3f50d3fb15e4c13d213.zip |
MADS: Add loading of SpriteInfo frame numbers for scene background sprites
-rw-r--r-- | engines/mads/scene_data.cpp | 5 | ||||
-rw-r--r-- | engines/mads/scene_data.h | 1 |
2 files changed, 4 insertions, 2 deletions
diff --git a/engines/mads/scene_data.cpp b/engines/mads/scene_data.cpp index b5e219ed04..7233e42456 100644 --- a/engines/mads/scene_data.cpp +++ b/engines/mads/scene_data.cpp @@ -86,7 +86,8 @@ void ARTHeader::load(Common::SeekableReadStream *f, bool isV2) { void SceneInfo::SpriteInfo::load(Common::SeekableReadStream *f) { f->skip(3); _spriteSetIndex = f->readByte(); - f->skip(2); + _frameNumber = f->readSByte(); + f->skip(1); _position.x = f->readSint16LE(); _position.y = f->readSint16LE(); _depth = f->readByte(); @@ -263,7 +264,7 @@ void SceneInfo::load(int sceneId, int variant, const Common::String &resName, SpriteAsset *asset = spriteSets[si._spriteSetIndex]; assert(asset && _depthStyle != 2); - MSprite *spr = asset->getFrame(asset->getCount() - 1); + MSprite *spr = asset->getFrame(si._frameNumber); bgSurface.copyFrom(spr, si._position, si._depth, &depthSurface, si._scale, spr->getTransparencyIndex()); } diff --git a/engines/mads/scene_data.h b/engines/mads/scene_data.h index 41e094b8f5..41a08f74eb 100644 --- a/engines/mads/scene_data.h +++ b/engines/mads/scene_data.h @@ -144,6 +144,7 @@ class SceneInfo { public: int _spriteSetIndex; Common::Point _position; + int _frameNumber; int _depth; int _scale; |