aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics/animate.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2010-01-05 14:19:53 +0000
committerFilippos Karapetis2010-01-05 14:19:53 +0000
commit9606e7fca72645a05ecdce97cc484351e23c7ead (patch)
tree34d470f0a36cf533945f1ef51de26f5bb829756d /engines/sci/graphics/animate.cpp
parent45bf6fc0d7bb440208b21f9201a80e92db328df7 (diff)
downloadscummvm-rg350-9606e7fca72645a05ecdce97cc484351e23c7ead.tar.gz
scummvm-rg350-9606e7fca72645a05ecdce97cc484351e23c7ead.tar.bz2
scummvm-rg350-9606e7fca72645a05ecdce97cc484351e23c7ead.zip
Some initial work on SCI1.1 view scaling (not working yet)
svn-id: r47027
Diffstat (limited to 'engines/sci/graphics/animate.cpp')
-rw-r--r--engines/sci/graphics/animate.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/engines/sci/graphics/animate.cpp b/engines/sci/graphics/animate.cpp
index c82fcbf10e..ea70212975 100644
--- a/engines/sci/graphics/animate.cpp
+++ b/engines/sci/graphics/animate.cpp
@@ -347,7 +347,7 @@ void SciGuiAnimate::drawCels() {
reg_t bitsHandle;
AnimateList::iterator listIterator;
AnimateList::iterator listEnd = _list.end();
-
+ uint16 scaleX = 128, scaleY = 128; // no scaling
_lastCastCount = 0;
listIterator = _list.begin();
@@ -361,8 +361,14 @@ void SciGuiAnimate::drawCels() {
bitsHandle = _gfx->BitsSave(listEntry->celRect, SCI_SCREEN_MASK_ALL);
PUT_SEL32(_s->_segMan, curObject, underBits, bitsHandle);
+ if (getSciVersion() >= SCI_VERSION_1_1) {
+ // View scaling
+ scaleX = GET_SEL32V(_s->_segMan, curObject, scaleX);
+ scaleY = GET_SEL32V(_s->_segMan, curObject, scaleY);
+ }
+
// draw corresponding cel
- _gfx->drawCel(listEntry->viewId, listEntry->loopNo, listEntry->celNo, listEntry->celRect, listEntry->priority, listEntry->paletteNo);
+ _gfx->drawCel(listEntry->viewId, listEntry->loopNo, listEntry->celNo, listEntry->celRect, listEntry->priority, listEntry->paletteNo, -1, scaleX, scaleY);
listEntry->showBitsFlag = true;
if (signal & kSignalRemoveView) {