diff options
author | uruk | 2014-07-25 20:24:10 +0200 |
---|---|---|
committer | uruk | 2014-07-25 20:24:10 +0200 |
commit | aaf1f6a1a084ef1d5d40a4e8794014a62795b7db (patch) | |
tree | 92e292a1f41747a641d7e1e4a5ddd9d34f8ab7af | |
parent | 3c0665edfa5fcbb1557aba3bc13c512f48f86dc6 (diff) | |
download | scummvm-rg350-aaf1f6a1a084ef1d5d40a4e8794014a62795b7db.tar.gz scummvm-rg350-aaf1f6a1a084ef1d5d40a4e8794014a62795b7db.tar.bz2 scummvm-rg350-aaf1f6a1a084ef1d5d40a4e8794014a62795b7db.zip |
CGE2: Fix initialization of sound switches on the toolbar.
-rw-r--r-- | engines/cge2/cge2.cpp | 9 | ||||
-rw-r--r-- | engines/cge2/cge2.h | 6 | ||||
-rw-r--r-- | engines/cge2/toolbar.cpp | 5 |
3 files changed, 15 insertions, 5 deletions
diff --git a/engines/cge2/cge2.cpp b/engines/cge2/cge2.cpp index 5a5e3451aa..d28215bc93 100644 --- a/engines/cge2/cge2.cpp +++ b/engines/cge2/cge2.cpp @@ -74,7 +74,6 @@ CGE2Engine::CGE2Engine(OSystem *syst, const ADGameDescription *gameDescription) _quitFlag = false; _bitmapPalette = nullptr; _music = true; - _oldMusicVolume = ConfMan.getInt("music_volume"); _startupMode = 1; _now = 1; _sex = 1; @@ -94,11 +93,17 @@ CGE2Engine::CGE2Engine(OSystem *syst, const ADGameDescription *gameDescription) _enaVox = true; _sayCap = true; _sayVox = true; - _oldSpeechVolume = ConfMan.getInt("speech_volume"); _req = 1; _midiNotify = nullptr; _spriteNotify = nullptr; _enaCap = true; + if (ConfMan.getBool("mute")) { + _oldSpeechVolume = _oldMusicVolume = _musicVolume = _sfxVolume = 0; + } else { + _oldSpeechVolume = ConfMan.getInt("speech_volume"); + _oldMusicVolume = _musicVolume = ConfMan.getInt("music_volume"); + _sfxVolume = ConfMan.getInt("sfx_volume"); + } } void CGE2Engine::init() { diff --git a/engines/cge2/cge2.h b/engines/cge2/cge2.h index 8d3f052b63..e6c1308238 100644 --- a/engines/cge2/cge2.h +++ b/engines/cge2/cge2.h @@ -113,6 +113,10 @@ struct SavegameHeader; #define kSavegameStrSize 12 #define kSavegameStr "SCUMMVM_CGE2" +#define kSoundSwtichRate 25.7 +// == 257 / 10; where 10 equals to the sound switches' number of states +// and ScummVM has a scale of 257 different values for setting sounds. + enum CallbackType { kNullCB = 0, kQGame, kXScene, kSoundSetVolume }; @@ -283,6 +287,8 @@ public: int _startGameSlot; bool _enaCap; bool _enaVox; + int _musicVolume; + int _sfxVolume; ResourceManager *_resman; Vga *_vga; diff --git a/engines/cge2/toolbar.cpp b/engines/cge2/toolbar.cpp index 23c6fd17c0..08a21da753 100644 --- a/engines/cge2/toolbar.cpp +++ b/engines/cge2/toolbar.cpp @@ -214,11 +214,10 @@ void CGE2Engine::initToolbar() { _vol[0] = _vga->_showQ->locate(kDvolRef); _vol[1] = _vga->_showQ->locate(kMvolRef); - // these sprites are loaded with SeqPtr==0 (why?!) if (_vol[0]) - _vol[0]->step((/*(int)SNDDrvInfo.VOL4.DL * */ _vol[0]->_seqCnt + _vol[0]->_seqCnt / 2) >> 4); + _vol[0]->step(_sfxVolume / kSoundSwtichRate); if (_vol[1]) - _vol[1]->step((/*(int)SNDDrvInfo.VOL4.ML * */ _vol[1]->_seqCnt + _vol[1]->_seqCnt / 2) >> 4); + _vol[1]->step(_musicVolume / kSoundSwtichRate); // TODO: Recheck these! ^ } |