diff options
author | Paul Gilbert | 2016-08-02 07:48:40 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-08-02 07:48:40 -0400 |
commit | efb3970d5d990219d4b468f58e191002d46535ca (patch) | |
tree | e32bd22bc18559036e5456632ff85b6ee4c14f9b /engines | |
parent | cb7d7ed7c36bf59f88db218cdba989cb203a5c1a (diff) | |
download | scummvm-rg350-efb3970d5d990219d4b468f58e191002d46535ca.tar.gz scummvm-rg350-efb3970d5d990219d4b468f58e191002d46535ca.tar.bz2 scummvm-rg350-efb3970d5d990219d4b468f58e191002d46535ca.zip |
TITANIC: Fixes for CProximity setup
Diffstat (limited to 'engines')
-rw-r--r-- | engines/titanic/support/proximity.cpp | 8 | ||||
-rw-r--r-- | engines/titanic/support/proximity.h | 10 | ||||
-rw-r--r-- | engines/titanic/true_talk/true_talk_manager.cpp | 18 | ||||
-rw-r--r-- | engines/titanic/true_talk/true_talk_manager.h | 5 |
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 |