aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kvideo.cpp
diff options
context:
space:
mode:
authorsluicebox2019-12-04 09:06:35 -0800
committersluicebox2019-12-04 09:11:21 -0800
commit05b21ace680d65336219a74cd87696eb157f7e84 (patch)
treeb9dfd3ee22c83ee9fd6211a058a05b5c4dd3dafc /engines/sci/engine/kvideo.cpp
parentda9c7d3d5bb5b64f026d20eabfa8f3cb4297867b (diff)
downloadscummvm-rg350-05b21ace680d65336219a74cd87696eb157f7e84.tar.gz
scummvm-rg350-05b21ace680d65336219a74cd87696eb157f7e84.tar.bz2
scummvm-rg350-05b21ace680d65336219a74cd87696eb157f7e84.zip
SCI32: Implement VMD Censorship Blobs
Phantasmagoria 1's censorship mode is now supported Trac #11229
Diffstat (limited to 'engines/sci/engine/kvideo.cpp')
-rw-r--r--engines/sci/engine/kvideo.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/engines/sci/engine/kvideo.cpp b/engines/sci/engine/kvideo.cpp
index 03ed698f17..72762a668e 100644
--- a/engines/sci/engine/kvideo.cpp
+++ b/engines/sci/engine/kvideo.cpp
@@ -435,6 +435,32 @@ reg_t kPlayVMDShowCursor(EngineState *s, int argc, reg_t *argv) {
return s->r_acc;
}
+reg_t kPlayVMDStartBlob(EngineState *s, int argc, reg_t *argv) {
+ g_sci->_video32->getVMDPlayer().deleteBlobs();
+ return NULL_REG;
+}
+
+reg_t kPlayVMDStopBlobs(EngineState *s, int argc, reg_t *argv) {
+ g_sci->_video32->getVMDPlayer().deleteBlobs();
+ return NULL_REG;
+}
+
+reg_t kPlayVMDAddBlob(EngineState *s, int argc, reg_t *argv) {
+ int16 squareSize = argv[0].toSint16();
+ int16 top = argv[1].toSint16();
+ int16 left = argv[2].toSint16();
+ int16 bottom = argv[3].toSint16();
+ int16 right = argv[4].toSint16();
+ int16 blobNumber = g_sci->_video32->getVMDPlayer().addBlob(squareSize, top, left, bottom, right);
+ return make_reg(0, blobNumber);
+}
+
+reg_t kPlayVMDDeleteBlob(EngineState *s, int argc, reg_t *argv) {
+ int16 blobNumber = argv[0].toSint16();
+ g_sci->_video32->getVMDPlayer().deleteBlob(blobNumber);
+ return SIGNAL_REG;
+}
+
reg_t kPlayVMDSetBlackoutArea(EngineState *s, int argc, reg_t *argv) {
const int16 scriptWidth = g_sci->_gfxFrameout->getScriptWidth();
const int16 scriptHeight = g_sci->_gfxFrameout->getScriptHeight();