[Scummvm-cvs-logs] scummvm master -> efb3970d5d990219d4b468f58e191002d46535ca

dreammaster dreammaster at scummvm.org
Tue Aug 2 13:48:47 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:
efb3970d5d TITANIC: Fixes for CProximity setup


Commit: efb3970d5d990219d4b468f58e191002d46535ca
    https://github.com/scummvm/scummvm/commit/efb3970d5d990219d4b468f58e191002d46535ca
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2016-08-02T07:48:40-04:00

Commit Message:
TITANIC: Fixes for CProximity setup

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



diff --git a/engines/titanic/support/proximity.cpp b/engines/titanic/support/proximity.cpp
index 4a832b9..a9a2fdb 100644
--- a/engines/titanic/support/proximity.cpp
+++ b/engines/titanic/support/proximity.cpp
@@ -26,12 +26,12 @@
 namespace Titanic {
 
 CProximity::CProximity() : _field4(0), _field8(100), _fieldC(0),
-		_speechHandle(-1), _field14(0), _field18(0), _field1C(0x3FF00000),
-		_field20(0), _field24(10), _field28(0), _field2C(0),
-		_field30(0x3F000000), _field34(0), _double1(0.0), _double2(0.0),
+		_speechHandle(-1), _field14(0), _field18(0), _field1C(1.875),
+		_field20(0), _field24(10), _field28(0), _field2C(0.0),
+		_field30(0.5), _field34(0), _double1(0.0), _double2(0.0),
 		_double3(0.0), _field44(0), _field48(0), _field4C(0),
 		_field50(0), _field54(0), _field58(0), _field5C(0),
-		_field60(0), _method1(nullptr), _talker(nullptr), _field6C(0) {
+		_field60(0), _endTalkerFn(nullptr), _talker(nullptr), _field6C(0) {
 }
 
 } // End of namespace Titanic
diff --git a/engines/titanic/support/proximity.h b/engines/titanic/support/proximity.h
index 935e2e6..79d86c6 100644
--- a/engines/titanic/support/proximity.h
+++ b/engines/titanic/support/proximity.h
@@ -27,10 +27,10 @@
 
 namespace Titanic {
 
-typedef bool (*CProximityFn)(int val);
-
 class TTtalker;
 
+typedef void (*CEndTalkerFn)(TTtalker *talker);
+
 class CProximity {
 public:
 	int _field4;
@@ -43,8 +43,8 @@ public:
 	int _field20;
 	int _field24;
 	int _field28;
-	uint32 _field2C;
-	int _field30;
+	double _field2C;
+	double _field30;
 	int _field34;
 	double _double1;
 	double _double2;
@@ -57,7 +57,7 @@ public:
 	int _field58;
 	int _field5C;
 	int _field60;
-	CProximityFn _method1;
+	CEndTalkerFn _endTalkerFn;
 	TTtalker *_talker;
 	int _field6C;
 public:
diff --git a/engines/titanic/true_talk/true_talk_manager.cpp b/engines/titanic/true_talk/true_talk_manager.cpp
index 5444cde..55f4501 100644
--- a/engines/titanic/true_talk/true_talk_manager.cpp
+++ b/engines/titanic/true_talk/true_talk_manager.cpp
@@ -506,14 +506,14 @@ void CTrueTalkManager::playSpeech(TTtalker *talker, TTroomScript *roomScript, CV
 	if (milli > 0) {
 		p3._field8 = (index * 3) / 2;
 		p3._field28 = 1;
-		p3._field2C = 0xC3070000;
-		p3._field30 = 0x3F800000;
+		p3._field2C = -135.0;
+		p3._field30 = 1.0;
 		p3._field34 = 0;
 
 		p3._field8 = (index * 3) / 4;
 		p2._field28 = 0;
-		p2._field2C = 0x43070000;
-		p2._field30 = 0x3F800000;
+		p2._field2C = 135.0;
+		p2._field30 = 1.0;
 		p2._field34 = 0;
 	}
 
@@ -530,11 +530,11 @@ void CTrueTalkManager::playSpeech(TTtalker *talker, TTroomScript *roomScript, CV
 
 		if (idx == (_titleEngine._indexes.size() - 1)) {
 			// Final iteration of speech segments to play
-			p1._method1 = &proximityMethod1;
+			p1._endTalkerFn = &talkerEnd;
 			p1._talker = talker;
 		}
 
-		// Start the 
+		// Start the speech
 		p1._speechHandle = _gameManager->_sound.playSpeech(_dialogueFile, id - _dialogueId, p1);
 		if (!milli)
 			continue;
@@ -568,9 +568,9 @@ bool CTrueTalkManager::triggerAction(int action, int param) {
 	return true;
 }
 
-bool CTrueTalkManager::proximityMethod1(int val) {
-	// TODO
-	return false;
+void CTrueTalkManager::talkerEnd(TTtalker *talker) {
+	if (talker)
+		talker->endSpeech(0);
 }
 
 CGameManager *CTrueTalkManager::getGameManager() const {
diff --git a/engines/titanic/true_talk/true_talk_manager.h b/engines/titanic/true_talk/true_talk_manager.h
index ad378af..8a88959 100644
--- a/engines/titanic/true_talk/true_talk_manager.h
+++ b/engines/titanic/true_talk/true_talk_manager.h
@@ -109,7 +109,10 @@ private:
 	 */
 	void playSpeech(TTtalker *talker, TTroomScript *roomScript, CViewItem *view, bool isParrot);
 
-	static bool proximityMethod1(int val);
+	/**
+	 * Called when a talker finishes
+	 */
+	static void talkerEnd(TTtalker *talker);
 
 	/**
 	 * Return the game state






More information about the Scummvm-git-logs mailing list