aboutsummaryrefslogtreecommitdiff
path: root/engines/tucker
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tucker')
-rw-r--r--engines/tucker/detection.cpp5
-rw-r--r--engines/tucker/tucker.cpp20
-rw-r--r--engines/tucker/tucker.h1
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: