aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2003-06-07 18:26:51 +0000
committerMax Horn2003-06-07 18:26:51 +0000
commitfedc3b7e62e11dc119d4ec80b7e25e7a11d4f43e (patch)
treec181d92fca9ed2960a348f92b49783adb206cf59
parent70210d5d3af231a6d3ed1735ce5658fb5fe15997 (diff)
downloadscummvm-rg350-fedc3b7e62e11dc119d4ec80b7e25e7a11d4f43e.tar.gz
scummvm-rg350-fedc3b7e62e11dc119d4ec80b7e25e7a11d4f43e.tar.bz2
scummvm-rg350-fedc3b7e62e11dc119d4ec80b7e25e7a11d4f43e.zip
Fix for bug #654286: ZAK256: Ending credits are illegible
svn-id: r8383
-rw-r--r--scumm/script_v5.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp
index ce579f4991..b5676ce9d6 100644
--- a/scumm/script_v5.cpp
+++ b/scumm/script_v5.cpp
@@ -2593,9 +2593,16 @@ printf("o5_oldRoomEffect ODDBALL: _opcode = 0x%x, a = 0x%x\n", _opcode, a);
// No idea what byte_2FCCF is, but it's a globale boolean flag.
// I only add it here as a temporary hack to make the pseudo code compile.
// Maybe it is just there as a reentry protection guard, given
- // how it is used?
+ // how it is used? It might also correspond to _screenEffectFlag.
int byte_2FCCF = 0;
+ // For now, we force a redraw of the screen background. This
+ // Makes the Zak end credits work more or less correctly.
+ VirtScreen *vs = &virtscr[0];
+ restoreBG(ScummVM::Rect(0,vs->topline, vs->width, vs->topline + vs->height));
+ virtscr[0].setDirtyRange(0, virtscr[0].height);
+ updateDirtyScreen(0);
+
if (byte_2FCCF) {
// Here now "sub_1C44" is called, which sets byte_2FCCF to 0 then
// calls yet another sub (which also reads byte_2FCCF):
@@ -2607,7 +2614,8 @@ printf("o5_oldRoomEffect ODDBALL: _opcode = 0x%x, a = 0x%x\n", _opcode, a);
// Now sub_085C is called. This is quite simply: it sets
// 0xF000 bytes. starting at 0x40000 to 0. No idea what that
// buffer is, maybe a screen buffer, though. Note that
- // 0xF000 = 320*192
+ // 0xF000 = 320*192.
+ // Maybe this is also the charset mask being cleaned?
// call sub_085C