From 75ccabc325d56876dd34d4a55e2034ee66d33d0b Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Mon, 18 Jan 2016 00:12:47 -0600 Subject: SCI: Implement accurate renderer architecture for SCI32 --- engines/sci/engine/selector.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'engines/sci/engine/selector.cpp') diff --git a/engines/sci/engine/selector.cpp b/engines/sci/engine/selector.cpp index 910f1f885f..05a9e6c980 100644 --- a/engines/sci/engine/selector.cpp +++ b/engines/sci/engine/selector.cpp @@ -187,6 +187,7 @@ void Kernel::mapSelectors() { FIND_SELECTOR(inLeft); FIND_SELECTOR(inBottom); FIND_SELECTOR(inRight); + FIND_SELECTOR(magnifier); #endif } @@ -211,8 +212,16 @@ void writeSelector(SegManager *segMan, reg_t object, Selector selectorId, reg_t if (lookupSelector(segMan, object, selectorId, &address, NULL) != kSelectorVariable) error("Selector '%s' of object at %04x:%04x could not be" " written to", g_sci->getKernel()->getSelectorName(selectorId).c_str(), PRINT_REG(object)); - else + else { *address.getPointer(segMan) = value; +#ifdef ENABLE_SCI32 + // TODO: Make this correct for all SCI versions + // Selectors 26 through 44 are selectors for View script objects + if (getSciVersion() >= SCI_VERSION_2 && selectorId >= 26 && selectorId <= 44) { + segMan->getObject(object)->setInfoSelectorFlag(kInfoFlagViewVisible); + } +#endif + } } void invokeSelector(EngineState *s, reg_t object, int selectorId, -- cgit v1.2.3