diff options
author | Thierry Crozat | 2017-12-13 23:14:53 +0000 |
---|---|---|
committer | Thierry Crozat | 2018-01-23 02:15:43 +0000 |
commit | 1d32c6ac2566d7be14d3038b6729fe4a862c6be1 (patch) | |
tree | 07c6b346990b9a79abc7b2332e5f6d04050525b9 | |
parent | 3b36afc80f24794e97468b01ca8a2e6828491a0a (diff) | |
download | scummvm-rg350-1d32c6ac2566d7be14d3038b6729fe4a862c6be1.tar.gz scummvm-rg350-1d32c6ac2566d7be14d3038b6729fe4a862c6be1.tar.bz2 scummvm-rg350-1d32c6ac2566d7be14d3038b6729fe4a862c6be1.zip |
SUPERNOVA: Only call onEntrace once after changing room
-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; |