[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