[Scummvm-git-logs] scummvm master -> 41e6a5d2a64bbecd37d47a1dc87b4135c2149f4a

dreammaster dreammaster at scummvm.org
Sat Oct 22 18:33:16 CEST 2016


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
41e6a5d2a6 TITANIC: Fix looping in CTrueTalkManager::triggerNPC


Commit: 41e6a5d2a64bbecd37d47a1dc87b4135c2149f4a
    https://github.com/scummvm/scummvm/commit/41e6a5d2a64bbecd37d47a1dc87b4135c2149f4a
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2016-10-22T12:33:07-04:00

Commit Message:
TITANIC: Fix looping in CTrueTalkManager::triggerNPC

Changed paths:
    engines/titanic/true_talk/true_talk_manager.cpp
    engines/titanic/true_talk/true_talk_manager.h



diff --git a/engines/titanic/true_talk/true_talk_manager.cpp b/engines/titanic/true_talk/true_talk_manager.cpp
index ed45ab2..a3f9523 100644
--- a/engines/titanic/true_talk/true_talk_manager.cpp
+++ b/engines/titanic/true_talk/true_talk_manager.cpp
@@ -423,22 +423,19 @@ void CTrueTalkManager::triggerNPC(CTrueTalkNPC *npc) {
 		}
 	} else {
 		CTrueTalkGetAnimSetMsg getAnimMsg;
-		if (_speechDuration > 300) {
-			do {
-				getAnimMsg.execute(npc);
-				if (!getAnimMsg._endFrame)
-					break;
+		while (_speechDuration > 300) {
+			getAnimMsg.execute(npc);
+			if (!getAnimMsg._endFrame)
+				break;
 
-				npc->playMovie(getAnimMsg._startFrame, getAnimMsg._endFrame, 0);
-				getAnimMsg._endFrame = 0;
+			npc->playMovie(getAnimMsg._startFrame, getAnimMsg._endFrame, 0);
+			getAnimMsg._endFrame = 0;
 
-				uint numFrames = getAnimMsg._endFrame - getAnimMsg._startFrame;
-				int64 val = (numFrames * 1000) * 0x88888889;
-				uint diff = (val >> (32 + 5)) - 500;
-				_speechDuration += diff;
+			uint numFrames = getAnimMsg._endFrame - getAnimMsg._startFrame;
+			int diff = (numFrames * 1000) / 15 - 500;
+			_speechDuration += diff;
 
-				getAnimMsg._index++;
-			} while (_speechDuration > 0);
+			getAnimMsg._index++;
 		}
 	}
 }
diff --git a/engines/titanic/true_talk/true_talk_manager.h b/engines/titanic/true_talk/true_talk_manager.h
index 3abf4c1..f809642 100644
--- a/engines/titanic/true_talk/true_talk_manager.h
+++ b/engines/titanic/true_talk/true_talk_manager.h
@@ -50,7 +50,7 @@ private:
 	int _currentCharId;
 	CDialogueFile *_dialogueFile;
 	int _dialogueId;
-	uint _speechDuration;
+	int _speechDuration;
 	TTtalkerList _talkers;
 private:
 	/**





More information about the Scummvm-git-logs mailing list