[Scummvm-git-logs] scummvm master -> f5aec9593b87deab2925a726f6dbd4edaa5805cc
sluicebox
noreply at scummvm.org
Fri Jan 19 22:35:38 UTC 2024
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:
f5aec9593b SCI: Fix HOYLE4 unexpected discard in Euchre
Commit: f5aec9593b87deab2925a726f6dbd4edaa5805cc
https://github.com/scummvm/scummvm/commit/f5aec9593b87deab2925a726f6dbd4edaa5805cc
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2024-01-19T15:32:54-07:00
Commit Message:
SCI: Fix HOYLE4 unexpected discard in Euchre
Fixes bug #14874
Thanks to @Karunamon for reporting this
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 48fc70b1098..8b78a0b2dbc 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -2436,11 +2436,39 @@ static const uint16 hoyle4PatchGinUndercutSound[] = {
PATCH_END
};
+// In Euchre, when discarding the first card after selecting the "Take it up"
+// button, a second card can be unexpectedly discarded and break the game.
+// The script is missing a HandsOff call. This allows two right clicks to
+// trigger a second discard.
+//
+// We fix this by adding a HandsOff call to the code that handles the first
+// discard. We make room by jumping to a codepath that does the same work.
+//
+// Applies to: All versions
+// Responsible method: EuchreHand:enterKey
+// Fixes bug: #14874
+static const uint16 hoyle4SignatureEuchreHandsOff[] = {
+ SIG_MAGICDWORD,
+ 0x45, 0x01, 0x00, // callb 01 00 [ RedrawCast ]
+ 0x38, SIG_SELECTOR16(setCursor), // pushi setCursor
+ SIG_ADDTOOFFSET(+0x2b),
+ 0x76, // push0
+ 0x45, 0x01, 0x00, // callb 01 00 [ RedrawCast ]
+ SIG_END
+};
+
+static const uint16 hoyle4PatchEuchreHandsOff[] = {
+ 0x45, 0x04, 0x00, // callb 04 00 [ HandsOff ]
+ 0x32, PATCH_UINT16(0x002b), // jmp 002b [ RedrawCast, ... ]
+ PATCH_END
+};
+
// script, description, signature patch
static const SciScriptPatcherEntry hoyle4Signatures[] = {
{ true, 100, "crazy eights sound", 1, hoyle4SignatureCrazyEightsSound, hoyle4PatchCrazyEightsSound },
{ true, 400, "gin undercut sound", 1, hoyle4SignatureGinUndercutSound, hoyle4PatchGinUndercutSound },
{ true, 733, "bridge arithmetic against object", 1, hoyle4SignatureBridgeArithmetic, hoyle4PatchBridgeArithmetic },
+ { true, 800, "euchre handsoff", 1, hoyle4SignatureEuchreHandsOff, hoyle4PatchEuchreHandsOff },
SCI_SIGNATUREENTRY_TERMINATOR
};
More information about the Scummvm-git-logs
mailing list