aboutsummaryrefslogtreecommitdiff
path: root/scumm/insane/insane.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scumm/insane/insane.cpp')
-rw-r--r--scumm/insane/insane.cpp13
1 files changed, 8 insertions, 5 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,