aboutsummaryrefslogtreecommitdiff
path: root/engines/toon/toon.cpp
diff options
context:
space:
mode:
authorSylvain Dupont2010-10-22 21:42:48 +0000
committerSylvain Dupont2010-10-22 21:42:48 +0000
commit9cbb0d557948d8b4c3a8c766a1fc32bb75a2c6c3 (patch)
tree6f7c64ff9c92507aad056f5b9717c33c54911563 /engines/toon/toon.cpp
parentd771d98a92eb7019614bba14bdf822b2022a6558 (diff)
downloadscummvm-rg350-9cbb0d557948d8b4c3a8c766a1fc32bb75a2c6c3.tar.gz
scummvm-rg350-9cbb0d557948d8b4c3a8c766a1fc32bb75a2c6c3.tar.bz2
scummvm-rg350-9cbb0d557948d8b4c3a8c766a1fc32bb75a2c6c3.zip
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) svn-id: r53713
Diffstat (limited to 'engines/toon/toon.cpp')
-rw-r--r--engines/toon/toon.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/engines/toon/toon.cpp b/engines/toon/toon.cpp
index 3a823071e0..84a28ae990 100644
--- a/engines/toon/toon.cpp
+++ b/engines/toon/toon.cpp
@@ -846,7 +846,7 @@ void ToonEngine::updateAnimationSceneScripts(int32 timeElapsed) {
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 @@ void ToonEngine::updateAnimationSceneScripts(int32 timeElapsed) {
//waitForScriptStep();
- if (_sceneAnimationScripts[_lastProcessedSceneScript]._frozen)
+ if (_sceneAnimationScripts[_lastProcessedSceneScript]._frozen || _sceneAnimationScripts[_lastProcessedSceneScript]._frozenForConversation)
break;
}
@@ -1049,6 +1049,7 @@ void ToonEngine::loadScene(int32 SceneId, bool forGameLoad) {
_script->start(&_sceneAnimationScripts[i]._state, 9 + i);
_sceneAnimationScripts[i]._lastTimer = getSystem()->getMillis();
_sceneAnimationScripts[i]._frozen = false;
+ _sceneAnimationScripts[i]._frozenForConversation = false;
}
}
@@ -2956,6 +2957,7 @@ bool ToonEngine::loadGame(int32 slot) {
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);