aboutsummaryrefslogtreecommitdiff
path: root/kyra/screen.cpp
diff options
context:
space:
mode:
authorJohannes Schickel2006-01-07 23:55:50 +0000
committerJohannes Schickel2006-01-07 23:55:50 +0000
commitc6e0fabe97fa812edfbc1b1f99f57cb212db3581 (patch)
tree7fbd0900f071d370951ad795be5ac1ff6e3c71c9 /kyra/screen.cpp
parent202b739c36ca3854dd522e90a67a120d13445ffb (diff)
downloadscummvm-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.cpp14
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) {