aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsluicebox2019-12-06 21:02:53 -0800
committersluicebox2019-12-06 21:02:53 -0800
commit55dba55056b842e02475d8c95fa621f431b5e3be (patch)
tree11f6b930625f9218df868cb3678cfaa90ba2c682
parent3f842386c90c05582bd07b3098835fbb19f15588 (diff)
downloadscummvm-rg350-55dba55056b842e02475d8c95fa621f431b5e3be.tar.gz
scummvm-rg350-55dba55056b842e02475d8c95fa621f431b5e3be.tar.bz2
scummvm-rg350-55dba55056b842e02475d8c95fa621f431b5e3be.zip
SCI32: Fix kRobot subop 6 implementation
Fixes Phantasmagoria 1 animations not resuming after closing the control panel during the chapter 7 chase
-rw-r--r--engines/sci/engine/kernel.h2
-rw-r--r--engines/sci/engine/kernel_tables.h2
-rw-r--r--engines/sci/engine/kvideo.cpp4
3 files changed, 4 insertions, 4 deletions
diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h
index cbbfaefc45..7583e2479b 100644
--- a/engines/sci/engine/kernel.h
+++ b/engines/sci/engine/kernel.h
@@ -448,7 +448,7 @@ reg_t kRobotShowFrame(EngineState *s, int argc, reg_t *argv);
reg_t kRobotGetFrameSize(EngineState *s, int argc, reg_t *argv);
reg_t kRobotPlay(EngineState *s, int argc, reg_t *argv);
reg_t kRobotGetIsFinished(EngineState *s, int argc, reg_t *argv);
-reg_t kRobotGetIsPlaying(EngineState *s, int argc, reg_t *argv);
+reg_t kRobotGetIsInitialized(EngineState *s, int argc, reg_t *argv);
reg_t kRobotClose(EngineState *s, int argc, reg_t *argv);
reg_t kRobotGetCue(EngineState *s, int argc, reg_t *argv);
reg_t kRobotPause(EngineState *s, int argc, reg_t *argv);
diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h
index 3d8c256ff9..8dab326361 100644
--- a/engines/sci/engine/kernel_tables.h
+++ b/engines/sci/engine/kernel_tables.h
@@ -487,7 +487,7 @@ static const SciKernelMapSubEntry kRobot_subops[] = {
{ SIG_SINCE_SCI21, 2, MAP_CALL(RobotGetFrameSize), "r", NULL },
{ SIG_SINCE_SCI21, 4, MAP_CALL(RobotPlay), "", NULL },
{ SIG_SINCE_SCI21, 5, MAP_CALL(RobotGetIsFinished), "", NULL },
- { SIG_SINCE_SCI21, 6, MAP_CALL(RobotGetIsPlaying), "", NULL },
+ { SIG_SINCE_SCI21, 6, MAP_CALL(RobotGetIsInitialized), "", NULL },
{ SIG_SINCE_SCI21, 7, MAP_CALL(RobotClose), "", NULL },
{ SIG_SINCE_SCI21, 8, MAP_CALL(RobotGetCue), "o", NULL },
{ SIG_SINCE_SCI21, 10, MAP_CALL(RobotPause), "", NULL },
diff --git a/engines/sci/engine/kvideo.cpp b/engines/sci/engine/kvideo.cpp
index 72762a668e..964f28b190 100644
--- a/engines/sci/engine/kvideo.cpp
+++ b/engines/sci/engine/kvideo.cpp
@@ -255,8 +255,8 @@ reg_t kRobotGetIsFinished(EngineState *s, int argc, reg_t *argv) {
return make_reg(0, g_sci->_video32->getRobotPlayer().getStatus() == RobotDecoder::kRobotStatusEnd);
}
-reg_t kRobotGetIsPlaying(EngineState *s, int argc, reg_t *argv) {
- return make_reg(0, g_sci->_video32->getRobotPlayer().getStatus() == RobotDecoder::kRobotStatusPlaying);
+reg_t kRobotGetIsInitialized(EngineState *s, int argc, reg_t *argv) {
+ return make_reg(0, g_sci->_video32->getRobotPlayer().getStatus() != RobotDecoder::kRobotStatusUninitialized);
}
reg_t kRobotClose(EngineState *s, int argc, reg_t *argv) {