aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSylvain Dupont2010-10-10 16:52:15 +0000
committerSylvain Dupont2010-10-10 16:52:15 +0000
commit927f560eb24b7cbed39e56660c7c7c7b6b7e2598 (patch)
tree348d6cd273e59a17f2804ee3a88ae5fd5718ad09
parent67c68afa6dd2fe1fdc300b72a7cf1d867ab38f27 (diff)
downloadscummvm-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.cpp2
-rw-r--r--engines/toon/toon.cpp3
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);
}