From 6ac925fb1f05636c4d10aee5fdb17e1aef3f5020 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Tue, 17 Jan 2012 09:16:01 +1100 Subject: MORTEVIELLE: Correct horizontal display of images --- engines/mortevielle/graphics.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'engines/mortevielle') diff --git a/engines/mortevielle/graphics.cpp b/engines/mortevielle/graphics.cpp index 851e5df391..d7ed056ef7 100644 --- a/engines/mortevielle/graphics.cpp +++ b/engines/mortevielle/graphics.cpp @@ -848,15 +848,17 @@ void ScreenSurface::updateScreen() { /** * Draws a decoded picture on the screen - * @remarks Because the ScummVM surface is using a double height 640x400 surface to + * @remarks - Because the ScummVM surface is using a double height 640x400 surface to * simulate the original 640x400 surface, all Y values have to be doubled. - * Also, image resources are stored at 320x200, so when drawn onto the screen every + * - Image resources are stored at 320x200, so when drawn onto the screen every * other column is interpolated. + * - Because the original game supported 320 width resolutions, the X coordinate + * also needs to be doubled for EGA mode */ void ScreenSurface::drawPicture(GfxSurface &surface, int x, int y) { // Lock the affected area of the surface to write to - Graphics::Surface destSurface = lockArea(Common::Rect(x, y, - x + surface.w * 2, y + surface.h * 2)); + Graphics::Surface destSurface = lockArea(Common::Rect(x * 2, y, + (x + surface.w) * 2, y + surface.h * 2)); // Loop through writing for (int yp = 0; yp < surface.h; ++yp) { -- cgit v1.2.3