aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorColin Snover2016-10-16 21:18:59 -0500
committerColin Snover2016-10-16 21:21:13 -0500
commita854c7e274e1cd5ed77b219762eea6d4d67c47be (patch)
treea95174504029d745dbc55ca9ef6f2bf33abfb2fe /engines/sci
parente704e5f3c82979eec16e49e54098f8c0e57a3ac8 (diff)
downloadscummvm-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.cpp10
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;