diff options
author | Paul Gilbert | 2016-05-07 21:54:34 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-07-10 16:38:46 -0400 |
commit | e85b171db811d1dac22c2411299b2ce0da7effeb (patch) | |
tree | 1855a7d10b0e614376fa82d4f84cfd379b93ff21 /engines/titanic/true_talk/true_talk_manager.cpp | |
parent | babdf0aa036a62e098be2e0aef7082e315afbf62 (diff) | |
download | scummvm-rg350-e85b171db811d1dac22c2411299b2ce0da7effeb.tar.gz scummvm-rg350-e85b171db811d1dac22c2411299b2ce0da7effeb.tar.bz2 scummvm-rg350-e85b171db811d1dac22c2411299b2ce0da7effeb.zip |
TITANIC: Adding CTrueTalkManager support methods
Diffstat (limited to 'engines/titanic/true_talk/true_talk_manager.cpp')
-rw-r--r-- | engines/titanic/true_talk/true_talk_manager.cpp | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/engines/titanic/true_talk/true_talk_manager.cpp b/engines/titanic/true_talk/true_talk_manager.cpp index fefa2fa824..2bbac3b0f8 100644 --- a/engines/titanic/true_talk/true_talk_manager.cpp +++ b/engines/titanic/true_talk/true_talk_manager.cpp @@ -192,11 +192,23 @@ void CTrueTalkManager::saveNPC(SimpleFile *file, int charId) const { } void CTrueTalkManager::preLoad() { - warning("TODO: CTrueTalkManager::preLoad"); + // Delete any previous talkers + for (TTTalkerList::iterator i = _talkers.begin(); i != _talkers.end(); ++i) + delete *i; + _talkers.clear(); } -void CTrueTalkManager::update1() { - //warning("CTrueTalkManager::update1"); +void CTrueTalkManager::removeCompleted() { + for (TTTalkerList::iterator i = _talkers.begin(); i != _talkers.end(); ) { + TTTalker *talker = *i; + + if (talker->_done) { + i = _talkers.erase(i); + delete talker; + } else { + ++i; + } + } } void CTrueTalkManager::update2() { @@ -412,4 +424,22 @@ void CTrueTalkManager::setTalker(TTTalker *talker, TTRoomScript *roomScript, CVi warning("TODO: CTrueTalkManager::setTalker"); } +int CTrueTalkManager::getStateVal(int stateNum) { + if (!_currentNPC) + return -1000; + + CTrueTalkGetStateValueMsg msg(stateNum, -1000); + msg.execute(_currentNPC); + return msg._stateVal; +} + +bool CTrueTalkManager::triggerAction(int action, int param) { + if (!_currentNPC) + return false; + + CTrueTalkTriggerActionMsg msg(action, param, 0); + msg.execute(_currentNPC); + return true; +} + } // End of namespace Titanic |