diff options
Diffstat (limited to 'engines/tucker/tucker.cpp')
-rw-r--r-- | engines/tucker/tucker.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/engines/tucker/tucker.cpp b/engines/tucker/tucker.cpp index 6e44eadc47..e41cbfbeef 100644 --- a/engines/tucker/tucker.cpp +++ b/engines/tucker/tucker.cpp @@ -68,12 +68,6 @@ Common::Error TuckerEngine::run() { return Common::kNoError; } -void TuckerEngine::syncSoundSettings() { - _mixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, ConfMan.getInt("sfx_volume")); - _mixer->setVolumeForSoundType(Audio::Mixer::kSpeechSoundType, ConfMan.getInt("speech_volume")); - _mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, ConfMan.getInt("music_volume")); -} - int TuckerEngine::getRandomNumber() { return _rnd.getRandomNumber(0x7FFF); } @@ -130,10 +124,7 @@ void TuckerEngine::restart() { _timerCounter2 = 0; _partNum = _currentPartNum = 0; _locationNum = 0; - _nextLocationNum = ConfMan.getInt("boot_param"); - if (_nextLocationNum == 0) { - _nextLocationNum = (_gameFlags & kGameFlagDemo) == 0 ? kStartupLocationGame : kStartupLocationDemo; - } + _nextLocationNum = (_gameFlags & kGameFlagDemo) == 0 ? kStartupLocationGame : kStartupLocationDemo; _gamePaused = false; _gameDebug = false; _displayGameHints = false; @@ -359,6 +350,15 @@ void TuckerEngine::mainLoop() { _spriteAnimationFrameIndex = _spriteAnimationsTable[14].firstFrameIndex; + if (ConfMan.hasKey("save_slot")) { + const int slot = ConfMan.getInt("save_slot"); + if (slot >= 0 && slot <= kLastSaveSlot) { + loadGameState(slot); + } + } else if (ConfMan.hasKey("boot_param")) { + _nextLocationNum = ConfMan.getInt("boot_param"); + } + do { ++_syncCounter; if (_flagsTable[137] != _flagsTable[138]) { |