diff options
author | Johannes Schickel | 2006-01-07 23:55:50 +0000 |
---|---|---|
committer | Johannes Schickel | 2006-01-07 23:55:50 +0000 |
commit | c6e0fabe97fa812edfbc1b1f99f57cb212db3581 (patch) | |
tree | 7fbd0900f071d370951ad795be5ac1ff6e3c71c9 /kyra/screen.cpp | |
parent | 202b739c36ca3854dd522e90a67a120d13445ffb (diff) | |
download | scummvm-rg350-c6e0fabe97fa812edfbc1b1f99f57cb212db3581.tar.gz scummvm-rg350-c6e0fabe97fa812edfbc1b1f99f57cb212db3581.tar.bz2 scummvm-rg350-c6e0fabe97fa812edfbc1b1f99f57cb212db3581.zip |
Implemented playing of the end sequence, still credits do not show up.
svn-id: r19941
Diffstat (limited to 'kyra/screen.cpp')
-rw-r--r-- | kyra/screen.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/kyra/screen.cpp b/kyra/screen.cpp index 392c17d793..14f4bfb516 100644 --- a/kyra/screen.cpp +++ b/kyra/screen.cpp @@ -235,8 +235,18 @@ void Screen::copyToPage0(int y, int h, uint8 page, uint8 *seqBuf) { debug(9, "Screen::copyToPage0(%d, %d, %d, 0x%X)", y, h, page, seqBuf); assert(y + h <= SCREEN_H); const uint8 *src = getPagePtr(page) + y * SCREEN_W; - memcpy(seqBuf, src, h * SCREEN_W); - memcpy(getPagePtr(0) + y * SCREEN_W, src, h * SCREEN_W); + uint8 *dstPage = getPagePtr(0) + y * SCREEN_W; + for (int i = 0; i < h; ++i) { + for (int x = 0; x < SCREEN_W; ++x) { + if (seqBuf[x] != src[x]) { + seqBuf[x] = src[x]; + dstPage[x] = src[x]; + } + } + src += SCREEN_W; + seqBuf += SCREEN_W; + dstPage += SCREEN_W; + } } void Screen::copyRegion(int x1, int y1, int x2, int y2, int w, int h, int srcPage, int dstPage, int flags) { |