diff options
author | Travis Howell | 2006-01-11 04:06:51 +0000 |
---|---|---|
committer | Travis Howell | 2006-01-11 04:06:51 +0000 |
commit | 7a7eeaa79f1cc659dcdbe8ad15c44ebe558560b1 (patch) | |
tree | abdfff11459a6496fd6bc49302c5c77ebdc9e027 | |
parent | 4e1778dc14d531f9c99bd82a2f589da6490ea198 (diff) | |
download | scummvm-rg350-7a7eeaa79f1cc659dcdbe8ad15c44ebe558560b1.tar.gz scummvm-rg350-7a7eeaa79f1cc659dcdbe8ad15c44ebe558560b1.tar.bz2 scummvm-rg350-7a7eeaa79f1cc659dcdbe8ad15c44ebe558560b1.zip |
A few FF fixes.
svn-id: r19980
-rw-r--r-- | simon/vga.cpp | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/simon/vga.cpp b/simon/vga.cpp index 33d86a40c4..2298433284 100644 --- a/simon/vga.cpp +++ b/simon/vga.cpp @@ -722,8 +722,17 @@ void SimonEngine::vc10_draw() { } } - maxWidth = (getGameType() == GType_FF) ? 640 : 20; - if (getGameType() == GType_SIMON2 && width > maxWidth) { + if (getGameType() == GType_FF) { + if (width > 640) { + debug(0, "Horizontal scrolling not supported"); + return; + } + if (height > 480) { + debug(0, "Vertical scrolling not supported"); + return; + } + } + if (getGameType() == GType_SIMON2 && width > 20) { const byte *src; byte *dst; uint w; @@ -752,11 +761,6 @@ void SimonEngine::vc10_draw() { return; } - if (getGameType() == GType_FF && height > 480) { - debug(0, "Vertical scrolling not supported\n"); - return; - } - if (getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) { if (state.flags & 0x10) { state.depack_src = vc10_uncompressFlip(state.depack_src, width, height); @@ -2184,10 +2188,10 @@ void SimonEngine::vc76_setScaleXOffs() { VgaSprite *vsp = findCurSprite(); vsp->image = vcReadNextWord(); - int16 xoffs = vcReadNextWord(); + int16 x = vcReadNextWord(); int var = vcReadNextWord(); - vsp->x += getScale(vsp->x, xoffs); + vsp->x += getScale(vsp->y, x); _variableArray[var] = vsp->x; if (_scrollXMax) { @@ -2201,10 +2205,10 @@ void SimonEngine::vc77_setScaleYOffs() { VgaSprite *vsp = findCurSprite(); vsp->image = vcReadNextWord(); - int16 yoffs = vcReadNextWord(); + int16 x = vcReadNextWord(); int var = vcReadNextWord(); - vsp->y += getScale(vsp->y, yoffs); + vsp->y += getScale(vsp->y, x); _variableArray[var] = vsp->y; vsp->flags = 0x40; } @@ -2234,10 +2238,10 @@ void SimonEngine::vc78_computeXY() { void SimonEngine::vc79_computePosNum() { uint a = (uint16)_variableArray[12]; - uint pos = 0; const uint16 *p = _pathFindArray[a - 1]; + uint pos = 0; - int16 y = vcReadNextWord(); + int16 y = _variableArray[16]; while(y > readUint16Wrapper(p + 1)) { p += 2; pos++; |