diff options
Diffstat (limited to 'engines/sword2')
-rw-r--r-- | engines/sword2/anims.cpp | 8 | ||||
-rw-r--r-- | engines/sword2/music.cpp | 6 | ||||
-rw-r--r-- | engines/sword2/resman.h | 4 | ||||
-rw-r--r-- | engines/sword2/sword2.cpp | 22 |
4 files changed, 20 insertions, 20 deletions
diff --git a/engines/sword2/anims.cpp b/engines/sword2/anims.cpp index 1bf3967047..7fd36fcc86 100644 --- a/engines/sword2/anims.cpp +++ b/engines/sword2/anims.cpp @@ -56,8 +56,6 @@ int Router::doAnimate(byte *ob_logic, byte *ob_graph, int32 animRes, bool revers ObjectGraphic obGraph(ob_graph); if (obLogic.getLooping() == 0) { - byte *ptr; - // This is the start of the anim - set up the first frame // For testing all anims! @@ -75,12 +73,8 @@ int Router::doAnimate(byte *ob_logic, byte *ob_graph, int32 animRes, bool revers return IR_STOP; } - ptr = _vm->_resman->openResource(animRes); - // if it's not an animation file if (_vm->_resman->fetchType(animRes) != ANIMATION_FILE) { - _vm->_resman->closeResource(animRes); - // switch off the sprite // don't animate - just continue // script next cycle @@ -88,8 +82,6 @@ int Router::doAnimate(byte *ob_logic, byte *ob_graph, int32 animRes, bool revers return IR_STOP; } - _vm->_resman->closeResource(animRes); - // switch on the sprite setSpriteStatus(ob_graph, SORT_SPRITE); } diff --git a/engines/sword2/music.cpp b/engines/sword2/music.cpp index a68baed097..c052aa6b46 100644 --- a/engines/sword2/music.cpp +++ b/engines/sword2/music.cpp @@ -136,10 +136,8 @@ static Audio::AudioStream *getAudioStream(SoundFileHandle *fh, const char *base, return NULL; } if (fh->fileSize != fh->file.size()) { - if (fh->idxTab) { - free(fh->idxTab); - fh->idxTab = NULL; - } + free(fh->idxTab); + fh->idxTab = NULL; } } else alreadyOpen = true; diff --git a/engines/sword2/resman.h b/engines/sword2/resman.h index 72bdf73b98..dcc79927ea 100644 --- a/engines/sword2/resman.h +++ b/engines/sword2/resman.h @@ -32,11 +32,7 @@ namespace Common { class File; } -#ifdef PALMOS_MODE -#define MAX_MEM_CACHE (4 * 1024 * 1024) // 4 seems to be enough, 8 = out of memory -#else #define MAX_MEM_CACHE (8 * 1024 * 1024) // we keep up to 8 megs of resource data files in memory -#endif #define MAX_res_files 20 namespace Sword2 { diff --git a/engines/sword2/sword2.cpp b/engines/sword2/sword2.cpp index 29f567d7ef..3cdab2bd2b 100644 --- a/engines/sword2/sword2.cpp +++ b/engines/sword2/sword2.cpp @@ -326,12 +326,20 @@ void Sword2Engine::registerDefaultSettings() { } void Sword2Engine::syncSoundSettings() { - // Sound settings. At the time of writing, not all of these can be set - // by the global options dialog, but it seems silly to split them up. _mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, ConfMan.getInt("music_volume")); _mixer->setVolumeForSoundType(Audio::Mixer::kSpeechSoundType, ConfMan.getInt("speech_volume")); _mixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, ConfMan.getInt("sfx_volume")); setSubtitles(ConfMan.getBool("subtitles")); + + // Our own settings dialog can mute the music, speech and sound effects + // individually. ScummVM's settings dialog has one master mute setting. + + if (ConfMan.getBool("mute")) { + ConfMan.setBool("music_mute", true); + ConfMan.setBool("speech_mute", true); + ConfMan.setBool("sfx_mute", true); + } + _sound->muteMusic(ConfMan.getBool("music_mute")); _sound->muteSpeech(ConfMan.getBool("speech_mute")); _sound->muteFx(ConfMan.getBool("sfx_mute")); @@ -356,6 +364,13 @@ void Sword2Engine::writeSettings() { ConfMan.setBool("object_labels", _mouse->getObjectLabels()); ConfMan.setInt("reverse_stereo", _sound->isReverseStereo()); + // If even one sound type is unmuted, we can't say that all sound is + // muted. + + if (!_sound->isMusicMute() || !_sound->isSpeechMute() || !_sound->isFxMute()) { + ConfMan.setBool("mute", false); + } + ConfMan.flushToDisk(); } @@ -458,8 +473,7 @@ Common::Error Sword2Engine::run() { _screen->initialiseRenderCycle(); while (1) { - if (_debugger->isAttached()) - _debugger->onFrame(); + _debugger->onFrame(); #ifdef SWORD2_DEBUG if (_stepOneCycle) { |