From 2ebb0a37b575096551c7105c17dfbc1258ed42cd Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Tue, 3 Jan 2017 15:17:47 -0500 Subject: TITANIC: Fix assert on bad video frame in the Promenade --- engines/titanic/support/avi_surface.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'engines/titanic/support') diff --git a/engines/titanic/support/avi_surface.cpp b/engines/titanic/support/avi_surface.cpp index de7b9abe3e..22b3e98c16 100644 --- a/engines/titanic/support/avi_surface.cpp +++ b/engines/titanic/support/avi_surface.cpp @@ -273,12 +273,14 @@ void AVISurface::setupDecompressor() { } void AVISurface::copyMovieFrame(const Graphics::Surface &src, Graphics::ManagedSurface &dest) { - assert(src.w == dest.w && src.h == dest.h); + // WORKAROUND: A bad video in the Promenade has a frame with a width slightly larger + // than the defined width for the movie it's in. Hence the assert below is >= + assert(src.w >= dest.w && src.h == dest.h); if (src.format.bytesPerPixel == 1) { // Paletted 8-bit, so convert to 16-bit and copy over Graphics::Surface *s = src.convertTo(dest.format, _decoder->getPalette()); - dest.blitFrom(*s); + dest.blitFrom(*s, Common::Rect(0, 0, dest.w, dest.h), Common::Point(0, 0)); s->free(); delete s; } else if (src.format.bytesPerPixel == 2) { -- cgit v1.2.3