diff options
-rw-r--r-- | engines/sci/engine/kpathing.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/engines/sci/engine/kpathing.cpp b/engines/sci/engine/kpathing.cpp index 45a52694dc..2f96fd9f60 100644 --- a/engines/sci/engine/kpathing.cpp +++ b/engines/sci/engine/kpathing.cpp @@ -988,8 +988,13 @@ static Common::Point *fixup_end_point(PathfindingState *s, const Common::Point & if (cont != CONT_OUTSIDE) { if (s->_appendPoint != NULL) { // We shouldn't get here twice + // Happens in LB2CD, inside the speakeasy when walking from the + // speakeasy (room 310) into the bathroom (room 320), after having + // consulted the notebook (bug #3036299). + // We need to break in this case, otherwise we'll end in an infinite + // loop. warning("AvoidPath: end point is contained in multiple polygons"); - continue; + break; } // The original end position is in an invalid location, so we move the point |