diff options
author | Sylvain Dupont | 2010-10-10 16:52:15 +0000 |
---|---|---|
committer | Sylvain Dupont | 2010-10-10 16:52:15 +0000 |
commit | 927f560eb24b7cbed39e56660c7c7c7b6b7e2598 (patch) | |
tree | 348d6cd273e59a17f2804ee3a88ae5fd5718ad09 | |
parent | 67c68afa6dd2fe1fdc300b72a7cf1d867ab38f27 (diff) | |
download | scummvm-rg350-927f560eb24b7cbed39e56660c7c7c7b6b7e2598.tar.gz scummvm-rg350-927f560eb24b7cbed39e56660c7c7c7b6b7e2598.tar.bz2 scummvm-rg350-927f560eb24b7cbed39e56660c7c7c7b6b7e2598.zip |
TOON: Fixed bad Flux state when restoring a game
svn-id: r53127
-rw-r--r-- | engines/toon/character.cpp | 2 | ||||
-rw-r--r-- | engines/toon/toon.cpp | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/engines/toon/character.cpp b/engines/toon/character.cpp index 17027a1bee..614cc9c05c 100644 --- a/engines/toon/character.cpp +++ b/engines/toon/character.cpp @@ -553,6 +553,8 @@ void Character::load(Common::ReadStream *stream) { debugC(1, kDebugCharacter, "read(stream)"); _flags = stream->readSint32LE(); + _flags &= ~1; // characters are not walking when restoring. + _x = stream->readSint32LE(); _y = stream->readSint32LE(); _z = stream->readSint32LE(); diff --git a/engines/toon/toon.cpp b/engines/toon/toon.cpp index 8cf62a8dff..cfbb6bfe6f 100644 --- a/engines/toon/toon.cpp +++ b/engines/toon/toon.cpp @@ -2779,7 +2779,8 @@ 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]._lastTimer = loadFile->readSint32BE() + timerDiff; + int32 oldTimer = loadFile->readSint32BE(); + _sceneAnimationScripts[i]._lastTimer = MAX(0,oldTimer + timerDiff); _script->loadState(&_sceneAnimationScripts[i]._state, loadFile); } |