diff options
author | Filippos Karapetis | 2007-06-20 01:45:38 +0000 |
---|---|---|
committer | Filippos Karapetis | 2007-06-20 01:45:38 +0000 |
commit | 6689a6607be844740b7f27e2d9021d36538001aa (patch) | |
tree | f1fe014fcfd8b49e13e7ca5e09febf97540cd8a3 | |
parent | 61c91cafb9376b10d643269d55e409da6a87f667 (diff) | |
download | scummvm-rg350-6689a6607be844740b7f27e2d9021d36538001aa.tar.gz scummvm-rg350-6689a6607be844740b7f27e2d9021d36538001aa.tar.bz2 scummvm-rg350-6689a6607be844740b7f27e2d9021d36538001aa.zip |
Fix crashes with some savegames in IHNM
svn-id: r27553
-rw-r--r-- | engines/saga/saveload.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/engines/saga/saveload.cpp b/engines/saga/saveload.cpp index 05cf2f3aee..c93ace81b3 100644 --- a/engines/saga/saveload.cpp +++ b/engines/saga/saveload.cpp @@ -310,7 +310,12 @@ void SagaEngine::load(const char *fileName) { if (getGameType() != GType_ITE) { if (_scene->currentProtag() != 0 && _scene->currentChapterNumber() != 6) { ActorData *actor1 = _actor->getFirstActor(); - ActorData *actor2 = _actor->getActor(_scene->currentProtag()); + // Original stores the current protagonist ID from sfSwapActors: + //ActorData *actor2 = _actor->getActor(_scene->currentProtag()); + // However, we already store the protagonist, so merely getting the saved + // protagonist is easier and safer, and works without glitches + ActorData *actor2 = _actor->_protagonist; + SWAP(actor1->_location, actor2->_location); actor2->_flags &= ~kProtagonist; |