[Scummvm-cvs-logs] SF.net SVN: scummvm:[53713] scummvm/trunk/engines/toon

sylvaintv at users.sourceforge.net sylvaintv at users.sourceforge.net
Fri Oct 22 23:42:48 CEST 2010


Revision: 53713
          http://scummvm.svn.sourceforge.net/scummvm/?rev=53713&view=rev
Author:   sylvaintv
Date:     2010-10-22 21:42:48 +0000 (Fri, 22 Oct 2010)

Log Message:
-----------
TOON: More talk animation fixes

There was a conflict between the idle animation and the talk animation
in some cases (showing the chain anim & idle anim in the arcade)

Modified Paths:
--------------
    scummvm/trunk/engines/toon/anim.h
    scummvm/trunk/engines/toon/character.cpp
    scummvm/trunk/engines/toon/toon.cpp

Modified: scummvm/trunk/engines/toon/anim.h
===================================================================
--- scummvm/trunk/engines/toon/anim.h	2010-10-22 21:33:31 UTC (rev 53712)
+++ scummvm/trunk/engines/toon/anim.h	2010-10-22 21:42:48 UTC (rev 53713)
@@ -186,6 +186,7 @@
 	EMCState _state;
 	uint32 _lastTimer;
 	bool _frozen;
+	bool _frozenForConversation;
 	bool _active;
 };
 

Modified: scummvm/trunk/engines/toon/character.cpp
===================================================================
--- scummvm/trunk/engines/toon/character.cpp	2010-10-22 21:33:31 UTC (rev 53712)
+++ scummvm/trunk/engines/toon/character.cpp	2010-10-22 21:42:48 UTC (rev 53713)
@@ -248,7 +248,7 @@
 		delete anim
 #endif
 	if (_animScriptId != -1)
-		_vm->getSceneAnimationScript(_animScriptId)->_frozen = false;
+		_vm->getSceneAnimationScript(_animScriptId)->_frozenForConversation = false;
 
 	//if (_sceneAnimationId != -1)
 	//	_animationInstance->setAnimation(_vm->getSceneAnimation(_sceneAnimationId)->_animation);
@@ -348,7 +348,7 @@
 #endif
 
 			if (_animScriptId != -1)
-				_vm->getSceneAnimationScript(_animScriptId)->_frozen = true;
+				_vm->getSceneAnimationScript(_animScriptId)->_frozenForConversation = true;
 			
 			
 			// TODO setup backup //
@@ -955,7 +955,7 @@
 
 
 	if (_animScriptId != -1 && (flags & 8) == 0)
-		_vm->getSceneAnimationScript(_animScriptId)->_frozen = true;
+		_vm->getSceneAnimationScript(_animScriptId)->_frozenForConversation = true;
 
 	stopSpecialAnim();
 

Modified: scummvm/trunk/engines/toon/toon.cpp
===================================================================
--- scummvm/trunk/engines/toon/toon.cpp	2010-10-22 21:33:31 UTC (rev 53712)
+++ scummvm/trunk/engines/toon/toon.cpp	2010-10-22 21:42:48 UTC (rev 53713)
@@ -846,7 +846,7 @@
 
 	do {
 		if (_sceneAnimationScripts[_lastProcessedSceneScript]._lastTimer <= _system->getMillis() &&
-		        !_sceneAnimationScripts[_lastProcessedSceneScript]._frozen) {
+		        !_sceneAnimationScripts[_lastProcessedSceneScript]._frozen && !_sceneAnimationScripts[_lastProcessedSceneScript]._frozenForConversation) {
 			_animationSceneScriptRunFlag = true;
 
 			while (_animationSceneScriptRunFlag && _sceneAnimationScripts[_lastProcessedSceneScript]._lastTimer <= _system->getMillis() && !_shouldQuit) {
@@ -855,7 +855,7 @@
 
 				//waitForScriptStep();
 
-				if (_sceneAnimationScripts[_lastProcessedSceneScript]._frozen)
+				if (_sceneAnimationScripts[_lastProcessedSceneScript]._frozen || _sceneAnimationScripts[_lastProcessedSceneScript]._frozenForConversation)
 					break;
 			}
 
@@ -1049,6 +1049,7 @@
 			_script->start(&_sceneAnimationScripts[i]._state, 9 + i);
 			_sceneAnimationScripts[i]._lastTimer = getSystem()->getMillis();
 			_sceneAnimationScripts[i]._frozen = false;
+			_sceneAnimationScripts[i]._frozenForConversation = false;
 		}
 	}
 
@@ -2956,6 +2957,7 @@
 	for (int32 i = 0; i < state()->_locations[_gameState->_currentScene]._numSceneAnimations; i++) {
 		_sceneAnimationScripts[i]._active = loadFile->readByte();
 		_sceneAnimationScripts[i]._frozen = loadFile->readByte();
+		_sceneAnimationScripts[i]._frozenForConversation = false;
 		int32 oldTimer = loadFile->readSint32BE();
 		_sceneAnimationScripts[i]._lastTimer = MAX<int32>(0,oldTimer + timerDiff);
 		_script->loadState(&_sceneAnimationScripts[i]._state, loadFile);


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