aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/graphics/screen_item32.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/engines/sci/graphics/screen_item32.cpp b/engines/sci/graphics/screen_item32.cpp
index 58e0a1348a..25a403a70f 100644
--- a/engines/sci/graphics/screen_item32.cpp
+++ b/engines/sci/graphics/screen_item32.cpp
@@ -202,17 +202,22 @@ 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 (used in GK1, for the inventory items)
- // TODO/FIXME: Verify this against disassembly! Check if GK1 checks this selector
- // like we do here. The following bit of code is guesswork, but for now it fixes
- // the inventory in GK1, and it's really only used in that game (the "visible"
- // selector isn't present in any other SCI32 game)
+ // TODO: At this point (needs checking), GK1 seems to check for the "visible"
+ // selector of a plane object. If the object has such a selector, and it's set
+ // to 0, then the object should be hidden.
+ //
+ // This is needed for the inventory in GK1, and seemed to be used only for that
+ // game - the "visible" selector isn't present in any other SCI32 game.
+ // Possible disabled and unverified code that checks for this follows. This fixes
+ // the inventory in GK1. Verify against disassembly!
+#if 0
if (lookupSelector(segMan, object, SELECTOR(visible), NULL, NULL) != kSelectorNone) {
if (readSelectorValue(segMan, object, SELECTOR(visible)) == 0) {
_fixPriority = true;
_priority = -1;
}
}
+#endif
_z = readSelectorValue(segMan, object, SELECTOR(z));
_position.y -= _z;