diff options
author | Sven Hesse | 2008-05-17 23:55:04 +0000 |
---|---|---|
committer | Sven Hesse | 2008-05-17 23:55:04 +0000 |
commit | 4e785a9e73f6dd8b637474c4983abf2f5cfe5318 (patch) | |
tree | 343f447be8bb79ba0c9c97eb5b5cae3935974dd3 /engines/gob/draw_v2.cpp | |
parent | 1fc25f99974e2d5b56e17bb50c69d2dd5aa06885 (diff) | |
download | scummvm-rg350-4e785a9e73f6dd8b637474c4983abf2f5cfe5318.tar.gz scummvm-rg350-4e785a9e73f6dd8b637474c4983abf2f5cfe5318.tar.bz2 scummvm-rg350-4e785a9e73f6dd8b637474c4983abf2f5cfe5318.zip |
Changing the split stuff again, fixing several scrolling and hotspot-text related issues
svn-id: r32161
Diffstat (limited to 'engines/gob/draw_v2.cpp')
-rw-r--r-- | engines/gob/draw_v2.cpp | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/engines/gob/draw_v2.cpp b/engines/gob/draw_v2.cpp index 1195e35e93..8c12079b83 100644 --- a/engines/gob/draw_v2.cpp +++ b/engines/gob/draw_v2.cpp @@ -247,10 +247,7 @@ void Draw_v2::printTotText(int16 id) { if (_renderFlags & RENDERFLAG_FROMSPLIT) { int16 start; - if (_vm->_video->_splitHeight1 < _vm->_height) - start = _vm->_video->_splitHeight1; - else - start = _vm->_video->_splitStart; + start = _vm->_video->_splitStart; destY = start; spriteBottom = READ_LE_UINT16(ptr + 6) - READ_LE_UINT16(ptr + 2); @@ -654,22 +651,23 @@ void Draw_v2::spriteOperation(int16 operation) { int16 destSurface = _destSurface; int16 sourceSurface = _sourceSurface; - if ((_destSpriteY >= _vm->_video->_splitHeight1) && - ((_destSurface == 20) || (_destSurface == 21))) { - - if (_vm->_video->_splitHeight1 < _vm->_height) { - _destSpriteY = (_destSpriteY - _vm->_video->_splitHeight1) + _vm->_video->_splitStart; + if (_vm->_video->_splitSurf && ((_destSurface == 20) || (_destSurface == 21))) { + if ((_destSpriteY >= _vm->_video->_splitStart)) { + _destSpriteY -= _vm->_video->_splitStart; if ((operation == DRAW_DRAWLINE) || ((operation >= DRAW_DRAWBAR) && (operation <= DRAW_FILLRECTABS))) - _spriteBottom = (_spriteBottom - _vm->_video->_splitHeight1) + _vm->_video->_splitStart; + _spriteBottom -= _vm->_video->_splitStart; + + _destSurface += 4; } - } + if ((_spriteTop >= _vm->_video->_splitStart) && (operation == DRAW_BLITSURF)) { + _spriteTop -= _vm->_video->_splitStart; + if (_destSurface < 24) + _destSurface += 4; + } - if ((_spriteTop >= _vm->_video->_splitHeight1) && (operation == DRAW_BLITSURF) && - ((_destSurface == 20) || (_destSurface == 21))) - if (_vm->_video->_splitHeight1 < _vm->_height) - _spriteTop = (_spriteTop - _vm->_video->_splitHeight1) + _vm->_video->_splitStart; + } adjustCoords(0, &_destSpriteX, &_destSpriteY); if ((operation != DRAW_LOADSPRITE) && (_needAdjust != 2)) { |