diff options
-rw-r--r-- | engines/draci/game.cpp | 6 | ||||
-rw-r--r-- | engines/draci/script.cpp | 7 |
2 files changed, 9 insertions, 4 deletions
diff --git a/engines/draci/game.cpp b/engines/draci/game.cpp index 860344c693..715b233ab2 100644 --- a/engines/draci/game.cpp +++ b/engines/draci/game.cpp @@ -560,7 +560,7 @@ void Game::dialogueMenu(int dialogueID) { break; } _lastBlock = _lines[hit]; - _dialogueVars[_dialogueOffsets[dialogueID] + _lastBlock + 1] += 1; + _dialogueVars[_dialogueOffsets[dialogueID] + _lastBlock] += 1; _dialogueBegin = false; oldLines = _dialogueLines; @@ -598,7 +598,7 @@ int Game::dialogueDraw() { } for (i = _dialogueLines; i < kDialogueLines; ++i) { - _lines[i] = 0; + _lines[i] = -1; anim = _dialogueAnims[i]; dialogueLine = reinterpret_cast<Text *>(anim->getFrame()); dialogueLine->setText(""); @@ -672,7 +672,7 @@ void Game::dialogueInit(int dialogID) { } _loopStatus = kStatusDialogue; - _lastBlock = 0; + _lastBlock = -1; _dialogueBegin = true; } diff --git a/engines/draci/script.cpp b/engines/draci/script.cpp index f526bdc874..26d0a666ba 100644 --- a/engines/draci/script.cpp +++ b/engines/draci/script.cpp @@ -223,15 +223,20 @@ int Script::funcAtBegin(int yesno) { } int Script::funcLastBlock(int blockID) { + blockID -= 1; return _vm->_game->_lastBlock == blockID; } int Script::funcBlockVar(int blockID) { + blockID -= 1; + return _vm->_game->_dialogueVars[_vm->_game->_dialogueOffsets[_vm->_game->_currentDialogue] + blockID]; } int Script::funcHasBeen(int blockID) { + blockID -= 1; + return _vm->_game->_dialogueVars[_vm->_game->_dialogueOffsets[_vm->_game->_currentDialogue] + blockID] > 0; } @@ -692,7 +697,7 @@ void Script::resetDialogueFrom(Common::Queue<int> ¶ms) { } void Script::resetBlock(Common::Queue<int> ¶ms) { - int blockID = params.pop(); + int blockID = params.pop() - 1; _vm->_game->_dialogueVars[_vm->_game->_dialogueOffsets[_vm->_game->_currentDialogue]+blockID] = 0; } |