aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/true_talk
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/true_talk
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/true_talk')
-rw-r--r--engines/titanic/true_talk/true_talk_manager.cpp18
-rw-r--r--engines/titanic/true_talk/true_talk_manager.h5
2 files changed, 13 insertions, 10 deletions
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