aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics/view.cpp
diff options
context:
space:
mode:
authorMartin Kiewitz2010-01-07 14:46:29 +0000
committerMartin Kiewitz2010-01-07 14:46:29 +0000
commit519e80ca8b57bb7b68a13cea6e83c0404fe0a414 (patch)
treeeb19c6176dfa1b3c26cd9311cf50f8422058760d /engines/sci/graphics/view.cpp
parent5b063e2d939208415d6940eecfa56720108d4a27 (diff)
downloadscummvm-rg350-519e80ca8b57bb7b68a13cea6e83c0404fe0a414.tar.gz
scummvm-rg350-519e80ca8b57bb7b68a13cea6e83c0404fe0a414.tar.bz2
scummvm-rg350-519e80ca8b57bb7b68a13cea6e83c0404fe0a414.zip
SCI: implemented additional drawCel for hires views, fixes menu bar of kq6 - still need to fix coordinates and implement save/restoreBits for hires
svn-id: r47116
Diffstat (limited to 'engines/sci/graphics/view.cpp')
-rw-r--r--engines/sci/graphics/view.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/engines/sci/graphics/view.cpp b/engines/sci/graphics/view.cpp
index 5c78c2a39c..b93258489d 100644
--- a/engines/sci/graphics/view.cpp
+++ b/engines/sci/graphics/view.cpp
@@ -460,7 +460,7 @@ void View::unditherBitmap(byte *bitmapPtr, int16 width, int16 height, byte clear
}
}
-void View::draw(Common::Rect rect, Common::Rect clipRect, Common::Rect clipRectTranslated, int16 loopNo, int16 celNo, byte priority, uint16 EGAmappingNr, int16 origHeight, uint16 scaleX, uint16 scaleY) {
+void View::draw(Common::Rect rect, Common::Rect clipRect, Common::Rect clipRectTranslated, int16 loopNo, int16 celNo, byte priority, uint16 EGAmappingNr, bool upscaledHires, uint16 scaleX, uint16 scaleY) {
Palette *palette = _embeddedPal ? &_viewPalette : &_palette->_sysPalette;
CelInfo *celInfo = getCelInfo(loopNo, celNo);
byte *bitmap = getBitmap(loopNo, celNo);
@@ -487,7 +487,8 @@ void View::draw(Common::Rect rect, Common::Rect clipRect, Common::Rect clipRectT
for (x = 0; x < width; x++) {
color = bitmap[x];
if (color != clearKey && priority >= _screen->getPriority(clipRectTranslated.left + x, clipRectTranslated.top + y)) {
- if (origHeight == -1) // HACK: this parameter is passed for already scaled views, but we're not actually using it
+ // UpscaledHires means view is hires and is supposed to get drawn onto lowres screen
+ if (!upscaledHires)
_screen->putPixel(clipRectTranslated.left + x, clipRectTranslated.top + y, drawMask, palette->mapping[color], priority, 0);
else
_screen->putPixelOnDisplay(clipRectTranslated.left + x, clipRectTranslated.top + y, palette->mapping[color]);