diff options
author | Filippos Karapetis | 2010-01-05 14:19:53 +0000 |
---|---|---|
committer | Filippos Karapetis | 2010-01-05 14:19:53 +0000 |
commit | 9606e7fca72645a05ecdce97cc484351e23c7ead (patch) | |
tree | 34d470f0a36cf533945f1ef51de26f5bb829756d /engines/sci/graphics/animate.cpp | |
parent | 45bf6fc0d7bb440208b21f9201a80e92db328df7 (diff) | |
download | scummvm-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.cpp | 10 |
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) { |