From 7a7eeaa79f1cc659dcdbe8ad15c44ebe558560b1 Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Wed, 11 Jan 2006 04:06:51 +0000 Subject: A few FF fixes. svn-id: r19980 --- simon/vga.cpp | 30 +++++++++++++++++------------- 1 file 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++; -- cgit v1.2.3