From 55dba55056b842e02475d8c95fa621f431b5e3be Mon Sep 17 00:00:00 2001 From: sluicebox Date: Fri, 6 Dec 2019 21:02:53 -0800 Subject: SCI32: Fix kRobot subop 6 implementation Fixes Phantasmagoria 1 animations not resuming after closing the control panel during the chapter 7 chase --- engines/sci/engine/kernel.h | 2 +- engines/sci/engine/kernel_tables.h | 2 +- engines/sci/engine/kvideo.cpp | 4 ++-- 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) { -- cgit v1.2.3