aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorMartin Kiewitz2013-12-18 19:02:35 +0100
committerMartin Kiewitz2013-12-18 19:02:35 +0100
commitedd00bec6791af94b78959741d3176511f0715d9 (patch)
treec530f033cacc0e37da249c950a04037f00ddbb94 /engines/sci/engine
parent675e6643f7c283f7d9c5320a49c15fd3a8893e4e (diff)
downloadscummvm-rg350-edd00bec6791af94b78959741d3176511f0715d9.tar.gz
scummvm-rg350-edd00bec6791af94b78959741d3176511f0715d9.tar.bz2
scummvm-rg350-edd00bec6791af94b78959741d3176511f0715d9.zip
SCI: another kq6 patch for audio+text support
fixes dialog of man in robe complaining about mints in pawn shop
Diffstat (limited to 'engines/sci/engine')
-rw-r--r--engines/sci/engine/script_patches.cpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index e9b51b4b6e..1121000a10 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -978,7 +978,7 @@ static const uint16 kq6laurabow2CDPatchAudioTextSupport5[] = {
PATCH_END
};
-// Additional patches specifically for King's Quest 6
+// Additional patch specifically for King's Quest 6
// Fixes text window placement, when portrait+text is shown
// Patched method: Kq6Talker::init
static const uint16 kq6CDSignatureAudioTextSupport1[] = {
@@ -997,7 +997,7 @@ static const uint16 kq6CDPatchAudioTextSupport1[] = {
PATCH_END
};
-// Additional patches specifically for King's Quest 6
+// Additional patch specifically for King's Quest 6
// Fixes low-res portrait staying on screen for hi-res mode
// Patched method: Talker::startText
// this method is called by Narrator::say and acc is 0 for text-only and true for audio+text
@@ -1021,6 +1021,27 @@ static const uint16 kq6CDPatchAudioTextSupport2[] = {
PATCH_END
};
+// Additional patch specifically for King's Quest 6
+// Fixes special windows, used for example in the Pawn shop (room 280),
+// when the man in a robe complains about no more mints.
+// Patched method: KQ6Print::say
+// Currently those windows wait for a mouse-click and don't close automatically
+static const uint16 kq6CDSignatureAudioTextSupport3[] = {
+ SIG_MAGICDWORD,
+ 0x8f, 0x01, // lsp param[1]
+ 0x35, 0x01, // ldi 01
+ 0x1a, // eq?
+ 0x31, 0x0c, // bnt [code to set property repressText to 1]
+ 0x38, // pushi (selector addText)
+ SIG_END
+};
+
+static const uint16 kq6CDPatchAudioTextSupport3[] = {
+ PATCH_ADDTOOFFSET +5,
+ 0x18, 0x18, // not (waste bytes)
+ PATCH_END
+};
+
// Fixes text window placement, when portrait+text is shown (Guard in room 220)
// Patched method: tlkGateGuard1::init & tlkGateGuard2::init
static const uint16 kq6CDSignatureAudioTextSupportGuards[] = {
@@ -1079,6 +1100,7 @@ static const SciScriptPatcherEntry kq6Signatures[] = {
{ false, 928, "CD: audio + text support KQ6&LB2 5", 2, kq6laurabow2CDSignatureAudioTextSupport5, kq6laurabow2CDPatchAudioTextSupport5 },
{ false, 909, "CD: audio + text support KQ6 1", 1, kq6CDSignatureAudioTextSupport1, kq6CDPatchAudioTextSupport1 },
{ false, 928, "CD: audio + text support KQ6 2", 1, kq6CDSignatureAudioTextSupport2, kq6CDPatchAudioTextSupport2 },
+ { false, 104, "CD: audio + text support KQ6 3", 1, kq6CDSignatureAudioTextSupport3, kq6CDPatchAudioTextSupport3 },
{ false, 1009, "CD: audio + text support KQ6 Guards", 2, kq6CDSignatureAudioTextSupportGuards, kq6CDPatchAudioTextSupportGuards },
{ false, 1027, "CD: audio + text support KQ6 Stepmother", 1, kq6CDSignatureAudioTextSupportStepmother, kq6CDPatchAudioTextSupportJumpAlways },
{ false, 1037, "CD: audio + text support KQ6 Gnomes", 1, kq6CDSignatureAudioTextSupportGnomes, kq6CDPatchAudioTextSupportJumpAlways },