aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/engine/script_patches.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index d84d2ab780..f5ec2d300c 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -4871,7 +4871,9 @@ static const SciScriptPatcherEntry sq5Signatures[] = {
// In SSCI, this happens to work because the uninitialized value on the stack
// happens to be 1. Disabling the super call avoids the bad doVerb call without
// any apparent ill effect.
-static const uint16 shiversSignatureJoystickFix[] = {
+// The same problem exists when trying to drag the volume & brightness sliders
+// in the main menu. These controls are also fixed by this patch.
+static const uint16 shiversSignatureSuperCall[] = {
SIG_MAGICDWORD,
0x38, SIG_UINT16(0xa5), // pushi handleEvent
0x78, // push1
@@ -4881,14 +4883,15 @@ static const uint16 shiversSignatureJoystickFix[] = {
SIG_END
};
-static const uint16 shiversPatchJoystickFix[] = {
+static const uint16 shiversPatchSuperCall[] = {
0x48, // ret
PATCH_END
};
// script, description, signature patch
static const SciScriptPatcherEntry shiversSignatures[] = {
- { true, 35170, "fix CCTV joystick interaction", 1, shiversSignatureJoystickFix, shiversPatchJoystickFix },
+ { true, 35170, "fix CCTV joystick interaction", 1, shiversSignatureSuperCall, shiversPatchSuperCall },
+ { true, 990, "fix volume & brightness sliders", 2, shiversSignatureSuperCall, shiversPatchSuperCall },
SCI_SIGNATUREENTRY_TERMINATOR
};