diff options
Diffstat (limited to 'engines/titanic/true_talk/tt_npc_script.cpp')
-rw-r--r-- | engines/titanic/true_talk/tt_npc_script.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/engines/titanic/true_talk/tt_npc_script.cpp b/engines/titanic/true_talk/tt_npc_script.cpp index 527e33f14c..ba205b6498 100644 --- a/engines/titanic/true_talk/tt_npc_script.cpp +++ b/engines/titanic/true_talk/tt_npc_script.cpp @@ -406,15 +406,17 @@ void TTnpcScript::save(SimpleFile *file) { file->writeNumber(_dialDelta); file->writeNumber(_field7C); + // Write out the dial values file->writeNumber(10); for (int idx = 0; idx < 10; ++idx) - file->writeNumber(_data[idx]); + file->writeNumber(_dialValues[idx]); } void TTnpcScript::load(SimpleFile *file) { loadBody(file); int count = file->readNumber(); + assert(count == 4); _rangeResetCtr = file->readNumber(); _currentDialNum = file->readNumber(); _dialDelta = file->readNumber(); @@ -423,22 +425,23 @@ void TTnpcScript::load(SimpleFile *file) { for (int idx = count; idx > 4; --idx) file->readNumber(); + // Read in the dial values count = file->readNumber(); for (int idx = 0; idx < count; ++idx) { int v = file->readNumber(); if (idx < 10) - _data[idx] = v; + _dialValues[idx] = v; } } void TTnpcScript::saveBody(SimpleFile *file) { - int count = proc31(); + int count = getRangesCount(); file->writeNumber(count); if (count > 0) { for (uint idx = 0; idx < _ranges.size(); ++idx) { const TTscriptRange &item = _ranges[idx]; - if (item._mode == SF_RANDOM && item._priorIndex) { + if (item._mode != SF_RANDOM && item._priorIndex) { file->writeNumber(item._id); file->writeNumber(item._priorIndex); } @@ -464,7 +467,7 @@ void TTnpcScript::loadBody(SimpleFile *file) { } } -int TTnpcScript::proc31() const { +int TTnpcScript::getRangesCount() const { int count = 0; for (uint idx = 0; idx < _ranges.size(); ++idx) { const TTscriptRange &item = _ranges[idx]; |