diff options
author | Eugene Sandulenko | 2004-02-09 18:57:05 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2004-02-09 18:57:05 +0000 |
commit | 6d356e340cf73279c7cb9d7df7a89431adb56c53 (patch) | |
tree | fd127c7717ee78d5d7e35bc1f7de21bbdade99d9 /scumm/insane | |
parent | fbd9b36e03f9d101b566b09af7136d2e929bf73a (diff) | |
download | scummvm-rg350-6d356e340cf73279c7cb9d7df7a89431adb56c53.tar.gz scummvm-rg350-6d356e340cf73279c7cb9d7df7a89431adb56c53.tar.bz2 scummvm-rg350-6d356e340cf73279c7cb9d7df7a89431adb56c53.zip |
o Fix bug #892909 (Unable to get Hover Lift at Gorge)
o Fix bug with transition from vista to ranch
svn-id: r12799
Diffstat (limited to 'scumm/insane')
-rw-r--r-- | scumm/insane/insane.cpp | 13 | ||||
-rw-r--r-- | scumm/insane/insane.h | 4 | ||||
-rw-r--r-- | scumm/insane/insane_scenes.cpp | 1 |
3 files changed, 11 insertions, 7 deletions
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); } } |