diff options
author | Alyssa Milburn | 2012-08-23 23:16:52 +0200 |
---|---|---|
committer | Alyssa Milburn | 2012-08-25 08:41:21 +0200 |
commit | 0163bd38e8ba45635237340a69894c3678ed5f50 (patch) | |
tree | 7aa4ee4932d975d46c30416575e778490fb259c8 | |
parent | 61b11037c3d05e527932b37b556b655531836373 (diff) | |
download | scummvm-rg350-0163bd38e8ba45635237340a69894c3678ed5f50.tar.gz scummvm-rg350-0163bd38e8ba45635237340a69894c3678ed5f50.tar.bz2 scummvm-rg350-0163bd38e8ba45635237340a69894c3678ed5f50.zip |
TONY: Fix background dirty rect handling.
Reset the scrolling state on load, so that when a new scene is
loaded, the background is redrawn. Also, revert the workaround
in d0d15af9, since this (hopefully) fixes the underlying problem.
-rw-r--r-- | engines/tony/loc.cpp | 7 | ||||
-rw-r--r-- | engines/tony/window.cpp | 7 |
2 files changed, 5 insertions, 9 deletions
diff --git a/engines/tony/loc.cpp b/engines/tony/loc.cpp index a2dd7e097d..dedac199fa 100644 --- a/engines/tony/loc.cpp +++ b/engines/tony/loc.cpp @@ -1945,9 +1945,6 @@ RMLocation::RMLocation() { _buf = NULL; TEMPNumLoc = 0; _cmode = CM_256; - - _prevScroll.set(-1, -1); - _prevFixedScroll.set(-1, -1); } @@ -2020,6 +2017,10 @@ bool RMLocation::load(RMDataStream &ds) { byte cm; int i; + // Reset dirty rectangling + _prevScroll.set(-1, -1); + _prevFixedScroll.set(-1, -1); + // Check the ID ds >> id[0] >> id[1] >> id[2]; diff --git a/engines/tony/window.cpp b/engines/tony/window.cpp index 3806aa67c8..b603fa39f3 100644 --- a/engines/tony/window.cpp +++ b/engines/tony/window.cpp @@ -140,16 +140,11 @@ void RMWindow::getNewFrame(RMGfxTargetBuffer &bigBuf, Common::Rect *rcBoundEllip // Get a pointer to the bytes of the source buffer byte *lpBuf = bigBuf; - // FIXME: The current dirty rect handling code has a minor issue with screen refresh in one - // scene in the introduction sequence as the scene changes. For now, we're working around the - // problem by explicitly having full screen refreshes on that scene - bool fullRefresh = g_vm->getEngine()->getCurrentLocation() == 98; - if (rcBoundEllipse != NULL) { // Circular wipe effect getNewFrameWipe(lpBuf, *rcBoundEllipse); _wiping = true; - } else if (_wiping || fullRefresh) { + } else if (_wiping) { // Just finished a wiping effect, so copy the full screen copyRectToScreen(lpBuf, RM_SX * 2, 0, 0, RM_SX, RM_SY); _wiping = false; |