aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/scene_data.cpp
diff options
context:
space:
mode:
authorvanfanel2015-11-11 17:56:12 +0100
committervanfanel2015-11-11 17:56:12 +0100
commit99739a13fe844c807d3cdd87e67e207e888fd48a (patch)
tree6afbf4763326277efbf528f0bb9e587bf7a01788 /engines/mads/scene_data.cpp
parent37e157a11c3fc731dfdcf6ec6b6a5a448550219b (diff)
parent7e44493fe8877a3c6a65f83b9ed84a5f59169005 (diff)
downloadscummvm-rg350-99739a13fe844c807d3cdd87e67e207e888fd48a.tar.gz
scummvm-rg350-99739a13fe844c807d3cdd87e67e207e888fd48a.tar.bz2
scummvm-rg350-99739a13fe844c807d3cdd87e67e207e888fd48a.zip
Merge branch 'master' into dispmanx
Diffstat (limited to 'engines/mads/scene_data.cpp')
-rw-r--r--engines/mads/scene_data.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/engines/mads/scene_data.cpp b/engines/mads/scene_data.cpp
index b5e219ed04..e48bcd8c6f 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,9 +264,9 @@ 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());
+ si._scale, false, spr->getTransparencyIndex());
}
// Free the sprite sets
@@ -468,6 +469,7 @@ void SceneInfo::loadMadsV2Background(int sceneId, const Common::String &resName,
for (int i = 0; i < tileIndex; i++)
++tile;
((*tile).get())->copyTo(&bgSurface, Common::Point(x * tileWidth, y * tileHeight));
+ ((*tile).get())->free();
}
}
tileSet.clear();