diff options
author | urukgit | 2013-11-18 15:50:33 +0100 |
---|---|---|
committer | urukgit | 2013-11-18 15:50:42 +0100 |
commit | 6244b6afe2e4634946ede4f971f664e7213014ed (patch) | |
tree | 129d8625d094e1eef0fefb8b04320546971f460b /engines/avalanche | |
parent | b1bcf1279130640f0058c6d6d85abee7eee54973 (diff) | |
download | scummvm-rg350-6244b6afe2e4634946ede4f971f664e7213014ed.tar.gz scummvm-rg350-6244b6afe2e4634946ede4f971f664e7213014ed.tar.bz2 scummvm-rg350-6244b6afe2e4634946ede4f971f664e7213014ed.zip |
AVALANCHE: Repair the timer.
Diffstat (limited to 'engines/avalanche')
-rw-r--r-- | engines/avalanche/avalot.cpp | 1 | ||||
-rw-r--r-- | engines/avalanche/timer.cpp | 20 | ||||
-rw-r--r-- | engines/avalanche/timer.h | 2 |
3 files changed, 13 insertions, 10 deletions
diff --git a/engines/avalanche/avalot.cpp b/engines/avalanche/avalot.cpp index 5d360d1c3f..87b2b7aef0 100644 --- a/engines/avalanche/avalot.cpp +++ b/engines/avalanche/avalot.cpp @@ -1486,6 +1486,7 @@ void AvalancheEngine::resetVariables() { _sequence->resetVariables(); _background->resetVariables(); _menu->resetVariables(); + _timer->resetVariables(); } void AvalancheEngine::newGame() { diff --git a/engines/avalanche/timer.cpp b/engines/avalanche/timer.cpp index 8a4ee7ed22..93889b76b7 100644 --- a/engines/avalanche/timer.cpp +++ b/engines/avalanche/timer.cpp @@ -35,12 +35,7 @@ namespace Avalanche { Timer::Timer(AvalancheEngine *vm) { _vm = vm; - for (int i = 0; i < 7; i++) { - _times[i]._timeLeft = 0; - _times[i]._action = 0; - _times[i]._reason = 0; - } - _timerLost = false; + resetVariables(); } /** @@ -48,7 +43,7 @@ Timer::Timer(AvalancheEngine *vm) { * @remarks Originally called 'set_up_timer' */ void Timer::addTimer(int32 duration, byte action, byte reason) { - if ((_vm->_ableToAddTimer == false) || (_timerLost == true)) { + if (_vm->_ableToAddTimer) { byte i = 0; while ((i < 7) && (_times[i]._timeLeft != 0)) i++; @@ -61,7 +56,7 @@ void Timer::addTimer(int32 duration, byte action, byte reason) { _times[i]._action = action; _times[i]._reason = reason; } else { - _vm->_ableToAddTimer = false; + _vm->_ableToAddTimer = true; return; } } @@ -218,7 +213,6 @@ void Timer::loseTimer(byte which) { _times[i]._timeLeft = 0; // Cancel this one! } - _timerLost = true; } void Timer::openDrawbridge() { @@ -690,4 +684,12 @@ void Timer::giveLuteToGeida() { // Moved here from Acci. _vm->_sequence->startGeidaLuteSeq(); } +void Timer::resetVariables() { + for (int i = 0; i < 7; i++) { + _times[i]._timeLeft = 0; + _times[i]._action = 0; + _times[i]._reason = 0; + } +} + } // End of namespace Avalanche. diff --git a/engines/avalanche/timer.h b/engines/avalanche/timer.h index 6cd894b0a5..9a91c4d24b 100644 --- a/engines/avalanche/timer.h +++ b/engines/avalanche/timer.h @@ -119,10 +119,10 @@ public: }; TimerType _times[7]; - bool _timerLost; // Is the timer "lost"? (Because of using loseTimer()) Timer(AvalancheEngine *vm); + void resetVariables(); void addTimer(int32 duration, byte action, byte reason); void updateTimer(); void loseTimer(byte which); |