diff options
| author | Jaromir Wysoglad | 2019-06-12 19:08:44 +0200 |
|---|---|---|
| committer | Thierry Crozat | 2019-07-28 15:09:14 +0100 |
| commit | d93656c10a048d3de2ee209c59533dad1f2d7759 (patch) | |
| tree | fe436e3d16785d86d4c9e41f2ee516070dd56945 /engines/supernova2/state.cpp | |
| parent | 46fe10db87933ce8325f33b64503f713b6f7f998 (diff) | |
| download | scummvm-rg350-d93656c10a048d3de2ee209c59533dad1f2d7759.tar.gz scummvm-rg350-d93656c10a048d3de2ee209c59533dad1f2d7759.tar.bz2 scummvm-rg350-d93656c10a048d3de2ee209c59533dad1f2d7759.zip | |
SUPERNOVA2: Add rooms Mus2 to Mus7
The rooms aren't tested yet, because the first room after
MusEntrance is Mus11, which isn't implemented yet.
Diffstat (limited to 'engines/supernova2/state.cpp')
| -rw-r--r-- | engines/supernova2/state.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/engines/supernova2/state.cpp b/engines/supernova2/state.cpp index 36dc72c7d6..7e4d0b7171 100644 --- a/engines/supernova2/state.cpp +++ b/engines/supernova2/state.cpp @@ -52,6 +52,7 @@ bool GameManager::serialize(Common::WriteStream *out) { out->writeByte(_state._alarmOn); out->writeByte(_state._alarmCracked); out->writeByte(_state._haste); + out->writeByte(_state._pressureCounter); out->writeByte(_state._sirenOn); out->writeSint16LE(_state._pyraDirection); out->writeUint32LE(_state._eventTime); @@ -103,6 +104,7 @@ bool GameManager::deserialize(Common::ReadStream *in, int version) { _state._alarmOn = in->readByte(); _state._alarmCracked = in->readByte(); _state._haste = in->readByte(); + _state._pressureCounter = in->readByte(); _state._sirenOn = in->readByte(); _state._pyraDirection = in->readSint16LE(); _state._eventTime = in->readUint32LE(); @@ -394,6 +396,7 @@ void GameManager::initState() { _state._alarmOn = false; _state._alarmCracked = false; _state._haste = false; + _state._pressureCounter = 0; _state._sirenOn = false; _state._pyraDirection = 0; _state._eventTime = kMaxTimerValue; @@ -2272,5 +2275,21 @@ void GameManager::securityEntrance() { } } +void GameManager::pressureAlarmEntrance() { + _state._pressureCounter = 0; + securityEntrance(); +} + +void GameManager::pressureAlarmCount() { + if (!(_state._alarmOn || + (_currentRoom == _rooms[MUS22] && _currentRoom->isSectionVisible(6)))) { + _state._pressureCounter++; + if ((_currentRoom >= _rooms[MUS12] && _state._pressureCounter > 8) || + _state._pressureCounter > 16) + alarm(); + } + setAnimationTimer(11); +} + } |
