diff options
author | Colin Snover | 2016-10-16 21:18:59 -0500 |
---|---|---|
committer | Colin Snover | 2016-10-16 21:21:13 -0500 |
commit | a854c7e274e1cd5ed77b219762eea6d4d67c47be (patch) | |
tree | a95174504029d745dbc55ca9ef6f2bf33abfb2fe /engines/sci | |
parent | e704e5f3c82979eec16e49e54098f8c0e57a3ac8 (diff) | |
download | scummvm-rg350-a854c7e274e1cd5ed77b219762eea6d4d67c47be.tar.gz scummvm-rg350-a854c7e274e1cd5ed77b219762eea6d4d67c47be.tar.bz2 scummvm-rg350-a854c7e274e1cd5ed77b219762eea6d4d67c47be.zip |
SCI32: Fix screen items incorrectly drawing over higher planes
Fixes Trac#9583.
Diffstat (limited to 'engines/sci')
-rw-r--r-- | engines/sci/graphics/plane32.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/engines/sci/graphics/plane32.cpp b/engines/sci/graphics/plane32.cpp index e7da8b815d..7dfaed4243 100644 --- a/engines/sci/graphics/plane32.cpp +++ b/engines/sci/graphics/plane32.cpp @@ -191,7 +191,7 @@ void Plane::addPicInternal(const GuiResourceId pictureId, const Common::Point *p delete screenItem->_celObj; screenItem->_celObj = celObj; } - _type = transparent ? kPlaneTypeTransparentPicture : kPlaneTypePicture; + _type = (getSciVersion() == SCI_VERSION_3 && transparent) ? kPlaneTypeTransparentPicture : kPlaneTypePicture; } GuiResourceId Plane::addPic(const GuiResourceId pictureId, const Common::Point &position, const bool mirrorX, const bool deleteDuplicate) { @@ -751,8 +751,12 @@ void Plane::setType() { _type = kPlaneTypeOpaque; break; case kPlanePicTransparentPicture: - _type = kPlaneTypeTransparentPicture; - break; + if (getSciVersion() == SCI_VERSION_3) { + warning("TODO: Using transparent picture plane. Rendering may be incomplete"); + _type = kPlaneTypeTransparentPicture; + break; + } + // fall through for sci2/2.1 default: if (_type != kPlaneTypeTransparentPicture) { _type = kPlaneTypePicture; |