diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/supernova/rooms.cpp | 7 | ||||
-rw-r--r-- | engines/supernova/state.cpp | 2 | ||||
-rw-r--r-- | engines/supernova/state.h | 1 |
3 files changed, 6 insertions, 4 deletions
diff --git a/engines/supernova/rooms.cpp b/engines/supernova/rooms.cpp index 8bbb170500..2ec0836687 100644 --- a/engines/supernova/rooms.cpp +++ b/engines/supernova/rooms.cpp @@ -2729,8 +2729,9 @@ void AxacussBcorridor::onEntrance() { bool AxacussBcorridor::interact(Action verb, Object &obj1, Object &obj2) { if (obj1.hasProperty(EXIT) || - ((verb == ACTION_USE) && obj1.hasProperty(COMBINABLE) && obj2.hasProperty(EXIT))) - _gm->_guiEnabled = false; + ((verb == ACTION_USE) && obj1.hasProperty(COMBINABLE) && obj2.hasProperty(EXIT))) { + _gm->_state._playerHidden = false; + } if ((verb == ACTION_CLOSE) && (obj1._id >= DOOR1) && (obj1._id <= DOOR4) && obj1.hasProperty(OPENED)) { _vm->renderImage(_gm->invertSection(obj1._id - DOOR1 + 1)); @@ -2794,7 +2795,7 @@ bool AxacussBcorridor::interact(Action verb, Object &obj1, Object &obj2) { return false; } else if ((verb == ACTION_WALK) && ((obj1._id == PILLAR1) || (obj1._id == PILLAR2))) { _vm->renderMessage(kStringAxacussBcorridor_1); - _gm->_guiEnabled = true; + _gm->_state._playerHidden = true; } else return false; diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp index e199e15d47..6821065214 100644 --- a/engines/supernova/state.cpp +++ b/engines/supernova/state.cpp @@ -1091,7 +1091,7 @@ void GameManager::guardWalkEvent() { walk(18); } - if (!_currentRoom->isSectionVisible(kMaxSection - 1)) { + if (!_state._playerHidden) { if (_state._origin & 1) walk(10); else diff --git a/engines/supernova/state.h b/engines/supernova/state.h index e61519cfbb..50a0ce18d8 100644 --- a/engines/supernova/state.h +++ b/engines/supernova/state.h @@ -56,6 +56,7 @@ struct GameState { bool _powerOff; bool _dream; bool _nameSeen[4]; + bool _playerHidden; }; class Inventory { |