[Scummvm-cvs-logs] SF.net SVN: scummvm:[43312] scummvm/branches/gsoc2009-draci/engines/draci

dkasak13 at users.sourceforge.net dkasak13 at users.sourceforge.net
Wed Aug 12 09:34:32 CEST 2009


Revision: 43312
          http://scummvm.svn.sourceforge.net/scummvm/?rev=43312&view=rev
Author:   dkasak13
Date:     2009-08-12 07:34:31 +0000 (Wed, 12 Aug 2009)

Log Message:
-----------
Fixed dialogues logic (some indexes were calculated erroneously +/- 1).

Modified Paths:
--------------
    scummvm/branches/gsoc2009-draci/engines/draci/game.cpp
    scummvm/branches/gsoc2009-draci/engines/draci/script.cpp

Modified: scummvm/branches/gsoc2009-draci/engines/draci/game.cpp
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/game.cpp	2009-08-12 05:38:15 UTC (rev 43311)
+++ scummvm/branches/gsoc2009-draci/engines/draci/game.cpp	2009-08-12 07:34:31 UTC (rev 43312)
@@ -560,7 +560,7 @@
 			break;
 		}
 		_lastBlock = _lines[hit];
-		_dialogueVars[_dialogueOffsets[dialogueID] + _lastBlock + 1] += 1;
+		_dialogueVars[_dialogueOffsets[dialogueID] + _lastBlock] += 1;
 		_dialogueBegin = false;
 		oldLines = _dialogueLines;
 
@@ -598,7 +598,7 @@
 	}
 
 	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 @@
 	}
 
 	_loopStatus = kStatusDialogue;
-	_lastBlock = 0;
+	_lastBlock = -1;
 	_dialogueBegin = true;
 }
 

Modified: scummvm/branches/gsoc2009-draci/engines/draci/script.cpp
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/script.cpp	2009-08-12 05:38:15 UTC (rev 43311)
+++ scummvm/branches/gsoc2009-draci/engines/draci/script.cpp	2009-08-12 07:34:31 UTC (rev 43312)
@@ -223,15 +223,20 @@
 }	
 
 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::resetBlock(Common::Queue<int> &params) {
-	int blockID = params.pop();
+	int blockID = params.pop() - 1;
 
 	_vm->_game->_dialogueVars[_vm->_game->_dialogueOffsets[_vm->_game->_currentDialogue]+blockID] = 0;
 }


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list