aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorFilippos Karapetis2016-02-20 13:56:13 +0200
committerFilippos Karapetis2016-02-20 13:57:11 +0200
commitb3b6de4fd0dedfbf913a433d1a93cf186a678e70 (patch)
treee7505f7c80b6af29ae8ad970c5cfd8192a128a4c /engines/sci
parent1dd7844c992187ff5536bd72620c9c69e665f345 (diff)
downloadscummvm-rg350-b3b6de4fd0dedfbf913a433d1a93cf186a678e70.tar.gz
scummvm-rg350-b3b6de4fd0dedfbf913a433d1a93cf186a678e70.tar.bz2
scummvm-rg350-b3b6de4fd0dedfbf913a433d1a93cf186a678e70.zip
SCI: Handle the "visible" object selector. Fixes the inventory in GK1
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/graphics/screen_item32.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/engines/sci/graphics/screen_item32.cpp b/engines/sci/graphics/screen_item32.cpp
index 6b169be6ac..98d65406a6 100644
--- a/engines/sci/graphics/screen_item32.cpp
+++ b/engines/sci/graphics/screen_item32.cpp
@@ -202,6 +202,15 @@ void ScreenItem::setFromObject(SegManager *segMan, const reg_t object, const boo
writeSelectorValue(segMan, object, SELECTOR(priority), _position.y);
}
+ // Check if the entry should be hidden
+ // TODO: Verify this against disassembly!
+ if (lookupSelector(segMan, object, SELECTOR(visible), NULL, NULL) != kSelectorNone) {
+ if (readSelectorValue(segMan, object, SELECTOR(visible)) == 0) {
+ _fixPriority = true;
+ _priority = -1;
+ }
+ }
+
_z = readSelectorValue(segMan, object, SELECTOR(z));
_position.y -= _z;