aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xengines/pegasus/movie.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/engines/pegasus/movie.cpp b/engines/pegasus/movie.cpp
index d37a493bf5..87ff872347 100755
--- a/engines/pegasus/movie.cpp
+++ b/engines/pegasus/movie.cpp
@@ -96,10 +96,19 @@ void Movie::redrawMovieWorld() {
}
void Movie::draw(const Common::Rect &r) {
- if (_transparent)
- copyToCurrentPortTransparent(r);
- else
- copyToCurrentPort(r);
+ Common::Rect surfaceBounds;
+ getSurfaceBounds(surfaceBounds);
+ Common::Rect r1 = r;
+
+ Common::Rect bounds;
+ getBounds(bounds);
+ surfaceBounds.moveTo(bounds.left, bounds.top);
+ r1 = r1.findIntersectingRect(surfaceBounds);
+ getSurfaceBounds(surfaceBounds);
+
+ Common::Rect r2 = r1;
+ r2.translate(surfaceBounds.left - bounds.left, surfaceBounds.top - bounds.top);
+ drawImage(r2, r1);
}
void Movie::setVolume(uint16 volume) {