diff options
author | Henry Bush | 2008-11-30 21:17:58 +0000 |
---|---|---|
committer | Henry Bush | 2008-11-30 21:17:58 +0000 |
commit | f10f151ff742801e12534bb052bd89419bf906cb (patch) | |
tree | c759215e129f48e3119aff19358ac7ac53375ae5 /engines/groovie | |
parent | ffaa47fb44896a14d776c792939e40dad3287521 (diff) | |
download | scummvm-rg350-f10f151ff742801e12534bb052bd89419bf906cb.tar.gz scummvm-rg350-f10f151ff742801e12534bb052bd89419bf906cb.tar.bz2 scummvm-rg350-f10f151ff742801e12534bb052bd89419bf906cb.zip |
T7G: Reset origin at end of video: should fix seg fault after losing the microscope puzzle. Plus cleanup bitflag debugging.
svn-id: r35195
Diffstat (limited to 'engines/groovie')
-rw-r--r-- | engines/groovie/script.cpp | 7 | ||||
-rw-r--r-- | engines/groovie/vdx.cpp | 11 |
2 files changed, 13 insertions, 5 deletions
diff --git a/engines/groovie/script.cpp b/engines/groovie/script.cpp index bdae0c1337..bf922a2658 100644 --- a/engines/groovie/script.cpp +++ b/engines/groovie/script.cpp @@ -456,10 +456,13 @@ bool Script::playvideofromref(uint16 fileref) { // Debug bitflags debugScript(1, false, "Play video 0x%04X (bitflags:", fileref); - for (int i = 10; i >= 0; i--) { + for (int i = 15; i >= 0; i--) { debugScript(1, false, "%d", _bitflags & (1 << i)? 1 : 0); + if (i % 4 == 0) { + debugScript(1, false, " "); + } } - debugScript(1, true, ")"); + debugScript(1, true, " <- 0)"); // Close the previous video file if (_videoFile) { diff --git a/engines/groovie/vdx.cpp b/engines/groovie/vdx.cpp index 1a260b4ab8..137333c362 100644 --- a/engines/groovie/vdx.cpp +++ b/engines/groovie/vdx.cpp @@ -53,13 +53,13 @@ uint16 VDXPlayer::loadInternal() { if ((gDebugLevel == 11) || (Common::getEnabledSpecialDebugLevels() & engine_level)) { int8 i; debugN(1, "Groovie::VDX: New VDX: bitflags are "); - for (i = 11; i >= 0; i--) { + for (i = 15; i >= 0; i--) { debugN(1, "%d", _flags & (1 << i)? 1 : 0); if (i % 4 == 0) { debugN(1, " "); } } - debug(1, " "); + debug(1, " <- 0 "); } // Flags: // - 1 Puzzle piece? Skip palette, don't redraw full screen, draw still to b/ack buffer @@ -176,7 +176,12 @@ bool VDXPlayer::playFrameInternal() { // Report the end of the video if we reached the end of the file or if we // just wanted to play one frame. - return _file->eos() || _flagFirstFrame; + if (_file->eos() || _flagFirstFrame) { + _origX = _origY = 0; + return 1; + } else { + return 0; + } } static const uint16 vdxBlockMapLookup[] = { |