aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2016-11-02 21:31:14 -0400
committerPaul Gilbert2016-11-02 21:31:14 -0400
commit8abe97dfdad1fc9b44bded185ff5c5a00fa2f2d3 (patch)
tree458f35aa71d9f5aa8b54ffa65450eecee0d00d0c /engines
parent1846ef7850547342b3b0792144d2b94d23492b91 (diff)
downloadscummvm-rg350-8abe97dfdad1fc9b44bded185ff5c5a00fa2f2d3.tar.gz
scummvm-rg350-8abe97dfdad1fc9b44bded185ff5c5a00fa2f2d3.tar.bz2
scummvm-rg350-8abe97dfdad1fc9b44bded185ff5c5a00fa2f2d3.zip
TITANIC: Parser fixes
Diffstat (limited to 'engines')
-rw-r--r--engines/titanic/true_talk/title_engine.cpp3
-rw-r--r--engines/titanic/true_talk/tt_concept_node.cpp3
-rw-r--r--engines/titanic/true_talk/tt_parser.cpp2
-rw-r--r--engines/titanic/true_talk/tt_string.cpp6
4 files changed, 10 insertions, 4 deletions
diff --git a/engines/titanic/true_talk/title_engine.cpp b/engines/titanic/true_talk/title_engine.cpp
index 079067389d..bfa97e3f92 100644
--- a/engines/titanic/true_talk/title_engine.cpp
+++ b/engines/titanic/true_talk/title_engine.cpp
@@ -40,7 +40,8 @@ void CTitleEngine::setup(int val1, int val2) {
/*------------------------------------------------------------------------*/
-STtitleEngine::STtitleEngine(): CTitleEngine(), _responseP(nullptr) {
+STtitleEngine::STtitleEngine(): CTitleEngine(),
+ _responseP(nullptr), _stream(nullptr) {
}
STtitleEngine::~STtitleEngine() {
diff --git a/engines/titanic/true_talk/tt_concept_node.cpp b/engines/titanic/true_talk/tt_concept_node.cpp
index 454ca59971..f6512b3d81 100644
--- a/engines/titanic/true_talk/tt_concept_node.cpp
+++ b/engines/titanic/true_talk/tt_concept_node.cpp
@@ -29,11 +29,14 @@ namespace Titanic {
TTconceptNode::TTconceptNode() : _concept0P(_concepts[0]), _concept1P(_concepts[1]),
_concept2P(_concepts[2]), _concept3P(_concepts[3]), _concept4P(_concepts[4]),
_concept5P(_concepts[5]), _field18(0), _field1C(0), _nextP(nullptr), _status(0) {
+ Common::fill(&_concepts[0], &_concepts[6], (TTconcept *)nullptr);
}
TTconceptNode::TTconceptNode(const TTconceptNode &src) : _concept0P(_concepts[0]), _concept1P(_concepts[1]),
_concept2P(_concepts[2]), _concept3P(_concepts[3]), _concept4P(_concepts[4]),
_concept5P(_concepts[5]), _field18(0), _field1C(0), _nextP(nullptr), _status(0) {
+ Common::fill(&_concepts[0], &_concepts[6], (TTconcept *)nullptr);
+
if (src._status) {
_status = SS_5;
} else {
diff --git a/engines/titanic/true_talk/tt_parser.cpp b/engines/titanic/true_talk/tt_parser.cpp
index d67f5235c4..dc056218a9 100644
--- a/engines/titanic/true_talk/tt_parser.cpp
+++ b/engines/titanic/true_talk/tt_parser.cpp
@@ -489,7 +489,7 @@ int TTparser::findFrames(TTsentence *sentence) {
break;
TTword *srcWord = nullptr;
- TTword *word = _owner->_vocab->getWord(wordString, &word);
+ TTword *word = _owner->_vocab->getWord(wordString, &srcWord);
sentence->storeVocabHit(srcWord);
if (!word && ctr == 1) {
diff --git a/engines/titanic/true_talk/tt_string.cpp b/engines/titanic/true_talk/tt_string.cpp
index 198a8c2e80..43910fc823 100644
--- a/engines/titanic/true_talk/tt_string.cpp
+++ b/engines/titanic/true_talk/tt_string.cpp
@@ -111,7 +111,7 @@ TTstring TTstring::tokenize(const char *delim) {
const char *strP = _data->_string.c_str();
const char *splitP = nullptr, *chP;
- for (const char *d = delim; d; ++d) {
+ for (const char *d = delim; *d; ++d) {
chP = strchr(strP, *d);
if (chP && (splitP == nullptr || chP < splitP))
splitP = chP;
@@ -122,7 +122,9 @@ TTstring TTstring::tokenize(const char *delim) {
_data->_string = CString(splitP + 1);
return result;
} else {
- return TTstring();
+ TTstring result(strP);
+ _data->_string = CString();
+ return result;
}
}