diff options
Diffstat (limited to 'engines/saga/sfuncs.cpp')
-rw-r--r-- | engines/saga/sfuncs.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/engines/saga/sfuncs.cpp b/engines/saga/sfuncs.cpp index 2b936844cc..deee3ed68d 100644 --- a/engines/saga/sfuncs.cpp +++ b/engines/saga/sfuncs.cpp @@ -875,15 +875,17 @@ void Script::sfSwapActors(SCRIPTFUNC_PARAMS) { actor1->_flags &= ~kProtagonist; actor2->_flags |= kProtagonist; _vm->_actor->_protagonist = _vm->_actor->_centerActor = actor2; + if (_vm->getGameType() == GType_IHNM) + _vm->_scene->setProtag(actorId2); } else if (actor2->_flags & kProtagonist) { actor2->_flags &= ~kProtagonist; actor1->_flags |= kProtagonist; _vm->_actor->_protagonist = _vm->_actor->_centerActor = actor1; + if (_vm->getGameType() == GType_IHNM) + _vm->_scene->setProtag(actorId1); } - // Here non-protagonist ID gets saved in variable - if (_vm->getGameType() == GType_IHNM) - warning("sfSwapActors: incomplete implementation"); + // TODO: where is the protagonist ID used? } // Script function #35 (0x23) |