[Scummvm-cvs-logs] SF.net SVN: scummvm:[44890] scummvm/trunk/engines/sci/engine/message.cpp

waltervn at users.sourceforge.net waltervn at users.sourceforge.net
Sun Oct 11 05:40:12 CEST 2009


Revision: 44890
          http://scummvm.svn.sourceforge.net/scummvm/?rev=44890&view=rev
Author:   waltervn
Date:     2009-10-11 03:40:11 +0000 (Sun, 11 Oct 2009)

Log Message:
-----------
SCI: Fix bug in Message() recursion

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/message.cpp

Modified: scummvm/trunk/engines/sci/engine/message.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/message.cpp	2009-10-11 02:47:07 UTC (rev 44889)
+++ scummvm/trunk/engines/sci/engine/message.cpp	2009-10-11 03:40:11 UTC (rev 44890)
@@ -182,9 +182,9 @@
 		if (recurse) {
 			MessageTuple &ref = record.refTuple;
 
-			if ((ref.noun != 0) && (ref.verb != 0) && (ref.cond != 0)) {
+			if (ref.noun || ref.verb || ref.cond) {
 				t.seq++;
-				stack.push(MessageTuple(ref.noun, ref.verb, ref.cond));
+				stack.push(ref);
 				continue;
 			}
 		}
@@ -202,16 +202,14 @@
 	MessageRecord record;
 
 	if (!buf.isNull()) {
-		MessageTuple &t = _cursorStack.top();
-		Common::String finalStr;
-
 		if (getRecord(_cursorStack, true, record)) {
 			outputString(buf, processString(record.string));
 			_lastReturned = record.tuple;
 			_lastReturnedModule = _cursorStack.getModule();
-			t.seq++;
+			_cursorStack.top().seq++;
 			return record.talker;
 		} else {
+			MessageTuple &t = _cursorStack.top();
 			outputString(buf, Common::String::printf("Msg %d: %d %d %d %d not found", _cursorStack.getModule(), t.noun, t.verb, t.cond, t.seq));
 			return 0;
 		}


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