diff options
-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; |