diff options
author | Paul Gilbert | 2010-10-06 09:55:41 +0000 |
---|---|---|
committer | Paul Gilbert | 2010-10-06 09:55:41 +0000 |
commit | b15f51ad7b5e8e85afe970c1740aae566236afe6 (patch) | |
tree | 67a9d1564dd5431f66798346b75feb26cb0e54f8 /engines/lure | |
parent | 7ffd94004ec7fdf04e83c90a35f7d7910b12a6ce (diff) | |
download | scummvm-rg350-b15f51ad7b5e8e85afe970c1740aae566236afe6.tar.gz scummvm-rg350-b15f51ad7b5e8e85afe970c1740aae566236afe6.tar.bz2 scummvm-rg350-b15f51ad7b5e8e85afe970c1740aae566236afe6.zip |
LURE: Fix for #3062794 - Diermot cannot leave room 7
svn-id: r53039
Diffstat (limited to 'engines/lure')
-rw-r--r-- | engines/lure/hotspots.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
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()); } } } |