diff options
author | Paul Gilbert | 2014-12-26 18:50:14 +1100 |
---|---|---|
committer | Paul Gilbert | 2014-12-26 18:50:14 +1100 |
commit | 1a6dd88713ff6a6994f9e4d69abf8e3c66538bb2 (patch) | |
tree | be10484ac626ca7ae27ea1dc89efc9f2554735a0 | |
parent | d213db3dc1b24e281e03dc593f21925db8fcd10e (diff) | |
download | scummvm-rg350-1a6dd88713ff6a6994f9e4d69abf8e3c66538bb2.tar.gz scummvm-rg350-1a6dd88713ff6a6994f9e4d69abf8e3c66538bb2.tar.bz2 scummvm-rg350-1a6dd88713ff6a6994f9e4d69abf8e3c66538bb2.zip |
XEEN: Fix error in vertMerge
-rw-r--r-- | engines/xeen/darkside/darkside_game.cpp | 3 | ||||
-rw-r--r-- | engines/xeen/resources.cpp | 2 | ||||
-rw-r--r-- | engines/xeen/screen.cpp | 2 |
3 files changed, 4 insertions, 3 deletions
diff --git a/engines/xeen/darkside/darkside_game.cpp b/engines/xeen/darkside/darkside_game.cpp index a597ab2ce8..17a998eb41 100644 --- a/engines/xeen/darkside/darkside_game.cpp +++ b/engines/xeen/darkside/darkside_game.cpp @@ -60,6 +60,7 @@ void DarkSideEngine::darkSideIntro() { bool breakFlag = false; int nwcIndex = 0, nwcFrame = 0; for (int idx = 0; idx < 55 && !shouldQuit() && !breakFlag; ++idx) { + // Render the next frame _events->updateGameCounter(); _screen->vertMerge(0); nwc[nwcIndex].draw(*_screen, nwcFrame, Common::Point(0, 0)); @@ -72,7 +73,7 @@ void DarkSideEngine::darkSideIntro() { case 34: case 44: ++nwcIndex; - ++nwcFrame; + nwcFrame = 0; break; case 35: _sound->proc2(voc[1]); diff --git a/engines/xeen/resources.cpp b/engines/xeen/resources.cpp index 4cc586f014..736f014a81 100644 --- a/engines/xeen/resources.cpp +++ b/engines/xeen/resources.cpp @@ -345,7 +345,7 @@ void SpriteResource::drawOffset(XSurface &dest, uint16 offset, const Common::Poi } } - dest.addDirtyRect(Common::Rect(destPos.x, destPos.y, + dest.addDirtyRect(Common::Rect(destPos.x + xOffset, destPos.y + yOffset, destPos.x + xOffset + width, destPos.y + yOffset + height)); } diff --git a/engines/xeen/screen.cpp b/engines/xeen/screen.cpp index 0c7df8b776..e390f16cdd 100644 --- a/engines/xeen/screen.cpp +++ b/engines/xeen/screen.cpp @@ -160,7 +160,7 @@ void Screen::vertMerge(int yp) { Common::copy(srcP, srcP + SCREEN_WIDTH, destP); } - for (int y = yp; y < SCREEN_HEIGHT; ++y) { + for (int y = SCREEN_HEIGHT - yp; y < SCREEN_HEIGHT; ++y) { const byte *srcP = (const byte *)_pages[1].getBasePtr(0, y); byte *destP = (byte *)getBasePtr(0, y); Common::copy(srcP, srcP + SCREEN_WIDTH, destP); |