[Scummvm-cvs-logs] SF.net SVN: scummvm: [29481] scummvm/trunk/engines/lure/hotspots.cpp

dreammaster at users.sourceforge.net dreammaster at users.sourceforge.net
Mon Nov 12 10:53:11 CET 2007


Revision: 29481
          http://scummvm.svn.sourceforge.net/scummvm/?rev=29481&view=rev
Author:   dreammaster
Date:     2007-11-12 01:53:10 -0800 (Mon, 12 Nov 2007)

Log Message:
-----------
Adjustments to the talk state machine so information dialogs (if any) correctly occur at the end of a conversation (such as giving the bar to Ewan)

Modified Paths:
--------------
    scummvm/trunk/engines/lure/hotspots.cpp

Modified: scummvm/trunk/engines/lure/hotspots.cpp
===================================================================
--- scummvm/trunk/engines/lure/hotspots.cpp	2007-11-12 09:16:00 UTC (rev 29480)
+++ scummvm/trunk/engines/lure/hotspots.cpp	2007-11-12 09:53:10 UTC (rev 29481)
@@ -3333,6 +3333,12 @@
 	case TALK_RESPOND:
 		// Handle initial response to show the question in a talk dialog if needed
 
+		if (h.resource()->talkCountdown != 0) {
+			// Current talk dialog already pending needs to finish
+			h.handleTalkDialog();
+			return;
+		}
+
 		// Get the original question for display
 		selectedLine = res.getTalkSelection();
 		entry = talkSelections[selectedLine-1];
@@ -3400,10 +3406,11 @@
 	case TALK_RESPONSE_WAIT:
 		// Wait until the character's response has finished being displayed
 		charHotspot = res.getActiveHotspot(talkDestCharacter);
+		assert(charHotspot);
 		debugC(ERROR_DETAILED, kLureDebugAnimations, "Player talk dialog countdown %d", 
 			(charHotspot) ? charHotspot->resource()->talkCountdown : 0);
 
-		if (res.getTalkingCharacter() != 0) 
+		if ((charHotspot->resource()->talkCountdown > 0) || (res.getTalkingCharacter() != 0))
 			return;
 
 		result = _talkResponse->postSequenceId;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list