diff options
author | Colin Snover | 2016-11-27 10:53:06 -0600 |
---|---|---|
committer | Colin Snover | 2016-12-19 14:46:59 -0600 |
commit | 4cff1e400f7e1e885b12990a5a34772d05eb2285 (patch) | |
tree | a9e85d62fa6fd48bd2cc19d0d6a55d855fc5a6f4 /engines/sci/graphics/frameout.cpp | |
parent | 5220ce1e4f9090d0e6272d680dbfa3813233399b (diff) | |
download | scummvm-rg350-4cff1e400f7e1e885b12990a5a34772d05eb2285.tar.gz scummvm-rg350-4cff1e400f7e1e885b12990a5a34772d05eb2285.tar.bz2 scummvm-rg350-4cff1e400f7e1e885b12990a5a34772d05eb2285.zip |
SCI32: Add support for alternate graphics selectors
Used by at least Phantasmagoria 2.
Diffstat (limited to 'engines/sci/graphics/frameout.cpp')
-rw-r--r-- | engines/sci/graphics/frameout.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/engines/sci/graphics/frameout.cpp b/engines/sci/graphics/frameout.cpp index bf43c8b63b..fe43c75e5a 100644 --- a/engines/sci/graphics/frameout.cpp +++ b/engines/sci/graphics/frameout.cpp @@ -35,6 +35,7 @@ #include "sci/sci.h" #include "sci/console.h" +#include "sci/engine/features.h" #include "sci/engine/kernel.h" #include "sci/engine/state.h" #include "sci/engine/selector.h" @@ -1368,10 +1369,18 @@ bool GfxFrameout::kernelSetNowSeen(const reg_t screenItemObject) const { } Common::Rect result = screenItem->getNowSeenRect(*plane); - writeSelectorValue(_segMan, screenItemObject, SELECTOR(nsLeft), result.left); - writeSelectorValue(_segMan, screenItemObject, SELECTOR(nsTop), result.top); - writeSelectorValue(_segMan, screenItemObject, SELECTOR(nsRight), result.right - 1); - writeSelectorValue(_segMan, screenItemObject, SELECTOR(nsBottom), result.bottom - 1); + + if (g_sci->_features->usesAlternateSelectors()) { + writeSelectorValue(_segMan, screenItemObject, SELECTOR(left), result.left); + writeSelectorValue(_segMan, screenItemObject, SELECTOR(top), result.top); + writeSelectorValue(_segMan, screenItemObject, SELECTOR(right), result.right - 1); + writeSelectorValue(_segMan, screenItemObject, SELECTOR(bottom), result.bottom - 1); + } else { + writeSelectorValue(_segMan, screenItemObject, SELECTOR(nsLeft), result.left); + writeSelectorValue(_segMan, screenItemObject, SELECTOR(nsTop), result.top); + writeSelectorValue(_segMan, screenItemObject, SELECTOR(nsRight), result.right - 1); + writeSelectorValue(_segMan, screenItemObject, SELECTOR(nsBottom), result.bottom - 1); + } return true; } |