[Scummvm-git-logs] scummvm master -> 46e9b94b3e2905d93918a9ab1848c619b0d81b05
sluicebox
noreply at scummvm.org
Thu Apr 30 20:06:06 UTC 2026
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
1c225d2739 SCI32: Fix SQ6 pathfinding in shuttle bay entrance
46e9b94b3e SCI32: Fix SQ6 pathfinding in Stella's brain
Commit: 1c225d2739e26fe3deb07e6e76d5d9c290e49e95
https://github.com/scummvm/scummvm/commit/1c225d2739e26fe3deb07e6e76d5d9c290e49e95
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2026-04-30T13:00:31-07:00
Commit Message:
SCI32: Fix SQ6 pathfinding in shuttle bay entrance
Adjusts a polygon to work around pathfinding algorithm differences.
Fixes bug #9749
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 3c8209d0a78..b103f388da9 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -26070,6 +26070,40 @@ static const uint16 sq6TrashCanPatch[] = {
PATCH_END
};
+// WORKAROUND: Pathfinding algorithm difference
+//
+// In the shuttle bay entrance (room 440), clicking on either door button
+// while the security guard Chesboro is on the floor causes Roger to skip
+// walking to the door and instead animate from his current position.
+//
+// The polygon deadChesbroPoly is a barred-access polygon that extends beyond
+// the room's contained-access polygon (gaurdsDead) by one. This causes our
+// pathfinding algorithm to conclude that the door buttons are unreachable.
+// This is unrelated to other pathfinding issues in this room, where Roger
+// can walk up the walls when standing in the left or right alcoves.
+//
+// We work around this by lowering the top edge of deadChesbroPoly by one pixel.
+//
+// Applies to: All versions
+// Responsible method: deadChesbroPoly:init
+// Fixes bug: #9749
+static const uint16 sq6ChesboroPolygonSignature[] = {
+ SIG_MAGICDWORD,
+ 0x38, SIG_UINT16(0x00cc), // pushi 00cc [ x: 204 ]
+ 0x39, 0x71, // pushi 71 [ y: 113 ]
+ 0x38, SIG_UINT16(0x00dd), // pushi 00dd [ x: 221 ]
+ 0x39, 0x71, // pushi 71 [ y: 113 ]
+ SIG_END
+};
+
+static const uint16 sq6ChesboroPolygonPatch[] = {
+ PATCH_ADDTOOFFSET(+3),
+ 0x39, 0x72, // pushi 72 [ y: 114 ]
+ PATCH_ADDTOOFFSET(+3),
+ 0x39, 0x72, // pushi 72 [ y: 114 ]
+ PATCH_END
+};
+
// script, description, signature patch
static const SciScriptPatcherEntry sq6Signatures[] = {
{ true, 0, "fix slow transitions", 1, sq6SlowTransitionSignature2, sq6SlowTransitionPatch2 },
@@ -26084,6 +26118,7 @@ static const SciScriptPatcherEntry sq6Signatures[] = {
{ true, 330, "fix polysorbate lx music volume", 1, sq6PolysorbateVolumeSignature, sq6PolysorbateVolumePatch },
{ true, 390, "fix trash can", 1, sq6TrashCanSignature, sq6TrashCanPatch },
{ true, 410, "fix slow transitions", 1, sq6SlowTransitionSignature2, sq6SlowTransitionPatch2 },
+ { true, 440, "pathfinding: chesboro polygon", 1, sq6ChesboroPolygonSignature, sq6ChesboroPolygonPatch },
{ true, 460, "fix invalid array construction", 1, sci21IntArraySignature, sci21IntArrayPatch },
{ true, 490, "fix invalid cockpit icon bar", 1, sq6CockpitIconBarSignature, sq6CockpitIconBarPatch },
{ true, 500, "fix slow transitions", 1, sq6SlowTransitionSignature1, sq6SlowTransitionPatch1 },
Commit: 46e9b94b3e2905d93918a9ab1848c619b0d81b05
https://github.com/scummvm/scummvm/commit/46e9b94b3e2905d93918a9ab1848c619b0d81b05
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2026-04-30T13:00:53-07:00
Commit Message:
SCI32: Fix SQ6 pathfinding in Stella's brain
Adjusts a polygon to work around pathfinding algorithm differences.
Fixes bug #9589
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 b103f388da9..c5c7a992d1f 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -26104,6 +26104,33 @@ static const uint16 sq6ChesboroPolygonPatch[] = {
PATCH_END
};
+// WORKAROUND: Pathfinding algorithm difference
+//
+// In Stella's brain (room 740) ego can walk out of bounds from the upper right
+// area with the ship to the lower area. This skips solving a puzzle and leaves
+// the game in a broken state.
+//
+// We work around this by adjusting the upper right polygon. It has a narrow
+// spike with one point at the end, and our pathfinding algorithm seems to have
+// trouble with that. By moving a second point near the end, the problematic
+// spike shape is removed while keeping the same effective walking area.
+//
+// Applies to: All versions
+// Responsible method: rm740:init
+// Fixes bug: #9589
+static const uint16 sq6BrainPolygonSignature[] = {
+ SIG_MAGICDWORD,
+ 0x38, SIG_UINT16(0x0337), // pushi 0337 [ x: 823 ]
+ 0x39, 0x0c, // pushi 0c [ y: 12 ]
+ SIG_END
+};
+
+static const uint16 sq6BrainPolygonPatch[] = {
+ 0x38, PATCH_UINT16(0x2df), // pushi 02df [ x: 735 ]
+ 0x39, 0x00, // pushi 00 [ y: 0 ]
+ PATCH_END
+};
+
// script, description, signature patch
static const SciScriptPatcherEntry sq6Signatures[] = {
{ true, 0, "fix slow transitions", 1, sq6SlowTransitionSignature2, sq6SlowTransitionPatch2 },
@@ -26124,6 +26151,7 @@ static const SciScriptPatcherEntry sq6Signatures[] = {
{ true, 500, "fix slow transitions", 1, sq6SlowTransitionSignature1, sq6SlowTransitionPatch1 },
{ true, 510, "fix invalid array construction", 1, sci21IntArraySignature, sci21IntArrayPatch },
{ true, 690, "fix duplicate points", 1, sq6DuplicatePointsSignature, sq6DuplicatePointsPatch },
+ { true, 740, "pathfinding: brain polygon", 1, sq6BrainPolygonSignature, sq6BrainPolygonPatch },
{ true, 40, "SQNarrator lockup fix", 1, sq6NarratorLockupSignature, sq6NarratorLockupPatch },
{ true, 40, "SQNarrator lockup fix", 1, sciNarratorLockupLineSignature, sciNarratorLockupLinePatch },
{ true, 64928, "Narrator lockup fix", 1, sciNarratorLockupSignature, sciNarratorLockupPatch },
More information about the Scummvm-git-logs
mailing list