aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kiewitz2010-01-29 14:05:21 +0000
committerMartin Kiewitz2010-01-29 14:05:21 +0000
commit1bcbd71c976b1a1159c2a44ec9cdc41acfb6791c (patch)
tree74230adbdaad9e9eaa80ca451de5a9265dbd882e
parentcaeafb29ffa0d45998dfafa7e8d431636f1dab60 (diff)
downloadscummvm-rg350-1bcbd71c976b1a1159c2a44ec9cdc41acfb6791c.tar.gz
scummvm-rg350-1bcbd71c976b1a1159c2a44ec9cdc41acfb6791c.tar.bz2
scummvm-rg350-1bcbd71c976b1a1159c2a44ec9cdc41acfb6791c.zip
SCI: hacked up a bit sci32 graphics to support (theoretically) scaling
svn-id: r47668
-rw-r--r--engines/sci/graphics/gui.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/engines/sci/graphics/gui.cpp b/engines/sci/graphics/gui.cpp
index 5d3362598f..b5a567b727 100644
--- a/engines/sci/graphics/gui.cpp
+++ b/engines/sci/graphics/gui.cpp
@@ -974,6 +974,8 @@ void SciGui::frameOut() {
uint16 leftPos = GET_SEL32V(_s->_segMan, viewObj, x);
uint16 topPos = GET_SEL32V(_s->_segMan, viewObj, y);
priority = GET_SEL32V(_s->_segMan, viewObj, priority);
+ uint16 scaleX = GET_SEL32V(_s->_segMan, viewObj, scaleX);
+ uint16 scaleY = GET_SEL32V(_s->_segMan, viewObj, scaleY);
//int16 signal = GET_SEL32V(_s->_segMan, viewObj, signal);
// FIXME: See above
@@ -991,8 +993,17 @@ void SciGui::frameOut() {
continue;
}
- if (viewId != 0xffff)
- drawCel(viewId, loopNo, celNo, leftPos, topPos, priority, 0);
+ if (viewId != 0xffff) {
+ Common::Rect celRect;
+ View *view = _gfx->getView(viewId);
+ celRect.left = leftPos;
+ celRect.top = topPos;
+ celRect.right = celRect.left + view->getWidth(loopNo, celNo);
+ celRect.bottom = celRect.top + view->getHeight(loopNo, celNo);
+ celRect.clip(_gfx->_curPort->rect);
+ _gfx->drawCel(view, loopNo, celNo, celRect, priority, 0, scaleX, scaleY);
+ }
+ //drawCel(viewId, loopNo, celNo, leftPos, topPos, priority, 0);
}
}
}