diff options
author | uruk | 2013-08-21 13:45:22 +0200 |
---|---|---|
committer | uruk | 2013-08-21 13:45:22 +0200 |
commit | 44f7802777df8b3dce2eaa25b66bfe0d0f094bdf (patch) | |
tree | b7ec56106df0439b991cf5648ad6be2bdf346f3f | |
parent | f8796e720eea8122bf7ecef7f1dcd75c39b75a97 (diff) | |
download | scummvm-rg350-44f7802777df8b3dce2eaa25b66bfe0d0f094bdf.tar.gz scummvm-rg350-44f7802777df8b3dce2eaa25b66bfe0d0f094bdf.tar.bz2 scummvm-rg350-44f7802777df8b3dce2eaa25b66bfe0d0f094bdf.zip |
AVALANCHE: Rename Gyro::reloaded to Gyro::isLoaded. Repair a bug in the original engine regarding timing of animations/scrolls/etc. when loading a savegame using this variable.
-rw-r--r-- | engines/avalanche/avalanche.cpp | 2 | ||||
-rw-r--r-- | engines/avalanche/avalot.cpp | 6 | ||||
-rw-r--r-- | engines/avalanche/gyro2.h | 2 | ||||
-rw-r--r-- | engines/avalanche/timeout2.cpp | 27 |
4 files changed, 21 insertions, 16 deletions
diff --git a/engines/avalanche/avalanche.cpp b/engines/avalanche/avalanche.cpp index 8c893176e8..2c4ae6f9ea 100644 --- a/engines/avalanche/avalanche.cpp +++ b/engines/avalanche/avalanche.cpp @@ -456,6 +456,8 @@ bool AvalancheEngine::loadGame(const int16 slot) { delete f; + _gyro->isLoaded = true; + _gyro->seescroll = true; // This prevents display of the new sprites before the new picture is loaded. if (_gyro->holdthedawn) { diff --git a/engines/avalanche/avalot.cpp b/engines/avalanche/avalot.cpp index 9cf66606ab..cb73123d2e 100644 --- a/engines/avalanche/avalot.cpp +++ b/engines/avalanche/avalot.cpp @@ -192,14 +192,12 @@ void Avalot::setup() { int16 loadSlot = Common::ConfigManager::instance().getInt("save_slot"); if (loadSlot >= 0) { _vm->loadGame(loadSlot); - - _vm->_gyro->reloaded = true; } else - _vm->_gyro->reloaded = false; + _vm->_gyro->isLoaded = false; // Set to true in _vm->loadGame(). - if (!_vm->_gyro->reloaded) { + if (!_vm->_gyro->isLoaded) { _vm->_gyro->newgame(); // No game was requested- load the default. _vm->_gyro->soundfx = ! _vm->_gyro->soundfx; diff --git a/engines/avalanche/gyro2.h b/engines/avalanche/gyro2.h index 7ddfe62de4..547b324af0 100644 --- a/engines/avalanche/gyro2.h +++ b/engines/avalanche/gyro2.h @@ -594,7 +594,7 @@ public: uint16 storage_seg, storage_ofs; /* Seg and ofs of the Storage area. */ uint16 skellern; /* Offset of the timer variable - 1 more than storage_OFS */ - bool reloaded; /* Is this NOT the primary loading? */ + bool isLoaded; // Is it a loaded gamestate? bool super_was_virtual, super_was_off; /* Used by Super_Off and Super_On */ diff --git a/engines/avalanche/timeout2.cpp b/engines/avalanche/timeout2.cpp index 459f12415d..dba78870e9 100644 --- a/engines/avalanche/timeout2.cpp +++ b/engines/avalanche/timeout2.cpp @@ -57,17 +57,22 @@ Timeout::Timeout(AvalancheEngine *vm) { } void Timeout::set_up_timer(int32 howlong, byte whither, byte why) { - fv = 0; - while ((fv < 7) && (times[fv].time_left != 0)) - fv++; - - if (fv == 7) - return; /* Oh dear... */ - - /* Everything's OK here! */ - times[fv].time_left = howlong; - times[fv].then_where = whither; - times[fv].what_for = why; + if (_vm->_gyro->isLoaded == false) { + byte i = 0; + while ((i < 7) && (times[i].time_left != 0)) + i++; + + if (i == 7) + return; // Oh dear... + + // Everything's OK here! + times[i].time_left = howlong; + times[i].then_where = whither; + times[i].what_for = why; + } else { + _vm->_gyro->isLoaded = false; + return; + } } void Timeout::one_tick() { |