From 0012390f2ad1c417d68e7db74717a6d996ce41ee Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Tue, 1 Mar 2016 20:18:29 +0100 Subject: [PATCH] SCI32: Fix index/offset mixup in updateInfoFlagViewVisible --- engines/sci/engine/selector.cpp | 4 ++-- engines/sci/engine/selector.h | 4 ++-- engines/sci/engine/vm.cpp | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/engines/sci/engine/selector.cpp b/engines/sci/engine/selector.cpp index 320f2c0664bb..1393e9688071 100644 --- a/engines/sci/engine/selector.cpp +++ b/engines/sci/engine/selector.cpp @@ -207,10 +207,10 @@ reg_t readSelector(SegManager *segMan, reg_t object, Selector selectorId) { } #ifdef ENABLE_SCI32 -void updateInfoFlagViewVisible(Object *obj, int offset) { +void updateInfoFlagViewVisible(Object *obj, int index) { // TODO: Make this correct for all SCI versions // Selectors 26 through 44 are selectors for View script objects in SQ6 - if (offset >= 26 && offset <= 44 && getSciVersion() >= SCI_VERSION_2) { + if (index >= 26 && index <= 44 && getSciVersion() >= SCI_VERSION_2) { obj->setInfoSelectorFlag(kInfoFlagViewVisible); } } diff --git a/engines/sci/engine/selector.h b/engines/sci/engine/selector.h index 1952ca059917..a8bbbe75e381 100644 --- a/engines/sci/engine/selector.h +++ b/engines/sci/engine/selector.h @@ -201,10 +201,10 @@ void invokeSelector(EngineState *s, reg_t object, int selectorId, /** * SCI32 set kInfoFlagViewVisible in the -info- selector if a certain * range of properties was written to. - * This function checks if offset is in the right range, and sets the flag + * This function checks if index is in the right range, and sets the flag * on obj.-info- if it is. */ -void updateInfoFlagViewVisible(Object *obj, int offset); +void updateInfoFlagViewVisible(Object *obj, int index); #endif } // End of namespace Sci diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp index 66d9fee5fde2..64e6c045dbce 100644 --- a/engines/sci/engine/vm.cpp +++ b/engines/sci/engine/vm.cpp @@ -1100,7 +1100,7 @@ void run_vm(EngineState *s) { // Accumulator To Property validate_property(s, obj, opparams[0]) = s->r_acc; #ifdef ENABLE_SCI32 - updateInfoFlagViewVisible(obj, opparams[0]); + updateInfoFlagViewVisible(obj, opparams[0]>>1); #endif break; @@ -1113,7 +1113,7 @@ void run_vm(EngineState *s) { // Stack To Property validate_property(s, obj, opparams[0]) = POP32(); #ifdef ENABLE_SCI32 - updateInfoFlagViewVisible(obj, opparams[0]); + updateInfoFlagViewVisible(obj, opparams[0]>>1); #endif break; @@ -1130,7 +1130,7 @@ void run_vm(EngineState *s) { else opProperty -= 1; #ifdef ENABLE_SCI32 - updateInfoFlagViewVisible(obj, opparams[0]); + updateInfoFlagViewVisible(obj, opparams[0]>>1); #endif if (opcode == op_ipToa || opcode == op_dpToa) s->r_acc = opProperty;