aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/titanic/true_talk/tt_sentence.cpp15
-rw-r--r--engines/titanic/true_talk/tt_sentence.h1
-rw-r--r--engines/titanic/true_talk/tt_string.h2
3 files changed, 17 insertions, 1 deletions
diff --git a/engines/titanic/true_talk/tt_sentence.cpp b/engines/titanic/true_talk/tt_sentence.cpp
index 9558c546c3..7b49df2560 100644
--- a/engines/titanic/true_talk/tt_sentence.cpp
+++ b/engines/titanic/true_talk/tt_sentence.cpp
@@ -97,6 +97,21 @@ TTconcept **TTsentenceSubBase::setConcept(int conceptIndex, TTconcept *src) {
return conceptPP;
}
+int TTsentenceSubBase::changeConcept(int mode, TTconcept **conceptPP, int conceptIndex) {
+ TTconcept **newConceptPP = setConcept(conceptIndex, *conceptPP);
+
+ if (mode == 0 || (mode == 1 && !*newConceptPP)) {
+ if (!*conceptPP)
+ return SS_5;
+
+ delete *newConceptPP;
+ *newConceptPP = new TTconcept(**conceptPP);
+ return SS_VALID;
+ } else {
+ return SS_1;
+ }
+}
+
/*------------------------------------------------------------------------*/
TTsentenceSub *TTsentenceSub::addSibling() {
diff --git a/engines/titanic/true_talk/tt_sentence.h b/engines/titanic/true_talk/tt_sentence.h
index 3a4fd6c685..e995884ec0 100644
--- a/engines/titanic/true_talk/tt_sentence.h
+++ b/engines/titanic/true_talk/tt_sentence.h
@@ -59,6 +59,7 @@ public:
bool is24() const { return _field24 == 0; }
TTconcept **setConcept(int conceptIndex, TTconcept *src);
+ int changeConcept(int mode, TTconcept **conceptPP, int conceptIndex);
};
class TTsentenceSub : public TTsentenceSubBase {
diff --git a/engines/titanic/true_talk/tt_string.h b/engines/titanic/true_talk/tt_string.h
index 435efa14b6..060a48f5b6 100644
--- a/engines/titanic/true_talk/tt_string.h
+++ b/engines/titanic/true_talk/tt_string.h
@@ -38,7 +38,7 @@ struct TTstringData {
TTstringData(const CString &str) : _string(str), _referenceCount(1) {}
};
-enum TTstringStatus { SS_VALID = 0, SS_5 = 5, SS_7 = 7, SS_8 = 8, SS_11 = 11, SS_13 = 13 };
+enum TTstringStatus { SS_VALID = 0, SS_1 = 1, SS_5 = 5, SS_7 = 7, SS_8 = 8, SS_11 = 11, SS_13 = 13 };
class TTstring {
private: