aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--saga/actor.cpp2
-rw-r--r--saga/sfuncs.cpp7
2 files changed, 8 insertions, 1 deletions
diff --git a/saga/actor.cpp b/saga/actor.cpp
index 85fae3c426..1bd3a3310f 100644
--- a/saga/actor.cpp
+++ b/saga/actor.cpp
@@ -374,7 +374,7 @@ void Actor::takeExit(uint16 actorId, const HitZone *hitZone) {
ActorData *actor;
actor = getActor(actorId);
actor->lastZone = NULL;
-
+
_vm->_scene->changeScene(hitZone->getSceneNumber(), hitZone->getActorsEntrance(), kTransitionNoFade);
_vm->_script->setNoPendingVerb();
}
diff --git a/saga/sfuncs.cpp b/saga/sfuncs.cpp
index 28d66f9947..cebd7fa910 100644
--- a/saga/sfuncs.cpp
+++ b/saga/sfuncs.cpp
@@ -509,6 +509,13 @@ void Script::sfScriptGotoScene(SCRIPTFUNC_PARAMS) {
return;
}
+ // It is possible to leave scene when converse panel is on,
+ // particulalrly it may happen at Moneychanger tent. This
+ // prevent this from happening.
+ if (_vm->_interface->getMode() == kPanelConverse) {
+ _vm->_interface->setMode(kPanelMain);
+ }
+
// This is used for latter demos where all places on world map except
// Tent Faire are substituted with LBM picture and short description
// TODO: implement