diff options
Diffstat (limited to 'engines/mads/screen.cpp')
-rw-r--r-- | engines/mads/screen.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/engines/mads/screen.cpp b/engines/mads/screen.cpp index 7e8710db56..ab5dff56ff 100644 --- a/engines/mads/screen.cpp +++ b/engines/mads/screen.cpp @@ -212,9 +212,11 @@ void DirtyAreas::copy(MSurface *srcSurface, MSurface *destSurface, const Common: Common::Rect bounds(srcBounds.left + posAdjust.x, srcBounds.top + posAdjust.y, srcBounds.right + posAdjust.x, srcBounds.bottom + posAdjust.y); + Common::Point destPos(bounds.left + _vm->_screen._offset.x, + bounds.top + _vm->_screen._offset.y); if ((*this)[i]._active && bounds.isValidRect()) { - srcSurface->copyTo(destSurface, bounds, Common::Point(bounds.left, bounds.top)); + srcSurface->copyTo(destSurface, bounds, destPos); } } } @@ -628,21 +630,28 @@ void ScreenSurface::transition(ScreenTransition transitionType, bool surfaceFlag case kTransitionBoxInBottomRight: case kTransitionBoxInTopLeft: case kTransitionBoxInTopRight: - error("TODO: transition"); + warning("TODO: box transition"); + transition(kTransitionFadeIn, surfaceFlag); break; case kTransitionPanLeftToRight: case kTransitionPanRightToLeft: - error("TODO: transition"); + warning("TODO: pan transition"); + transition(kTransitionFadeIn, surfaceFlag); + break; case kTransitionCircleIn1: case kTransitionCircleIn2: case kTransitionCircleIn3: case kTransitionCircleIn4: - error("TODO circle transition"); + warning("TODO circle transition"); + transition(kTransitionFadeIn, surfaceFlag); + break; case kCenterVertTransition: - error("TODO: center vert transition"); + warning("TODO: center vert transition"); + transition(kTransitionFadeIn, surfaceFlag); + break; default: // Quick transitions |