diff options
author | Paul Gilbert | 2012-01-17 09:16:01 +1100 |
---|---|---|
committer | Strangerke | 2012-04-06 08:19:46 +0200 |
commit | 6ac925fb1f05636c4d10aee5fdb17e1aef3f5020 (patch) | |
tree | d0b5ca40913481452fccb79a26dece53d9af9717 /engines/mortevielle | |
parent | 33f70da53cc9e5d060610c030a0a4dd76292525d (diff) | |
download | scummvm-rg350-6ac925fb1f05636c4d10aee5fdb17e1aef3f5020.tar.gz scummvm-rg350-6ac925fb1f05636c4d10aee5fdb17e1aef3f5020.tar.bz2 scummvm-rg350-6ac925fb1f05636c4d10aee5fdb17e1aef3f5020.zip |
MORTEVIELLE: Correct horizontal display of images
Diffstat (limited to 'engines/mortevielle')
-rw-r--r-- | engines/mortevielle/graphics.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
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) { |