aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2012-01-17 09:16:01 +1100
committerStrangerke2012-04-06 08:19:46 +0200
commit6ac925fb1f05636c4d10aee5fdb17e1aef3f5020 (patch)
treed0b5ca40913481452fccb79a26dece53d9af9717 /engines
parent33f70da53cc9e5d060610c030a0a4dd76292525d (diff)
downloadscummvm-rg350-6ac925fb1f05636c4d10aee5fdb17e1aef3f5020.tar.gz
scummvm-rg350-6ac925fb1f05636c4d10aee5fdb17e1aef3f5020.tar.bz2
scummvm-rg350-6ac925fb1f05636c4d10aee5fdb17e1aef3f5020.zip
MORTEVIELLE: Correct horizontal display of images
Diffstat (limited to 'engines')
-rw-r--r--engines/mortevielle/graphics.cpp10
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) {