aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/saga/actor.cpp6
-rw-r--r--engines/saga/actor.h3
-rw-r--r--engines/saga/events.cpp1
-rw-r--r--engines/saga/scene.cpp2
4 files changed, 12 insertions, 0 deletions
diff --git a/engines/saga/actor.cpp b/engines/saga/actor.cpp
index ecf7202725..d7882a78fd 100644
--- a/engines/saga/actor.cpp
+++ b/engines/saga/actor.cpp
@@ -268,6 +268,8 @@ Actor::Actor(SagaEngine *vm) : _vm(vm) {
_pathRect.top = _vm->getDisplayInfo().pathStartY;
_pathRect.bottom = _vm->_scene->getHeight();
+ _showActors = true;
+
// Get actor resource file context
_actorContext = _vm->_resource->getContext(GAME_RESOURCEFILE);
if (_actorContext == NULL) {
@@ -1808,6 +1810,10 @@ void Actor::drawActors() {
return;
}
+ if (!_showActors) {
+ return;
+ }
+
CommonObjectOrderList::iterator drawOrderIterator;
CommonObjectDataPointer drawObject;
int frameNumber;
diff --git a/engines/saga/actor.h b/engines/saga/actor.h
index 1557abffb9..b9ec62337c 100644
--- a/engines/saga/actor.h
+++ b/engines/saga/actor.h
@@ -612,6 +612,8 @@ public:
void freeObjList();
void loadObjList(int objectCount, int objectsResourceID);
+ void showActors(bool flag) { _showActors = flag; }
+
/*
uint16 _currentFrameIndex;
void frameTest() {
@@ -712,6 +714,7 @@ private:
int _xCellCount;
int _yCellCount;
Rect _pathRect;
+ bool _showActors;
PathDirectionData *_pathDirectionList;
int _pathDirectionListCount;
diff --git a/engines/saga/events.cpp b/engines/saga/events.cpp
index 191ea4ed61..b93c6017c7 100644
--- a/engines/saga/events.cpp
+++ b/engines/saga/events.cpp
@@ -341,6 +341,7 @@ int Events::handleOneShot(Event *event) {
_vm->_gfx->setPalette(palPointer);
}
}
+ _vm->_actor->showActors(true);
}
break;
case kAnimEvent:
diff --git a/engines/saga/scene.cpp b/engines/saga/scene.cpp
index 84d1b45114..362b212b14 100644
--- a/engines/saga/scene.cpp
+++ b/engines/saga/scene.cpp
@@ -570,6 +570,8 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
_chapterPointsChanged = false;
+ _vm->_actor->showActors(false);
+
if ((_vm->getGameType() == GType_IHNM) && (loadSceneParams->chapter != NO_CHAPTER_CHANGE)) {
if (loadSceneParams->loadFlag != kLoadBySceneNumber) {
error("loadScene wrong usage");