diff options
Diffstat (limited to 'engines/titanic/true_talk/tt_concept.cpp')
-rw-r--r-- | engines/titanic/true_talk/tt_concept.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/engines/titanic/true_talk/tt_concept.cpp b/engines/titanic/true_talk/tt_concept.cpp index af0a148ce4..bc2da4c936 100644 --- a/engines/titanic/true_talk/tt_concept.cpp +++ b/engines/titanic/true_talk/tt_concept.cpp @@ -43,6 +43,21 @@ TTconcept::TTconcept(TTscriptBase *script, ScriptType scriptType) : reset(); } +TTconcept::TTconcept(TTword *word, ScriptType scriptType) : + _string1(" "), _string2(" "), _wordP(nullptr), _scriptP(nullptr) { + + if (!word || !setStatus() || word->getStatus()) { + _status = SS_5; + } else { + _status = initializeWordRef(word); + if (!_status) + setScriptType(scriptType); + } + + if (_status) + reset(); +} + bool TTconcept::setStatus() { if (_string1.isValid() && _string2.isValid()) { _status = SS_VALID; @@ -54,7 +69,7 @@ bool TTconcept::setStatus() { } void TTconcept::setScriptType(ScriptType scriptType) { - _field0 = 0; + _nextP = nullptr; _field14 = 0; _scriptType = scriptType; _field1C = -1; @@ -66,6 +81,12 @@ void TTconcept::setScriptType(ScriptType scriptType) { _status = 0; } +int TTconcept::initializeWordRef(TTword *word) { + delete _wordP; + _wordP = word; + return 0; +} + void TTconcept::reset() { delete _wordP; _wordP = nullptr; |