aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorChristopher Page2008-07-01 03:01:11 +0000
committerChristopher Page2008-07-01 03:01:11 +0000
commit9c60fd183c8bc8f867a5dd5116c1195586342db6 (patch)
treede4ad9a356ea83bd9b009f1039b5fb21834ef890 /engines
parent563e28b668a44e830c26702b21f1d75cccb6cf03 (diff)
downloadscummvm-rg350-9c60fd183c8bc8f867a5dd5116c1195586342db6.tar.gz
scummvm-rg350-9c60fd183c8bc8f867a5dd5116c1195586342db6.tar.bz2
scummvm-rg350-9c60fd183c8bc8f867a5dd5116c1195586342db6.zip
Sound settings for Saga can be configured from the GMM
svn-id: r32863
Diffstat (limited to 'engines')
-rw-r--r--engines/saga/music.cpp14
-rw-r--r--engines/saga/music.h3
-rw-r--r--engines/saga/saga.cpp28
-rw-r--r--engines/saga/saga.h2
4 files changed, 23 insertions, 24 deletions
diff --git a/engines/saga/music.cpp b/engines/saga/music.cpp
index 732bd0b50c..1005b0ab5f 100644
--- a/engines/saga/music.cpp
+++ b/engines/saga/music.cpp
@@ -346,7 +346,7 @@ void MusicPlayer::stopMusic() {
}
}
-Music::Music(SagaEngine *vm, Audio::Mixer *mixer, MidiDriver *driver, int enabled) : _vm(vm), _mixer(mixer), _enabled(enabled), _adlib(false) {
+Music::Music(SagaEngine *vm, Audio::Mixer *mixer, MidiDriver *driver) : _vm(vm), _mixer(mixer), _adlib(false) {
_player = new MusicPlayer(driver);
_currentVolume = 0;
@@ -432,11 +432,7 @@ void Music::play(uint32 resourceId, MusicFlags flags) {
uint32 loopStart;
debug(2, "Music::play %d, %d", resourceId, flags);
-
- if (!_enabled) {
- return;
- }
-
+
if (isPlaying() && _trackNumber == resourceId) {
return;
}
@@ -444,11 +440,7 @@ void Music::play(uint32 resourceId, MusicFlags flags) {
_trackNumber = resourceId;
_player->stopMusic();
_mixer->stopHandle(_musicHandle);
-
- if (!_vm->_musicVolume) {
- return;
- }
-
+
int realTrackNumber;
if (_vm->getGameType() == GType_ITE) {
diff --git a/engines/saga/music.h b/engines/saga/music.h
index 1953dc6f91..57ff9e0671 100644
--- a/engines/saga/music.h
+++ b/engines/saga/music.h
@@ -105,7 +105,7 @@ protected:
class Music {
public:
- Music(SagaEngine *vm, Audio::Mixer *mixer, MidiDriver *driver, int enabled);
+ Music(SagaEngine *vm, Audio::Mixer *mixer, MidiDriver *driver);
~Music(void);
void setNativeMT32(bool b) { _player->setNativeMT32(b); }
bool hasNativeMT32() { return _player->hasNativeMT32(); }
@@ -133,7 +133,6 @@ private:
Audio::SoundHandle _musicHandle;
uint32 _trackNumber;
- int _enabled;
bool _adlib;
int _targetVolume;
diff --git a/engines/saga/saga.cpp b/engines/saga/saga.cpp
index 4f48d1b26e..f912ffa93b 100644
--- a/engines/saga/saga.cpp
+++ b/engines/saga/saga.cpp
@@ -193,14 +193,9 @@ int SagaEngine::init() {
if (native_mt32)
_driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
- _music = new Music(this, _mixer, _driver, _musicVolume);
+ _music = new Music(this, _mixer, _driver);
_music->setNativeMT32(native_mt32);
_music->setAdlib(adlib);
-
- if (!_musicVolume) {
- debug(1, "Music disabled.");
- }
-
_render = new Render(this, _system);
if (!_render->initialized()) {
return FAILURE;
@@ -208,14 +203,11 @@ int SagaEngine::init() {
// Initialize system specific sound
_sound = new Sound(this, _mixer, _soundVolume);
- if (!_soundVolume) {
- debug(1, "Sound disabled.");
- }
-
+
_interface->converseInit();
_script->setVerb(_script->getVerbType(kVerbWalkTo));
- _music->setVolume(-1, 1);
+ _music->setVolume(_musicVolume, 1);
_gfx->initPalette();
@@ -519,4 +511,18 @@ int SagaEngine::getTalkspeed() {
return (ConfMan.getInt("talkspeed") * 3 + 255 / 2) / 255;
}
+void SagaEngine::syncSoundSettings() {
+ _soundVolume = ConfMan.getInt("sfx_volume");
+ _musicVolume = ConfMan.getInt("music_volume");
+ _subtitlesEnabled = ConfMan.getBool("subtitles");
+ _readingSpeed = getTalkspeed();
+
+ if (_readingSpeed > 3)
+ _readingSpeed = 0;
+
+ _music->setVolume(_musicVolume, 1);
+ _sound->setVolume(_soundVolume);
+
+}
+
} // End of namespace Saga
diff --git a/engines/saga/saga.h b/engines/saga/saga.h
index 32ab646246..de03f1d2f6 100644
--- a/engines/saga/saga.h
+++ b/engines/saga/saga.h
@@ -512,6 +512,8 @@ public:
return isSaveListFull() ? _saveFilesCount : _saveFilesCount + 1;
}
+ virtual void syncSoundSettings();
+
int16 _framesEsc;
uint32 _globalFlags;