diff options
Diffstat (limited to 'engines/saga/saveload.cpp')
-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; |