diff options
-rw-r--r-- | engines/saga/actor.cpp | 6 | ||||
-rw-r--r-- | engines/saga/actor.h | 3 | ||||
-rw-r--r-- | engines/saga/events.cpp | 1 | ||||
-rw-r--r-- | engines/saga/scene.cpp | 2 |
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"); |