aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorMartin Kiewitz2013-11-05 00:11:41 +0100
committerMartin Kiewitz2013-11-05 00:11:41 +0100
commit532fe7b84ef6a8436c467c3979a4531bb8edeb14 (patch)
treefeb7625e1bcab978937008c6542c216265a1dbc6 /engines/sci
parent34169a817c0f995fdbb353e76742a071a7bde95e (diff)
downloadscummvm-rg350-532fe7b84ef6a8436c467c3979a4531bb8edeb14.tar.gz
scummvm-rg350-532fe7b84ef6a8436c467c3979a4531bb8edeb14.tar.bz2
scummvm-rg350-532fe7b84ef6a8436c467c3979a4531bb8edeb14.zip
SCI: Script Patch to fix German LSL5 Patti Textbox
fixes Patti's head overlapping a textbox near the end of the game (German text only!), also occured in Sierra SCI
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/engine/script_patches.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index 992dd9e8bb..9bf284d543 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -1012,6 +1012,35 @@ SciScriptPatcherEntry larry2Signatures[] = {
};
// ===========================================================================
+// Leisure Suit Larry 5
+// In one of the conversations near the end (to be exact - room 380 and the text
+// about using champagne on Reverse Biaz - only used when you actually did that
+// in the game), the German text is too large, causing the textbox to get too large.
+// Because of that the talking head of Patti is drawn over the textbox. A translation oversight.
+// Applies to at least: German floppy
+// Responsible method: none, position of talker object on screen needs to get modified
+const uint16 larry5SignatureGermanEndingPattiTalker[] = {
+ SIG_MAGICDWORD,
+ SIG_UINT16 + 0x6e, 0x00, // object pattiTalker::x (110)
+ SIG_UINT16 + 0xb4, 0x00, // object pattiTalker::y (180)
+ SIG_ADDTOOFFSET + 469, // verify that it's really the German version
+ 0x59, 0x6f, 0x75, // (object name) "You"
+ 0x23, 0x47, 0x44, 0x75, // "#GDu"
+ SIG_END
+};
+
+const uint16 larry5PatchGermanEndingPattiTalker[] = {
+ PATCH_UINT16 + 0x5a, 0x00, // change pattiTalker::x to 90
+ PATCH_END
+};
+
+// script, description, signature patch
+SciScriptPatcherEntry larry5Signatures[] = {
+ { 380, "German-only: Enlarge Patti Textbox", 1, 0, 0, larry5SignatureGermanEndingPattiTalker, larry5PatchGermanEndingPattiTalker },
+ SCI_SIGNATUREENTRY_TERMINATOR
+};
+
+// ===========================================================================
// this is called on every death dialog. Problem is at least the german
// version of lsl6 gets title text that is far too long for the
// available temp space resulting in temp space corruption
@@ -2076,6 +2105,9 @@ void Script::patcherProcessScript(uint16 scriptNr, byte *scriptData, const uint3
case GID_LSL2:
signatureTable = larry2Signatures;
break;
+ case GID_LSL5:
+ signatureTable = larry5Signatures;
+ break;
case GID_LSL6:
signatureTable = larry6Signatures;
break;