diff options
author | Colin Snover | 2016-01-18 00:12:47 -0600 |
---|---|---|
committer | Colin Snover | 2016-02-18 13:18:02 -0600 |
commit | 75ccabc325d56876dd34d4a55e2034ee66d33d0b (patch) | |
tree | 01961ae148804e0206aa8c7858ac879471da04dd /engines/sci/engine/selector.cpp | |
parent | 4ba0ff8deb57aba3b034462c6c00ecf13ee281c9 (diff) | |
download | scummvm-rg350-75ccabc325d56876dd34d4a55e2034ee66d33d0b.tar.gz scummvm-rg350-75ccabc325d56876dd34d4a55e2034ee66d33d0b.tar.bz2 scummvm-rg350-75ccabc325d56876dd34d4a55e2034ee66d33d0b.zip |
SCI: Implement accurate renderer architecture for SCI32
Diffstat (limited to 'engines/sci/engine/selector.cpp')
-rw-r--r-- | engines/sci/engine/selector.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
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, |