aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic
diff options
context:
space:
mode:
authorPaul Gilbert2016-08-02 07:48:40 -0400
committerPaul Gilbert2016-08-02 07:48:40 -0400
commitefb3970d5d990219d4b468f58e191002d46535ca (patch)
treee32bd22bc18559036e5456632ff85b6ee4c14f9b /engines/titanic
parentcb7d7ed7c36bf59f88db218cdba989cb203a5c1a (diff)
downloadscummvm-rg350-efb3970d5d990219d4b468f58e191002d46535ca.tar.gz
scummvm-rg350-efb3970d5d990219d4b468f58e191002d46535ca.tar.bz2
scummvm-rg350-efb3970d5d990219d4b468f58e191002d46535ca.zip
TITANIC: Fixes for CProximity setup
Diffstat (limited to 'engines/titanic')
-rw-r--r--engines/titanic/support/proximity.cpp8
-rw-r--r--engines/titanic/support/proximity.h10
-rw-r--r--engines/titanic/true_talk/true_talk_manager.cpp18
-rw-r--r--engines/titanic/true_talk/true_talk_manager.h5
4 files changed, 22 insertions, 19 deletions
diff --git a/engines/titanic/support/proximity.cpp b/engines/titanic/support/proximity.cpp
index 4a832b9217..a9a2fdba8c 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 935e2e6b1c..79d86c6764 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 5444cde5af..55f4501d7e 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 ad378af9fc..8a8895917a 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