From 6d356e340cf73279c7cb9d7df7a89431adb56c53 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Mon, 9 Feb 2004 18:57:05 +0000 Subject: o Fix bug #892909 (Unable to get Hover Lift at Gorge) o Fix bug with transition from vista to ranch svn-id: r12799 --- scumm/insane/insane.cpp | 13 ++++++++----- scumm/insane/insane.h | 4 ++-- scumm/insane/insane_scenes.cpp | 1 + 3 files changed, 11 insertions(+), 7 deletions(-) (limited to 'scumm/insane') diff --git a/scumm/insane/insane.cpp b/scumm/insane/insane.cpp index ea88496694..3d4022b1a1 100644 --- a/scumm/insane/insane.cpp +++ b/scumm/insane/insane.cpp @@ -597,7 +597,9 @@ void Insane::readFileToMem(const char *name, byte **buf) { } void Insane::startVideo(const char *filename, int num, int argC, int frameRate, - int doMainLoop, byte *fluPtr, int32 numFrames) { + int doMainLoop, byte *fluPtr, int32 startFrame) { + int32 offset = 0; + _smush_curFrame = 0; _smush_isSanFileSetup = 0; _smush_setupsan4 = 0; @@ -605,14 +607,13 @@ void Insane::startVideo(const char *filename, int num, int argC, int frameRate, _smush_setupsan1 = 0; _smush_setupsan17 = 0; - if (fluPtr) { - smush_setupSanWithFlu(filename, 0, -1, -1, 0, fluPtr, numFrames); + offset = smush_setupSanWithFlu(filename, 0, -1, -1, 0, fluPtr, startFrame); } else { smush_setupSanFromStart(filename, 0, -1, -1, 0); } - _player->play(filename, _vm->getGameDataPath()); + _player->play(filename, _vm->getGameDataPath(), offset, startFrame); } void Insane::smush_warpMouse(int x, int y, int buttons) { @@ -1381,7 +1382,7 @@ void Insane::writeArray(int item, int value) { _vm->writeArray(_numberArray, 0, item, value); } -void Insane::smush_setupSanWithFlu(const char *filename, int32 setupsan2, int32 step1, +int32 Insane::smush_setupSanWithFlu(const char *filename, int32 setupsan2, int32 step1, int32 step2, int32 setupsan1, byte *fluPtr, int32 numFrames) { byte *tmp = fluPtr; @@ -1419,6 +1420,8 @@ void Insane::smush_setupSanWithFlu(const char *filename, int32 setupsan2, int32 _smush_curFrame = numFrames; smush_setFrameSteps(step1, step2); smush_warpMouse(160, 100, -1); + + return offset; } void Insane::smush_setupSanFromStart(const char *filename, int32 setupsan2, int32 step1, diff --git a/scumm/insane/insane.h b/scumm/insane/insane.h index 24b39b6ecb..5a92e86735 100644 --- a/scumm/insane/insane.h +++ b/scumm/insane/insane.h @@ -271,7 +271,7 @@ class Insane { void initvars(void); void readFileToMem(const char *name, byte **buf); void startVideo(const char *filename, int num, int argC, int frameRate, - int doMainLoop, byte *fluPtr = 0, int32 numFrames = 0); + int doMainLoop, byte *fluPtr = 0, int32 startFrame = 0); void smush_warpMouse(int x, int y, int buttons); void putActors(void); void readState(void); @@ -418,7 +418,7 @@ class Insane { void reinitActors(void); const char *handleTrsTag(int32 trsId); void ouchSoundBen(void); - void smush_setupSanWithFlu(const char *filename, int32 setupsan2, int32 step1, + int32 smush_setupSanWithFlu(const char *filename, int32 setupsan2, int32 step1, int32 step2, int32 setupsan1, byte *fluPtr, int32 numFrames); void smush_setupSanFromStart(const char *filename, int32 setupsan2, int32 step1, int32 step2, int32 setupsan1); diff --git a/scumm/insane/insane_scenes.cpp b/scumm/insane/insane_scenes.cpp index 9fb4e56513..32d55f7856 100644 --- a/scumm/insane/insane_scenes.cpp +++ b/scumm/insane/insane_scenes.cpp @@ -1184,6 +1184,7 @@ void Insane::postCase5(byte *renderBitmap, int32 codecparam, int32 setupsan12, writeArray(1, _val57d); smush_setToFinish(); } else { + writeArray(4, 1); queueSceneSwitch(15, 0, "chasout.san", 64, 0, 0, 0); } } -- cgit v1.2.3