[Scummvm-cvs-logs] CVS: scummvm/queen talk.h,1.21,1.22 talk.cpp,1.46,1.47

Gregory Montoir cyx at users.sourceforge.net
Mon Nov 24 11:23:14 CET 2003


Update of /cvsroot/scummvm/scummvm/queen
In directory sc8-pr-cvs1:/tmp/cvs-serv28113

Modified Files:
	talk.h talk.cpp 
Log Message:
fix 'anderson replying twice the same sentence before taking off' issue

Index: talk.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/talk.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- talk.h	15 Nov 2003 21:16:01 -0000	1.21
+++ talk.h	24 Nov 2003 19:22:52 -0000	1.22
@@ -175,7 +175,7 @@
 	void initialTalk();
 
 	//! Find a string in the dialogue tree
-	void findDialogueString(byte *ptr, int16 id, char *str);
+	void findDialogueString(byte *ptr, int16 id, int16 max, char *str);
 
 	//! Get TalkSelected struct for this talk
 	TalkSelected *talkSelected();

Index: talk.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/talk.cpp,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -d -r1.46 -r1.47
--- talk.cpp	15 Nov 2003 21:58:44 -0000	1.46
+++ talk.cpp	24 Nov 2003 19:22:52 -0000	1.47
@@ -167,7 +167,7 @@
 		if (hasTalkedTo() && head == 1)
 			strcpy(_talkString[0], _person2String);
 		else
-			findDialogueString(_person1Ptr, head, _talkString[0]);
+			findDialogueString(_person1Ptr, head, _pMax, _talkString[0]);
 
 		if (hasTalkedTo() && head == 1)
 			sprintf(otherVoiceFilePrefix, "%2dXXXXP", _talkKey);
@@ -175,14 +175,14 @@
 			sprintf(otherVoiceFilePrefix, "%2d%4xP", _talkKey, head);
 
 		if (_talkString[0][0] == '\0' && retval > 1) {
-			findDialogueString(_person1Ptr, retval, _talkString[0]);
+			findDialogueString(_person1Ptr, retval, _pMax, _talkString[0]);
 			sprintf(otherVoiceFilePrefix,"%2d%4xP", _talkKey, retval);
 		}
 
 		// Joe dialogue
 
 		for (i = 1; i <= 4; i++) {
-			findDialogueString(_joePtr, _dialogueTree[level][i].head, _talkString[i]);
+			findDialogueString(_joePtr, _dialogueTree[level][i].head, _jMax, _talkString[i]);
 
 			int16 index = _dialogueTree[level][i].gameStateIndex;
 
@@ -206,7 +206,7 @@
 			}
 		}
 
-		// debug(0, "choicesLeft = %i", choicesLeft);
+		debug(0, "choicesLeft = %i", choicesLeft);
 
 		if (1 == choicesLeft) {
 			// Automatically run the final dialogue option
@@ -292,7 +292,7 @@
 		// has something final to say!
 
 		if (-1 == retval) {
-			findDialogueString(_person1Ptr, head, _talkString[0]);
+			findDialogueString(_person1Ptr, head, _pMax, _talkString[0]);
 			if (_talkString[0][0] != '\0') {
 				sprintf(otherVoiceFilePrefix, "%2d%4xP", _talkKey, head);
 				if (speak(_talkString[0], &person, otherVoiceFilePrefix))
@@ -378,10 +378,10 @@
 	_dialogueTree[oldLevel][selectedSentence].dialogueNodeValue1 = -1;
 }
 
-void Talk::findDialogueString(byte *ptr, int16 id, char *str) {
+void Talk::findDialogueString(byte *ptr, int16 id, int16 max, char *str) {
 	str[0] = '\0';
 
-	for (int i = 1; i <= _pMax; i++) {
+	for (int i = 1; i <= max; i++) {
 		ptr += 2;
 		int16 currentId = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		if (id == currentId) {





More information about the Scummvm-git-logs mailing list