From 4cff1e400f7e1e885b12990a5a34772d05eb2285 Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Sun, 27 Nov 2016 10:53:06 -0600 Subject: SCI32: Add support for alternate graphics selectors Used by at least Phantasmagoria 2. --- engines/sci/graphics/frameout.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'engines/sci/graphics/frameout.cpp') 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; } -- cgit v1.2.3