diff options
author | Colin Snover | 2017-02-27 10:11:46 -0600 |
---|---|---|
committer | Colin Snover | 2017-04-23 13:07:25 -0500 |
commit | 168774c3c6bd942970b7bc35ebe7b5abdb535b5b (patch) | |
tree | ca0b4eaae4c7b5ea54b9d401fcf14d7d9b60bda7 /engines/sci/engine | |
parent | f711edc8764dabc0ec4d8621e34b005b89aa096f (diff) | |
download | scummvm-rg350-168774c3c6bd942970b7bc35ebe7b5abdb535b5b.tar.gz scummvm-rg350-168774c3c6bd942970b7bc35ebe7b5abdb535b5b.tar.bz2 scummvm-rg350-168774c3c6bd942970b7bc35ebe7b5abdb535b5b.zip |
SCI32: Add kPlayVMD subop 27 (SetPlane)
Used by RAMA, when playing a video at the Hub Camp computer at the
beginning of the game (room 1004).
Diffstat (limited to 'engines/sci/engine')
-rw-r--r-- | engines/sci/engine/kernel.h | 1 | ||||
-rw-r--r-- | engines/sci/engine/kernel_tables.h | 1 | ||||
-rw-r--r-- | engines/sci/engine/kvideo.cpp | 5 |
3 files changed, 7 insertions, 0 deletions
diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h index c648cd0323..dd75f26320 100644 --- a/engines/sci/engine/kernel.h +++ b/engines/sci/engine/kernel.h @@ -477,6 +477,7 @@ reg_t kPlayVMDPlayUntilEvent(EngineState *s, int argc, reg_t *argv); reg_t kPlayVMDShowCursor(EngineState *s, int argc, reg_t *argv); reg_t kPlayVMDSetBlackoutArea(EngineState *s, int argc, reg_t *argv); reg_t kPlayVMDRestrictPalette(EngineState *s, int argc, reg_t *argv); +reg_t kPlayVMDSetPlane(EngineState *s, int argc, reg_t *argv); reg_t kShowMovie32(EngineState *s, int argc, reg_t *argv); reg_t kShowMovieWin(EngineState *s, int argc, reg_t *argv); diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h index fd7415ba8f..716a8515a0 100644 --- a/engines/sci/engine/kernel_tables.h +++ b/engines/sci/engine/kernel_tables.h @@ -474,6 +474,7 @@ static const SciKernelMapSubEntry kPlayVMD_subops[] = { { SIG_SINCE_SCI21, 18, MAP_DUMMY(PlayVMDStopBlobs), "", NULL }, { SIG_SINCE_SCI21, 21, MAP_CALL(PlayVMDSetBlackoutArea), "iiii", NULL }, { SIG_SINCE_SCI21, 23, MAP_CALL(PlayVMDRestrictPalette), "ii", NULL }, + { SIG_SCI3, 27, MAP_CALL(PlayVMDSetPlane), "i(i)", NULL }, { SIG_SCI3, 28, MAP_EMPTY(PlayVMDSetPreload), "i", NULL }, SCI_SUBOPENTRY_TERMINATOR }; diff --git a/engines/sci/engine/kvideo.cpp b/engines/sci/engine/kvideo.cpp index 6f93b041b5..9398e6d75e 100644 --- a/engines/sci/engine/kvideo.cpp +++ b/engines/sci/engine/kvideo.cpp @@ -471,6 +471,11 @@ reg_t kPlayVMDRestrictPalette(EngineState *s, int argc, reg_t *argv) { return s->r_acc; } +reg_t kPlayVMDSetPlane(EngineState *s, int argc, reg_t *argv) { + g_sci->_video32->getVMDPlayer().setPlane(argv[0].toSint16(), argc > 1 ? argv[1] : NULL_REG); + return s->r_acc; +} + reg_t kPlayDuck(EngineState *s, int argc, reg_t *argv) { if (!s) return make_reg(0, getSciVersion()); |