aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2016-06-02 22:22:54 -0400
committerPaul Gilbert2016-07-15 19:19:09 -0400
commit6eb562a17a56ca415eb939f07d512d627b1907e9 (patch)
treec9fc2e42dc54b1ddb6fd19c92feb57c4ea506b90 /engines
parent62c699fa3ca815a658a930b06ab99f6ce31a881d (diff)
downloadscummvm-rg350-6eb562a17a56ca415eb939f07d512d627b1907e9.tar.gz
scummvm-rg350-6eb562a17a56ca415eb939f07d512d627b1907e9.tar.bz2
scummvm-rg350-6eb562a17a56ca415eb939f07d512d627b1907e9.zip
TITANIC: Beginnings of script handler processSentence
Diffstat (limited to 'engines')
-rw-r--r--engines/titanic/true_talk/tt_npc_script.cpp32
-rw-r--r--engines/titanic/true_talk/tt_npc_script.h2
-rw-r--r--engines/titanic/true_talk/tt_sentence.cpp13
-rw-r--r--engines/titanic/true_talk/tt_sentence.h5
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);
};