aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/true_talk/true_talk_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/true_talk/true_talk_manager.cpp')
-rw-r--r--engines/titanic/true_talk/true_talk_manager.cpp44
1 files changed, 20 insertions, 24 deletions
diff --git a/engines/titanic/true_talk/true_talk_manager.cpp b/engines/titanic/true_talk/true_talk_manager.cpp
index 19beee9796..be9ca667de 100644
--- a/engines/titanic/true_talk/true_talk_manager.cpp
+++ b/engines/titanic/true_talk/true_talk_manager.cpp
@@ -219,10 +219,6 @@ void CTrueTalkManager::removeCompleted() {
}
}
-void CTrueTalkManager::update2() {
- //warning("CTrueTalkManager::update2");
-}
-
void CTrueTalkManager::start(CTrueTalkNPC *npc, uint id, CViewItem *view) {
TTnpcScript *npcScript = getNpcScript(npc);
TTroomScript *roomScript = getRoomScript();
@@ -351,14 +347,14 @@ void CTrueTalkManager::setDialogue(CTrueTalkNPC *npc, TTroomScript *roomScript,
if (dialogueStr.empty())
return;
- int soundId = readDialogSound();
+ uint speechDuration = readDialogueSpeech();
TTtalker *talker = new TTtalker(this, npc);
_talkers.push_back(talker);
bool isParrot = npc->getName().contains("parrot");
triggerNPC(npc);
playSpeech(talker, roomScript, view, isParrot);
- talker->speechStarted(dialogueStr, _titleEngine._indexes[0], soundId);
+ talker->speechStarted(dialogueStr, _titleEngine._indexes[0], speechDuration);
}
#define STRING_BUFFER_SIZE 2048
@@ -404,30 +400,30 @@ CString CTrueTalkManager::readDialogueString() {
return result;
}
-int CTrueTalkManager::readDialogSound() {
- _field18 = 0;
+uint CTrueTalkManager::readDialogueSpeech() {
+ _speechDuration = 0;
for (uint idx = 0; idx < _titleEngine._indexes.size(); ++idx) {
CWaveFile *waveFile = _gameManager->_sound.getTrueTalkSound(
_dialogueFile, _titleEngine._indexes[idx] - _dialogueId);
if (waveFile) {
- _field18 = waveFile->fn1();
+ _speechDuration += waveFile->getDuration();
}
}
- return _field18;
+ return _speechDuration;
}
void CTrueTalkManager::triggerNPC(CTrueTalkNPC *npc) {
CTrueTalkSelfQueueAnimSetMsg queueSetMsg;
if (queueSetMsg.execute(npc)) {
- if (_field18 > 300) {
- CTrueTalkQueueUpAnimSetMsg upMsg(_field18);
+ if (_speechDuration > 300) {
+ CTrueTalkQueueUpAnimSetMsg upMsg(_speechDuration);
upMsg.execute(npc);
}
} else {
CTrueTalkGetAnimSetMsg getAnimMsg;
- if (_field18 > 300) {
+ if (_speechDuration > 300) {
do {
getAnimMsg.execute(npc);
if (!getAnimMsg._endFrame)
@@ -439,10 +435,10 @@ void CTrueTalkManager::triggerNPC(CTrueTalkNPC *npc) {
uint numFrames = getAnimMsg._endFrame - getAnimMsg._startFrame;
int64 val = (numFrames * 1000) * 0x88888889;
uint diff = (val >> (32 + 5)) - 500;
- _field18 += diff;
+ _speechDuration += diff;
getAnimMsg._index++;
- } while (_field18 > 0);
+ } while (_speechDuration > 0);
}
}
}
@@ -494,13 +490,13 @@ void CTrueTalkManager::playSpeech(TTtalker *talker, TTroomScript *roomScript, CV
// Setup proximities
CProximity p1, p2, p3;
if (isParrot) {
- p1._channel = 3;
- p2._channel = 5;
- p3._channel = 4;
+ p1._channelMode = 3;
+ p2._channelMode = 5;
+ p3._channelMode = 4;
} else {
- p1._channel = 0;
- p2._channel = 1;
- p3._channel = 2;
+ p1._channelMode = 0;
+ p2._channelMode = 1;
+ p3._channelMode = 2;
}
if (milli > 0) {
@@ -517,7 +513,7 @@ void CTrueTalkManager::playSpeech(TTtalker *talker, TTroomScript *roomScript, CV
p2._elevation = 0;
}
- _gameManager->_sound.stopChannel(p1._channel);
+ _gameManager->_sound.stopChannel(p1._channelMode);
if (view) {
p1._positioningMode = POSMODE_VECTOR;
view->getPosition(p1._posX, p1._posY, p1._posZ);
@@ -589,9 +585,9 @@ int CTrueTalkManager::getPassengerClass() const {
return gameState ? gameState->_passengerClass : 4;
}
-int CTrueTalkManager::getState14() const {
+Season CTrueTalkManager::getCurrentSeason() const {
CGameState *gameState = getGameState();
- return gameState ? gameState->_field14 : 0;
+ return gameState ? gameState->_seasonNum : SEASON_SUMMER;
}
} // End of namespace Titanic