[Scummvm-git-logs] scummvm master -> b6692ac7831a9475fd23f104145254d8dd507c27

sluicebox 22204938+sluicebox at users.noreply.github.com
Sun Dec 1 23:11:44 UTC 2019


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
01772497b7 SCI32: Create stubs for kPlayVMD blob subops
b6692ac783 SCI32: Fix kPlayVMDPlayUntilEvent when passed zero


Commit: 01772497b7762ac2cf8949ca7904112b7fc25206
    https://github.com/scummvm/scummvm/commit/01772497b7762ac2cf8949ca7904112b7fc25206
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2019-12-01T15:09:48-08:00

Commit Message:
SCI32: Create stubs for kPlayVMD blob subops

Prevents Phantasmagoria 1 from crashing while in censored mode.
The "blob" subops pixelate rectangles during playback and are
currently being implemented.

Changed paths:
    engines/sci/engine/kernel_tables.h


diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h
index 49a5168..77b442e 100644
--- a/engines/sci/engine/kernel_tables.h
+++ b/engines/sci/engine/kernel_tables.h
@@ -468,8 +468,11 @@ static const SciKernelMapSubEntry kPlayVMD_subops[] = {
 	{ SIG_SINCE_SCI21,    10, MAP_CALL(PlayVMDGetStatus),          "",                     NULL },
 	{ SIG_SINCE_SCI21,    14, MAP_CALL(PlayVMDPlayUntilEvent),     "i(i)(i)",              NULL },
 	{ SIG_SINCE_SCI21,    16, MAP_CALL(PlayVMDShowCursor),         "i",                    NULL },
-	{ SIG_SINCE_SCI21,    17, MAP_DUMMY(PlayVMDStartBlob),         "",                     NULL },
-	{ SIG_SINCE_SCI21,    18, MAP_DUMMY(PlayVMDStopBlobs),         "",                     NULL },
+	// TODO: implement blob subops to pixelate Phant1 videos when censored mode is enabled
+	{ SIG_SINCE_SCI21,    17, MAP_EMPTY(PlayVMDStartBlob),         "",                     NULL },
+	{ SIG_SINCE_SCI21,    18, MAP_EMPTY(PlayVMDStopBlobs),         "",                     NULL },
+	{ SIG_SINCE_SCI21,    19, MAP_EMPTY(PlayVMDAddBlob),           "iiiii",                NULL },
+	{ SIG_SINCE_SCI21,    20, MAP_EMPTY(PlayVMDDeleteBlob),        "i",                    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 },


Commit: b6692ac7831a9475fd23f104145254d8dd507c27
    https://github.com/scummvm/scummvm/commit/b6692ac7831a9475fd23f104145254d8dd507c27
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2019-12-01T15:09:57-08:00

Commit Message:
SCI32: Fix kPlayVMDPlayUntilEvent when passed zero

Fixes VMD playback in Phantasmagoria 1 while in censored mode.
kPlayVMDPlayUntilEvent is supposed to play until the last frame
when passed zero as the frame number to wait for.

Changed paths:
    engines/sci/graphics/video32.cpp


diff --git a/engines/sci/graphics/video32.cpp b/engines/sci/graphics/video32.cpp
index 0efb257..e6e594b 100644
--- a/engines/sci/graphics/video32.cpp
+++ b/engines/sci/graphics/video32.cpp
@@ -671,7 +671,7 @@ VMDPlayer::EventFlags VMDPlayer::kernelPlayUntilEvent(const EventFlags flags, co
 
 	const int32 maxFrameNo = _decoder->getFrameCount() - 1;
 
-	if (flags & kEventFlagToFrame) {
+	if ((flags & kEventFlagToFrame) && lastFrameNo) {
 		_yieldFrame = MIN<int32>(lastFrameNo, maxFrameNo);
 	} else {
 		_yieldFrame = maxFrameNo;




More information about the Scummvm-git-logs mailing list