aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/supernova/state.cpp5
-rw-r--r--engines/supernova/state.h1
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;