aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--engines/lure/hotspots.cpp10
2 files changed, 9 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index bf18af3910..f6d4977f25 100644
--- a/NEWS
+++ b/NEWS
@@ -103,6 +103,7 @@ For a more comprehensive changelog for the latest experimental SVN code, see:
- Fixed bug where Goewin could get stuck in the Weregate
- Fixed issue with Ratpouch repeatedly moving between two rooms
- Fix for Goewin losing her schedule after Were-cave
+ - Fix for player getting stuck in sewer exit room
Parallaction:
- Made part one of The Big Red Adventure completable.
diff --git a/engines/lure/hotspots.cpp b/engines/lure/hotspots.cpp
index 65a12981d8..30b6f840fc 100644
--- a/engines/lure/hotspots.cpp
+++ b/engines/lure/hotspots.cpp
@@ -3133,8 +3133,14 @@ void HotspotTickHandlers::followerAnimHandler(Hotspot &h) {
const RoomTranslationRecord *p = &roomTranslations[0];
while ((p->srcRoom != 0) && (p->srcRoom != player->roomNumber()))
++p;
- h.currentActions().addFront(DISPATCH_ACTION,
- (p->srcRoom != 0) ? p->destRoom : player->roomNumber());
+
+ if (p->destRoom == h.roomNumber())
+ // Character is already in destination room, so set a random dest
+ h.setRandomDest();
+ else
+ // Move character to either the player's room, or found alternate destination
+ h.currentActions().addFront(DISPATCH_ACTION,
+ (p->srcRoom != 0) ? p->destRoom : player->roomNumber());
}
}
}