aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/graphics')
-rw-r--r--engines/sci/graphics/view.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/engines/sci/graphics/view.cpp b/engines/sci/graphics/view.cpp
index 5924571660..c387a58573 100644
--- a/engines/sci/graphics/view.cpp
+++ b/engines/sci/graphics/view.cpp
@@ -838,8 +838,14 @@ void GfxView::draw(const Common::Rect &rect, const Common::Rect &clipRect, const
if (g_sci->_gfxRemap16 && g_sci->_gfxRemap16->isRemapped(outputColor))
outputColor = g_sci->_gfxRemap16->remapColor(outputColor, _screen->getVisual(x2, y2));
// SCI11+ remapping (Catdate)
- if ((scaleSignal & 0x200) && g_sci->_gfxRemap16)
- outputColor = g_sci->_gfxRemap16->remapColor(253, outputColor);
+ if ((scaleSignal & 0xFF00) && g_sci->_gfxRemap16 && _resMan->testResource(ResourceId(kResourceTypeVocab, 184))) {
+ if ((scaleSignal >> 8) == 1) // all black
+ outputColor = 0;
+ else if ((scaleSignal >> 8) == 2) // darken
+ outputColor = g_sci->_gfxRemap16->remapColor(253, outputColor);
+ else if ((scaleSignal >> 8) == 3) // shadow
+ outputColor = g_sci->_gfxRemap16->remapColor(253, _screen->getVisual(x2, y2));
+ }
_screen->putPixel(x2, y2, drawMask, outputColor, priority, 0);
}
}
@@ -932,8 +938,14 @@ void GfxView::drawScaled(const Common::Rect &rect, const Common::Rect &clipRect,
if (g_sci->_gfxRemap16 && g_sci->_gfxRemap16->isRemapped(outputColor))
outputColor = g_sci->_gfxRemap16->remapColor(outputColor, _screen->getVisual(x2, y2));
// SCI11+ remapping (Catdate)
- if ((scaleSignal & 0x200) && g_sci->_gfxRemap16)
- outputColor = g_sci->_gfxRemap16->remapColor(253, outputColor);
+ if ((scaleSignal & 0xFF00) && g_sci->_gfxRemap16 && _resMan->testResource(ResourceId(kResourceTypeVocab, 184))) {
+ if ((scaleSignal >> 8) == 1) // all black
+ outputColor = 0;
+ else if ((scaleSignal >> 8) == 2) // darken
+ outputColor = g_sci->_gfxRemap16->remapColor(253, outputColor);
+ else if ((scaleSignal >> 8) == 3) // shadow
+ outputColor = g_sci->_gfxRemap16->remapColor(253, _screen->getVisual(x2, y2));
+ }
_screen->putPixel(x2, y2, drawMask, outputColor, priority, 0);
}
}