From aba02a6811bce5cdf280a632d7bebc0044bb0eb4 Mon Sep 17 00:00:00 2001
From: Paul Gilbert <dreammaster@scummvm.org>
Date: Thu, 3 May 2007 05:06:10 +0000
Subject: [PATCH] Bugfix for characters freezing after talking when in a
 different room than the player, and fixed NPC to NPC conversations

svn-id: r26740
---
 engines/lure/hotspots.cpp | 5 +++--
 engines/lure/luredefs.h   | 8 ++++----
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/engines/lure/hotspots.cpp b/engines/lure/hotspots.cpp
index 54bc9a34327..40d59a55771 100644
--- a/engines/lure/hotspots.cpp
+++ b/engines/lure/hotspots.cpp
@@ -780,7 +780,8 @@ void Hotspot::handleTalkDialog() {
 		// Talking is finish - stop talking and free voice animation
 		debugC(ERROR_DETAILED, kLureDebugAnimations, "Talk dialog close");
 		room.setTalkDialog(0, 0, 0, 0);
-		res.setTalkingCharacter(0);
+		_data->talkDestCharacterId = 0;
+		_data->talkGate = 0;
 	}
 
 	debugC(ERROR_DETAILED, kLureDebugAnimations, "Talk handler method end");
@@ -1924,7 +1925,7 @@ void Hotspot::npcTalkNpcToNpc(HotspotData *hotspot) {
 	// Handle the source's talk message
 	if (entry.param(1) != 0) {
 		converse(hotspot->hotspotId, entry.param(1));
-		resource()->talkCountdown = entry.param(2);
+		resource()->talkCountdown += entry.param(2);
 		resource()->delayCtr = entry.param(2);
 	}
 
diff --git a/engines/lure/luredefs.h b/engines/lure/luredefs.h
index 77758e3c8c4..1419c1b4cbe 100644
--- a/engines/lure/luredefs.h
+++ b/engines/lure/luredefs.h
@@ -85,16 +85,16 @@ enum Action {
 	BRIBE = 24,
 	EXAMINE = 25,
 	NPC_SET_ROOM_AND_OFFSET = 28, 
-	NPC_UNKNOWN1 = 29, 
+	NPC_TALK_TO_PLAYER = 29, 
 	NPC_EXEC_SCRIPT = 30, 
-	NPC_UNKNOWN2 = 31,
+	NPC_RESET_PAUSED_LIST = 31,
 	NPC_SET_RAND_DEST = 32, 
 	NPC_WALKING_CHECK = 33, 
 	NPC_SET_SUPPORT_OFFSET = 34,
 	NPC_SUPPORT_OFFSET_COND = 35, 
 	NPC_DISPATCH_ACTION = 36, 
-	NPC_UNKNOWN3 = 37,
-	NPC_UNKNOWN4 = 38, 
+	NPC_TALK_NPC_TO_NPC = 37,
+	NPC_PAUSE = 38, 
 	NPC_START_TALKING = 39, 
 	NPC_JUMP_ADDRESS = 40
 };