diff options
-rw-r--r-- | engines/supernova/state.cpp | 5 | ||||
-rw-r--r-- | engines/supernova/state.h | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp index 515304aa43..44ecfae0ac 100644 --- a/engines/supernova/state.cpp +++ b/engines/supernova/state.cpp @@ -1515,6 +1515,7 @@ void GameManager::roomBrightness() { void GameManager::changeRoom(RoomID id) { _currentRoom = _rooms[id]; + _newRoom = true; } void GameManager::wait2(int ticks) { @@ -2202,8 +2203,10 @@ void GameManager::executeRoom() { else _vm->paletteBrightness(); - if (!_currentRoom->hasSeen()) + if (!_currentRoom->hasSeen() && _newRoom) { _currentRoom->onEntrance(); + _newRoom = false; + } } void GameManager::guardShot() { diff --git a/engines/supernova/state.h b/engines/supernova/state.h index 03bbc8074d..e61519cfbb 100644 --- a/engines/supernova/state.h +++ b/engines/supernova/state.h @@ -115,6 +115,7 @@ public: int _mouseY; int _mouseField; Room *_currentRoom; + bool _newRoom; Room *_rooms[NUMROOMS]; Inventory _inventory; GameState _state; |