aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorColin Snover2017-01-18 11:41:16 -0600
committerColin Snover2017-03-30 19:46:27 -0500
commitfa9523933f69497bae19510ff1c7f17e4cbe8024 (patch)
tree1879c24b0d16adb17e2b607bb78ba25bc976afb1 /engines
parentbd7a62e99693e6df5c39efe09a8d28c57bfa7cd1 (diff)
downloadscummvm-rg350-fa9523933f69497bae19510ff1c7f17e4cbe8024.tar.gz
scummvm-rg350-fa9523933f69497bae19510ff1c7f17e4cbe8024.tar.bz2
scummvm-rg350-fa9523933f69497bae19510ff1c7f17e4cbe8024.zip
SCI32: Fix broken sliders in Shivers settings
This problem is caused by the same invalid super call that broke the CCTV joystick.
Diffstat (limited to 'engines')
-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
};