From 3d4fb4ccb4f8bed013e6be9f9c677a071e84266d Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Sat, 1 Apr 2017 22:01:22 -0500 Subject: SCI32: Fix mustSetViewVisible for SCI3 In SCI2/2.1, variable indexes are used along with a range encoded in the interpreter executable to determine whether an object variable is a view-related variable. Operands to aTop, sTop, ipToa, dpToa, ipTos, and dpTos are byte offsets into an object, which are divided by two to get the varindex to check against the interpreter range. In SCI3, objects in game scripts contain groups of 32 selectors, and each group has a flag that says whether or not the selectors in that group are view-related. Operands to aTop, sTop, ipToa, dpToa, ipTos, and dpTos are selectors. --- engines/sci/engine/selector.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engines/sci/engine/selector.cpp') diff --git a/engines/sci/engine/selector.cpp b/engines/sci/engine/selector.cpp index 7f509f3968..e28ae799c6 100644 --- a/engines/sci/engine/selector.cpp +++ b/engines/sci/engine/selector.cpp @@ -230,8 +230,8 @@ reg_t readSelector(SegManager *segMan, reg_t object, Selector selectorId) { } #ifdef ENABLE_SCI32 -void updateInfoFlagViewVisible(Object *obj, int index) { - if (getSciVersion() >= SCI_VERSION_2 && obj->mustSetViewVisible(index)) { +void updateInfoFlagViewVisible(Object *obj, int index, bool fromPropertyOp) { + if (getSciVersion() >= SCI_VERSION_2 && obj->mustSetViewVisible(index, fromPropertyOp)) { obj->setInfoSelectorFlag(kInfoFlagViewVisible); } } -- cgit v1.2.3