diff options
Diffstat (limited to 'engines/tucker')
-rw-r--r-- | engines/tucker/detection.cpp | 5 | ||||
-rw-r--r-- | engines/tucker/tucker.cpp | 20 | ||||
-rw-r--r-- | engines/tucker/tucker.h | 1 |
3 files changed, 13 insertions, 13 deletions
diff --git a/engines/tucker/detection.cpp b/engines/tucker/detection.cpp index f0437d2f87..7404abc2e7 100644 --- a/engines/tucker/detection.cpp +++ b/engines/tucker/detection.cpp @@ -122,8 +122,8 @@ static const ADParams detectionParams = { 0, // Flags 0, - // Additional GUI options (for every game} - Common::GUIO_NOLAUNCHLOAD, + // Additional GUI options (for every game) + Common::GUIO_NONE, // Maximum directory depth 1, // List of directory globs @@ -156,6 +156,7 @@ public: virtual bool hasFeature(MetaEngineFeature f) const { switch (f) { case kSupportsListSaves: + case kSupportsLoadingDuringStartup: case kSupportsDeleteSave: return true; default: 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]) { diff --git a/engines/tucker/tucker.h b/engines/tucker/tucker.h index fd931998e4..532892fd48 100644 --- a/engines/tucker/tucker.h +++ b/engines/tucker/tucker.h @@ -280,7 +280,6 @@ public: virtual Common::Error run(); virtual bool hasFeature(EngineFeature f) const; - virtual void syncSoundSettings(); GUI::Debugger *getDebugger() { return _console; } protected: |