aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2006-04-04 07:50:04 +0000
committerTravis Howell2006-04-04 07:50:04 +0000
commitf5943d7e7f6b82297530a0a7794f06b1ec2531ec (patch)
tree0cd3f147385c3f8a0cbd6eedda6b4ea6228eaea0
parentc21b81f5e5d7f5c75e0d4d70e85ab7920f5ff39c (diff)
downloadscummvm-rg350-f5943d7e7f6b82297530a0a7794f06b1ec2531ec.tar.gz
scummvm-rg350-f5943d7e7f6b82297530a0a7794f06b1ec2531ec.tar.bz2
scummvm-rg350-f5943d7e7f6b82297530a0a7794f06b1ec2531ec.zip
Adjust clear/restore window for FF
svn-id: r21587
-rw-r--r--engines/simon/simon.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/engines/simon/simon.cpp b/engines/simon/simon.cpp
index c170caa9f8..7a00af0fbd 100644
--- a/engines/simon/simon.cpp
+++ b/engines/simon/simon.cpp
@@ -3115,7 +3115,10 @@ void SimonEngine::restoreWindow(FillOrCopyStruct *fcs) {
_restoreWindow6 = 0;
}
- restoreBlock(fcs->y + fcs->height * 8, (fcs->x + fcs->width) * 8, fcs->y, fcs->x * 8);
+ if (getGameType() == GType_FF)
+ restoreBlock(fcs->y + fcs->height, fcs->x + fcs->width, fcs->y, fcs->x);
+ else
+ restoreBlock(fcs->y + fcs->height * 8, (fcs->x + fcs->width) * 8, fcs->y, fcs->x * 8);
}
_lockWord &= ~0x8000;
@@ -3123,16 +3126,24 @@ void SimonEngine::restoreWindow(FillOrCopyStruct *fcs) {
void SimonEngine::colorWindow(FillOrCopyStruct *fcs) {
byte *dst;
- uint h;
+ uint h, w;
_lockWord |= 0x8000;
dst = getFrontBuf();
- dst += _dxSurfacePitch * fcs->y + fcs->x * 8;
- h = fcs->height * 8;
+ if (getGameType() == GType_FF) {
+ dst += _dxSurfacePitch * fcs->y + fcs->x;
+ h = fcs->height;
+ w = fcs->width;
+ } else {
+ dst += _dxSurfacePitch * fcs->y + fcs->x * 8;
+ h = fcs->height * 8;
+ w = fcs->width * 8;
+ }
+
do {
- memset(dst, fcs->fill_color, fcs->width * 8);
+ memset(dst, fcs->fill_color, w);
dst += _dxSurfacePitch;
} while (--h);