KYRA: (EOB/PC98) - fix music mute setting

(this has to be done a bit different for PC-98, since - unlike the other currently supported platforms - PC-98 has ingame music)
This commit is contained in:
athrxx 2019-12-20 00:27:03 +01:00
parent c5c8f3458b
commit 2d7355dcf2
2 changed files with 12 additions and 5 deletions

View File

@ -636,11 +636,11 @@ void EoBCoreEngine::registerDefaultSettings() {
void EoBCoreEngine::readSettings() {
_configHpBarGraphs = ConfMan.getBool("hpbargraphs");
_configMouseBtSwap = ConfMan.getBool("mousebtswap");
_configSounds = ConfMan.getBool("sfx_mute") ? 0 : 1;
_configMusic = _configSounds ? 1 : 0;
_configSounds = ConfMan.getBool("sfx_mute") ? 0 : 1;
_configMusic = (_flags.platform == Common::kPlatformPC98) ? (ConfMan.getBool("music_mute") ? 0 : 1) : (_configSounds ? 1 : 0);
if (_sound) {
_sound->enableMusic(_configSounds ? 1 : 0);
_sound->enableMusic(_configMusic);
_sound->enableSFX(_configSounds);
}
}
@ -649,11 +649,17 @@ void EoBCoreEngine::writeSettings() {
ConfMan.setBool("hpbargraphs", _configHpBarGraphs);
ConfMan.setBool("mousebtswap", _configMouseBtSwap);
ConfMan.setBool("sfx_mute", _configSounds == 0);
if (_flags.platform == Common::kPlatformPC98)
ConfMan.setBool("music_mute", _configMusic == 0);
if (_sound) {
if (!_configSounds)
if (_flags.platform == Common::kPlatformPC98) {
if (!_configMusic)
snd_playSong(0);
} else if (!_configSounds) {
_sound->haltTrack();
_sound->enableMusic(_configSounds ? 1 : 0);
}
_sound->enableMusic(_configMusic);
_sound->enableSFX(_configSounds);
}

View File

@ -2293,6 +2293,7 @@ void GUI_EoB::runCampMenu() {
case 0x800D:
if (_vm->gameFlags().platform == Common::kPlatformPC98) {
_vm->_configMusic ^= true;
_vm->writeSettings();
if (_vm->_configMusic)
_vm->snd_playSong(_vm->_currentLevel + 1);
else