From f10f151ff742801e12534bb052bd89419bf906cb Mon Sep 17 00:00:00 2001 From: Henry Bush Date: Sun, 30 Nov 2008 21:17:58 +0000 Subject: T7G: Reset origin at end of video: should fix seg fault after losing the microscope puzzle. Plus cleanup bitflag debugging. svn-id: r35195 --- engines/groovie/script.cpp | 7 +++++-- 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[] = { -- cgit v1.2.3