aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);