diff options
author | Paul Gilbert | 2016-06-02 22:22:54 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-07-15 19:19:09 -0400 |
commit | 6eb562a17a56ca415eb939f07d512d627b1907e9 (patch) | |
tree | c9fc2e42dc54b1ddb6fd19c92feb57c4ea506b90 /engines/titanic/true_talk | |
parent | 62c699fa3ca815a658a930b06ab99f6ce31a881d (diff) | |
download | scummvm-rg350-6eb562a17a56ca415eb939f07d512d627b1907e9.tar.gz scummvm-rg350-6eb562a17a56ca415eb939f07d512d627b1907e9.tar.bz2 scummvm-rg350-6eb562a17a56ca415eb939f07d512d627b1907e9.zip |
TITANIC: Beginnings of script handler processSentence
Diffstat (limited to 'engines/titanic/true_talk')
-rw-r--r-- | engines/titanic/true_talk/tt_npc_script.cpp | 32 | ||||
-rw-r--r-- | engines/titanic/true_talk/tt_npc_script.h | 2 | ||||
-rw-r--r-- | engines/titanic/true_talk/tt_sentence.cpp | 13 | ||||
-rw-r--r-- | engines/titanic/true_talk/tt_sentence.h | 5 |
4 files changed, 50 insertions, 2 deletions
diff --git a/engines/titanic/true_talk/tt_npc_script.cpp b/engines/titanic/true_talk/tt_npc_script.cpp index 41bf5d8ac4..6f3c102013 100644 --- a/engines/titanic/true_talk/tt_npc_script.cpp +++ b/engines/titanic/true_talk/tt_npc_script.cpp @@ -456,7 +456,37 @@ CPetControl *TTnpcScript::getPetControl(CGameManager *gameManager) { return nullptr; } -void TTnpcScript::processSentence(const TTsentenceEntries *entries, int entryCount, TTroomScript *roomScript, TTsentence *sentence) { +int TTnpcScript::processSentence(const TTsentenceEntries *entries, uint entryCount, TTroomScript *roomScript, TTsentence *sentence) { + if (!entries) + return SS_1; + if (!entryCount) + // No count specified, so use entire list + entryCount = entries->size(); + int entryId = _field2C; + + for (uint loopCtr = 0; loopCtr < 2; ++loopCtr) { + for (uint entryCtr = 0; entryCtr < entryCount; ++entryCtr) { + const TTsentenceEntry &entry = (*entries)[entryCtr]; + if (entry._field4 != entryId && (loopCtr == 0 || entry._field4)) + continue; + + bool flag; + if (entry._fieldC || entry._string10.empty()) { + flag = sentence->fn1(entry._string8, entry._fieldC, + entry._string14, entry._string18, entry._string1C, + entry._field20, entry._field28, 0, nullptr); + } else { + flag = sentence->fn3(entry._string8, entry._string10, + entry._string14, entry._string18, entry._string1C, + entry._string24, entry._field28, 0, nullptr); + } + + if (flag) { + // TODO + } + } + } + warning("TODO"); } diff --git a/engines/titanic/true_talk/tt_npc_script.h b/engines/titanic/true_talk/tt_npc_script.h index a6741e6136..43e26b6e53 100644 --- a/engines/titanic/true_talk/tt_npc_script.h +++ b/engines/titanic/true_talk/tt_npc_script.h @@ -138,7 +138,7 @@ protected: */ static CPetControl *getPetControl(CGameManager *gameManager); - void processSentence(const TTsentenceEntries *entries, int entryCount, TTroomScript *roomScript, TTsentence *sentence); + int processSentence(const TTsentenceEntries *entries, uint entryCount, TTroomScript *roomScript, TTsentence *sentence); public: TTnpcScript(int charId, const char *charClass, int v2, const char *charName, int v3, int val2, int v4, diff --git a/engines/titanic/true_talk/tt_sentence.cpp b/engines/titanic/true_talk/tt_sentence.cpp index 697afddd77..f41ddd1565 100644 --- a/engines/titanic/true_talk/tt_sentence.cpp +++ b/engines/titanic/true_talk/tt_sentence.cpp @@ -142,6 +142,19 @@ int TTsentence::storeVocabHit(TTword *word) { return 0; } +bool TTsentence::fn1(const CString &str, int wordId1, const CString &str1, const CString &str2, + const CString &str3, int wordId2, int val, int val2, const TTconceptNode *node) { + // TODO + return false; +} + +bool TTsentence::fn3(const CString &str1, const CString &str2, const CString &str3, + const CString &str4, const CString &str5, const CString &str6, + int val, int val2, const TTconceptNode *node) { + // TODO + return false; +} + bool TTsentence::fn2(int slotIndex, const TTstring &str, TTconceptNode *conceptNode) { if (!conceptNode) conceptNode = &_sentenceConcept; diff --git a/engines/titanic/true_talk/tt_sentence.h b/engines/titanic/true_talk/tt_sentence.h index 3d1c9f2b74..66d64fcd6d 100644 --- a/engines/titanic/true_talk/tt_sentence.h +++ b/engines/titanic/true_talk/tt_sentence.h @@ -141,6 +141,11 @@ public: */ int storeVocabHit(TTword *word); + bool fn1(const CString &str, int wordId1, const CString &str1, const CString &str2, + const CString &str3, int wordId2, int val, int val2, const TTconceptNode *node); + bool fn3(const CString &str1, const CString &str2, const CString &str3, + const CString &str4, const CString &str5, const CString &str6, + int val, int val2, const TTconceptNode *node); bool fn2(int slotIndex, const TTstring &str, TTconceptNode *conceptNode); bool fn4(int mode, int wordId, TTconceptNode *node); }; |