aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorColin Snover2017-06-24 11:45:04 -0500
committerColin Snover2017-06-24 11:54:24 -0500
commitfb4b144469bb08297f9f40d2e17aa7132474c24e (patch)
tree1a3746277616f4613ca4ef236b15ae7310ca219f /engines
parentc19c10d548b2867bc4fd003fb29ac0017b2bd29d (diff)
downloadscummvm-rg350-fb4b144469bb08297f9f40d2e17aa7132474c24e.tar.gz
scummvm-rg350-fb4b144469bb08297f9f40d2e17aa7132474c24e.tar.bz2
scummvm-rg350-fb4b144469bb08297f9f40d2e17aa7132474c24e.zip
SCI32: Fix Boogle warp glitch caused by previous game patch
Refs Trac#9836.
Diffstat (limited to 'engines')
-rw-r--r--engines/sci/engine/script_patches.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index f84edae6ce..c7d3ed57ab 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -5633,9 +5633,29 @@ static const uint16 torinBoogleWormInPatch[] = {
PATCH_END
};
+// The previous patch for this bug will cause Boogle to glitch back to the
+// entrance when Boogle is wormed to the left, then unwormed, then wormed to the
+// left again without exiting and re-entering the dragon's cave. To keep this
+// from happening, this patch causes Boogle to walk back to the entrance when
+// unworming, instead of stopping in the middle of the screen.
+// Applies to at least: English CD
+static const uint16 torinBoogleWormSignature[] = {
+ SIG_MAGICDWORD,
+ 0x38, SIG_UINT16(0x29e), // pushi 670
+ 0x38, SIG_UINT16(0xc2), // pushi 194
+ SIG_END
+};
+
+static const uint16 torinBoogleWormPatch[] = {
+ 0x38, SIG_UINT16(940),
+ 0x38, SIG_UINT16(216),
+ PATCH_END
+};
+
// script, description, signature patch
static const SciScriptPatcherEntry torinSignatures[] = {
- { true, 20400, "fix hang when worming into dragon cave", 1, torinBoogleWormInSignature, torinBoogleWormInPatch },
+ { true, 20400, "fix hang when worming into dragon cave 1/2", 1, torinBoogleWormInSignature, torinBoogleWormInPatch },
+ { true, 20400, "fix hang when worming into dragon cave 2/2", 1, torinBoogleWormSignature, torinBoogleWormPatch },
{ true, 64000, "disable volume reset on startup 1/2", 1, torinVolumeResetSignature1, torinVolumeResetPatch1 },
{ true, 64000, "disable volume reset on startup 2/2", 1, torinVolumeResetSignature2, torinVolumeResetPatch2 },
{ true, 64866, "increase number of save games", 1, torinNumSavesSignature, torinNumSavesPatch },