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

bluegr bluegr at gmail.com
Sat Apr 20 14:53:33 CEST 2019


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

Summary:
d1826ca48e SCI: Fix QFG1VGA Mac logo/intro skip, bug #10937


Commit: d1826ca48ea78c6c04c9fb1f22d3187bdfcf28ea
    https://github.com/scummvm/scummvm/commit/d1826ca48ea78c6c04c9fb1f22d3187bdfcf28ea
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2019-04-20T15:53:30+03:00

Commit Message:
SCI: Fix QFG1VGA Mac logo/intro skip, bug #10937

Changed paths:
    engines/sci/engine/script_patches.cpp


diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index b228553..f84c643 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -8034,6 +8034,41 @@ static const uint16 qfg1vgaPatchMacAntwerpControls[] = {
 	PATCH_END
 };
 
+// The Mac version's Sierra logo and introduction are often skipped when using a
+//  mouse. This is a bug in the original that accidentally relies on slower
+//  machines. In DOS these scenes could be skipped by pressing Enter. Sierra
+//  updated this to include the mouse, but they did this by accepting any event
+//  type, including mouse-up. These rooms load in response to mouse-down and if
+//  they finish loading before the button is released then they are skipped.
+//
+// We fix this by excluding mouse-up events from these room event handlers.
+//
+// Applies to: Mac Floppy
+// Responsible methods: LogoRoom:handleEvent, intro:handleEvent
+// Fixes bug: #10937
+static const uint16 qfg1vgaSignatureMacLogoIntroSkip[] = {
+	0x4a, 0x04,                             // send 04 [ event type? ]
+	0x31, SIG_ADDTOOFFSET(+1),              // bnt [ skip if event:type == none (0) ]
+	0x39, SIG_ADDTOOFFSET(+1),              // pushi claimed
+	SIG_MAGICDWORD,
+	0x78,                                   // push1
+	0x78,                                   // push1
+	0x87, 0x01,                             // lap 01
+	0x4a, 0x06,                             // send 06 [ event claimed: 1 ]
+	SIG_END
+};
+
+static const uint16 qfg1vgaPatchMacLogoIntroSkip[] = {
+	0x39, PATCH_GETORIGINALBYTE(+5),        // pushi claimed
+	0x78,                                   // push1
+	0x78,                                   // push1
+	0x4a, 0x0a,                             // send 0a [ event type? claimed: 1 ]
+	0x38, PATCH_UINT16(0x00fd),             // pushi 00fd
+	0x12,                                   // and
+	0x31, PATCH_GETORIGINALBYTEADJUST(+3, -8), // bnt [ skip if event:type == none (0) or mouse-up (2)]
+	PATCH_END
+};
+
 //          script, description,                                      signature                            patch
 static const SciScriptPatcherEntry qfg1vgaSignatures[] = {
 	{  true,    41, "moving to castle gate",                       1, qfg1vgaSignatureMoveToCastleGate,    qfg1vgaPatchMoveToCastleGate },
@@ -8043,12 +8078,14 @@ static const SciScriptPatcherEntry qfg1vgaSignatures[] = {
 	{  true,    78, "mac: enable antwerp controls",                1, qfg1vgaSignatureMacAntwerpControls,  qfg1vgaPatchMacAntwerpControls },
 	{  true,    96, "funny room script bug fixed",                 1, qfg1vgaSignatureFunnyRoomFix,        qfg1vgaPatchFunnyRoomFix },
 	{  true,    96, "yorick door #2 lockup fixed",                 1, qfg1vgaSignatureYorickDoorTwoRect,   qfg1vgaPatchYorickDoorTwoRect },
+	{  true,   200, "mac: intro mouse-up fix",                     1, qfg1vgaSignatureMacLogoIntroSkip,    qfg1vgaPatchMacLogoIntroSkip },
 	{  true,   210, "cheetaur description fixed",                  1, qfg1vgaSignatureCheetaurDescription, qfg1vgaPatchCheetaurDescription },
 	{  true,   215, "fight event issue",                           1, qfg1vgaSignatureFightEvents,         qfg1vgaPatchFightEvents },
 	{  true,   216, "weapon master event issue",                   1, qfg1vgaSignatureFightEvents,         qfg1vgaPatchFightEvents },
 	{  true,   299, "speedtest",                                   1, qfg1vgaSignatureSpeedTest,           qfg1vgaPatchSpeedTest },
 	{  true,   331, "moving to crusher",                           1, qfg1vgaSignatureMoveToCrusher,       qfg1vgaPatchMoveToCrusher },
 	{  true,   331, "moving to crusher from card game",            1, qfg1vgaSignatureCrusherCardGame,     qfg1vgaPatchCrusherCardGame },
+	{  true,   603, "mac: logo mouse-up fix",                      1, qfg1vgaSignatureMacLogoIntroSkip,    qfg1vgaPatchMacLogoIntroSkip },
 	{  true,   814, "window text temp space",                      1, qfg1vgaSignatureTempSpace,           qfg1vgaPatchTempSpace },
 	{  true,   814, "dialog header offset",                        3, qfg1vgaSignatureDialogHeader,        qfg1vgaPatchDialogHeader },
 	{  true,   970, "antwerps wandering off-screen",               1, qfg1vgaSignatureAntwerpWander,       qfg1vgaPatchAntwerpWander },





More information about the Scummvm-git-logs mailing list