[Scummvm-git-logs] scummvm master -> 58653c7917dc897b678958305ca0c167cce00c99

bluegr bluegr at gmail.com
Sun Dec 2 22:19:37 CET 2018


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
58653c7917 SCI: Fix SQ5 drive bay pathfinding, bug #7155 (#1428)


Commit: 58653c7917dc897b678958305ca0c167cce00c99
    https://github.com/scummvm/scummvm/commit/58653c7917dc897b678958305ca0c167cce00c99
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2018-12-02T23:19:35+02:00

Commit Message:
SCI: Fix SQ5 drive bay pathfinding, bug #7155 (#1428)

Works around a pathfinding algorithm edge case

Changed paths:
    engines/sci/engine/script_patches.cpp


diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index d68eb0c..06dacab 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -8960,9 +8960,35 @@ static const uint16 sq5PatchToolboxFix[] = {
 	PATCH_END
 };
 
-//          script, description,                                      signature                        patch
+// After entering the drive bay (room 1000) through the hallway, clicking walk
+//  in most places causes ego to automatically turn around and return to the
+//  previous room. This is due to differences in our pathfinding algorithm from
+//  Sierra's which results in ego first walking backwards into the control area
+//  that triggers the script sExitToHall.
+//
+// We work around this by adjusting ego's initial MoveTo position by a few
+//  pixels to one which doesn't cause pathfinding to send ego backwards.
+//
+// Applies to: PC Floppy
+// Responsible method: sEnterFromHall:changeState(0)
+// Fixes bug #7155
+static const uint16 sq5SignatureDriveBayPathfindingFix[] = {
+	SIG_MAGICDWORD,
+	0x39, 0x0e,                     // pushi 0e [ x = 14d ]
+	0x39, 0x6e,                     // pushi 6e [ y = 110d ]
+	SIG_END
+};
+
+static const uint16 sq5PatchDriveBayPathfindingFix[] = {
+	0x39, 0x10,                     // pushi 10 [ x = 16d ]
+	0x39, 0x6f,                     // pushi 6f [ y = 111d ]
+	PATCH_END
+};
+
+//          script, description,                                      signature                             patch
 static const SciScriptPatcherEntry sq5Signatures[] = {
-	{  true,   226, "toolbox fix",                                 1, sq5SignatureToolboxFix,          sq5PatchToolboxFix },
+	{  true,   226, "toolbox fix",                                 1, sq5SignatureToolboxFix,               sq5PatchToolboxFix },
+	{  true,  1000, "drive bay pathfinding fix",                   1, sq5SignatureDriveBayPathfindingFix,   sq5PatchDriveBayPathfindingFix },
 	SCI_SIGNATUREENTRY_TERMINATOR
 };
 





More information about the Scummvm-git-logs mailing list