From aba02a6811bce5cdf280a632d7bebc0044bb0eb4 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Thu, 3 May 2007 05:06:10 +0000 Subject: 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(-) (limited to 'engines/lure') diff --git a/engines/lure/hotspots.cpp b/engines/lure/hotspots.cpp index 54bc9a3432..40d59a5577 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 77758e3c8c..1419c1b4cb 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 }; -- cgit v1.2.3