diff --git a/engines/tony/loc.cpp b/engines/tony/loc.cpp index a2dd7e097d39..dedac199faff 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 3806aa67c820..b603fa39f365 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;