aboutsummaryrefslogtreecommitdiff
path: root/engines/lure
diff options
context:
space:
mode:
authorPaul Gilbert2007-11-16 08:59:18 +0000
committerPaul Gilbert2007-11-16 08:59:18 +0000
commitca2641b70f96f879352ab49b5d4f90909d4f75de (patch)
treeb55049e86d1122481a0a64d447faa6bc3441a269 /engines/lure
parentfe690d56889964465a70c482d41c1448e5de34f2 (diff)
downloadscummvm-rg350-ca2641b70f96f879352ab49b5d4f90909d4f75de.tar.gz
scummvm-rg350-ca2641b70f96f879352ab49b5d4f90909d4f75de.tar.bz2
scummvm-rg350-ca2641b70f96f879352ab49b5d4f90909d4f75de.zip
Changed conversation guards so that the player talking will only be paused if there's another active conversation that's in the same room
svn-id: r29516
Diffstat (limited to 'engines/lure')
-rw-r--r--engines/lure/hotspots.cpp2
-rw-r--r--engines/lure/room.h5
2 files changed, 6 insertions, 1 deletions
diff --git a/engines/lure/hotspots.cpp b/engines/lure/hotspots.cpp
index 1f3f081e98..89d4eaaed9 100644
--- a/engines/lure/hotspots.cpp
+++ b/engines/lure/hotspots.cpp
@@ -3265,7 +3265,7 @@ void HotspotTickHandlers::talkAnimHandler(Hotspot &h) {
assert(talkDestCharacter != 0);
// Make sure any other dialog is finished before we start talking
- if (room.isDialogActive())
+ if (room.isDialogShowing())
return;
// Fall through to TALK_START
diff --git a/engines/lure/room.h b/engines/lure/room.h
index 32cd0f4280..1fbe853b72 100644
--- a/engines/lure/room.h
+++ b/engines/lure/room.h
@@ -118,6 +118,11 @@ public:
TalkDialog *talkDialog() { return _talkDialog; }
void setCursorState(CursorState state) { _cursorState = state; }
bool isDialogActive() { return _talkDialog != NULL; }
+ bool isDialogShowing() {
+ Resources &res = Resources::getReference();
+ Hotspot *talkCharacter = res.getActiveHotspot(res.getTalkingCharacter());
+ return isDialogActive() && (talkCharacter != NULL) && (talkCharacter->roomNumber() == _roomNumber);
+ }
bool checkInTalkDialog();
char *statusLine() { return _statusLine; }
void saveToStream(Common::WriteStream *stream);