mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-03 09:23:37 +00:00
SCI: Break out instead of continuing when an end point is contained in multiple polygons, while running the avoidpath algorithm (or we'll end up in an infinite loop). Fixes bug #3036299 - "LB2CD: Game Hangs at Speakeasy"
svn-id: r51450
This commit is contained in:
parent
b3230b26a1
commit
c099127c3d
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user