Hopefully fixed the chaos with the SAGA volume values. This also fixes the broken volume introduced with the introduction of the RTL code in the engine
svn-id: r34349
This commit is contained in:
parent
531ff7b33c
commit
6d4900ad06
4 changed files with 19 additions and 16 deletions
|
@ -1646,13 +1646,15 @@ void Interface::setOption(PanelButton *panelButton) {
|
|||
}
|
||||
break;
|
||||
case kTextMusic:
|
||||
_vm->_musicVolume = (_vm->_musicVolume + 1) % 11;
|
||||
_vm->_music->setVolume(_vm->_musicVolume == 10 ? -1 : _vm->_musicVolume * 25, 1);
|
||||
ConfMan.setInt("music_volume", _vm->_musicVolume * 25);
|
||||
_vm->_musicVolume = _vm->_musicVolume + 25;
|
||||
if (_vm->_musicVolume > 255) _vm->_musicVolume = 0;
|
||||
_vm->_music->setVolume(_vm->_musicVolume, 1);
|
||||
ConfMan.setInt("music_volume", _vm->_musicVolume);
|
||||
break;
|
||||
case kTextSound:
|
||||
_vm->_soundVolume = (_vm->_soundVolume + 1) % 11;
|
||||
ConfMan.setInt("sfx_volume", _vm->_soundVolume * 25);
|
||||
_vm->_soundVolume = _vm->_soundVolume + 25;
|
||||
if (_vm->_soundVolume > 255) _vm->_soundVolume = 0;
|
||||
ConfMan.setInt("sound_volume", _vm->_soundVolume);
|
||||
_vm->_sound->setVolume();
|
||||
break;
|
||||
case kTextVoices:
|
||||
|
@ -1672,8 +1674,9 @@ void Interface::setOption(PanelButton *panelButton) {
|
|||
_vm->_voicesEnabled = false;
|
||||
}
|
||||
|
||||
_vm->_speechVolume = (_vm->_speechVolume + 1) % 11;
|
||||
ConfMan.setInt("speech_volume", _vm->_speechVolume * 25);
|
||||
_vm->_speechVolume = _vm->_speechVolume + 25;
|
||||
if (_vm->_speechVolume > 255) _vm->_speechVolume = 0;
|
||||
ConfMan.setInt("speech_volume", _vm->_speechVolume);
|
||||
_vm->_sound->setVolume();
|
||||
|
||||
ConfMan.setBool("subtitles", _vm->_subtitlesEnabled);
|
||||
|
@ -2275,13 +2278,13 @@ void Interface::drawPanelButtonText(Surface *ds, InterfacePanel *panel, PanelBut
|
|||
break;
|
||||
case kTextMusic:
|
||||
if (_vm->_musicVolume)
|
||||
textId = kText10Percent + _vm->_musicVolume - 1;
|
||||
textId = kText10Percent + _vm->_musicVolume / 25 - 1;
|
||||
else
|
||||
textId = kTextOff;
|
||||
break;
|
||||
case kTextSound:
|
||||
if (_vm->_soundVolume)
|
||||
textId = kText10Percent + _vm->_soundVolume - 1;
|
||||
textId = kText10Percent + _vm->_soundVolume / 25 - 1;
|
||||
else
|
||||
textId = kTextOff;
|
||||
break;
|
||||
|
|
|
@ -404,7 +404,7 @@ void Music::musicVolumeGauge() {
|
|||
}
|
||||
|
||||
void Music::setVolume(int volume, int time) {
|
||||
_targetVolume = volume * 2; // ScummVM has different volume scale
|
||||
_targetVolume = volume;
|
||||
_currentVolumePercent = 0;
|
||||
|
||||
if (volume == -1) // Set Full volume
|
||||
|
@ -585,7 +585,7 @@ void Music::play(uint32 resourceId, MusicFlags flags) {
|
|||
parser->property(MidiParser::mpCenterPitchWheelOnUnload, 1);
|
||||
|
||||
_player->_parser = parser;
|
||||
setVolume(_vm->_musicVolume == 10 ? 255 : _vm->_musicVolume * 25);
|
||||
setVolume(_vm->_musicVolume);
|
||||
|
||||
if (flags & MUSIC_LOOP)
|
||||
_player->setLoop(true);
|
||||
|
@ -603,7 +603,7 @@ void Music::pause(void) {
|
|||
}
|
||||
|
||||
void Music::resume(void) {
|
||||
_player->setVolume(_vm->_musicVolume == 10 ? 255 : _vm->_musicVolume * 25);
|
||||
_player->setVolume(_vm->_musicVolume);
|
||||
_player->setPlaying(true);
|
||||
}
|
||||
|
||||
|
|
|
@ -805,7 +805,7 @@ void Resource::loadGlobalResources(int chapter, int actorsEntrance) {
|
|||
free(resourcePointer);
|
||||
} else {
|
||||
// The IHNM demo has a fixed music track and doesn't load a song table
|
||||
_vm->_music->setVolume(_vm->_musicVolume == 10 ? -1 : _vm->_musicVolume * 25, 1);
|
||||
_vm->_music->setVolume(_vm->_musicVolume, 1);
|
||||
_vm->_music->play(3, MUSIC_LOOP);
|
||||
free(resourcePointer);
|
||||
}
|
||||
|
|
|
@ -1465,7 +1465,7 @@ void Script::sfPlayMusic(SCRIPTFUNC_PARAMS) {
|
|||
int16 param = thread->pop() + 9;
|
||||
|
||||
if (param >= 9 && param <= 34) {
|
||||
_vm->_music->setVolume(_vm->_musicVolume == 10 ? -1 : _vm->_musicVolume * 25, 1);
|
||||
_vm->_music->setVolume(_vm->_musicVolume, 1);
|
||||
_vm->_music->play(param);
|
||||
} else {
|
||||
_vm->_music->stop();
|
||||
|
@ -1482,7 +1482,7 @@ void Script::sfPlayMusic(SCRIPTFUNC_PARAMS) {
|
|||
if (param1 >= _vm->_music->_songTableLen) {
|
||||
warning("sfPlayMusic: Wrong song number (%d > %d)", param1, _vm->_music->_songTableLen - 1);
|
||||
} else {
|
||||
_vm->_music->setVolume(_vm->_musicVolume == 10 ? -1 : _vm->_musicVolume * 25, 1);
|
||||
_vm->_music->setVolume(_vm->_musicVolume, 1);
|
||||
_vm->_music->play(_vm->_music->_songTable[param1], param2 ? MUSIC_LOOP : MUSIC_NORMAL);
|
||||
if (!_vm->_scene->haveChapterPointsChanged()) {
|
||||
_vm->_scene->setCurrentMusicTrack(param1);
|
||||
|
@ -1928,7 +1928,7 @@ void Script::sfQueueMusic(SCRIPTFUNC_PARAMS) {
|
|||
if (param1 >= _vm->_music->_songTableLen) {
|
||||
warning("sfQueueMusic: Wrong song number (%d > %d)", param1, _vm->_music->_songTableLen - 1);
|
||||
} else {
|
||||
_vm->_music->setVolume(_vm->_musicVolume == 10 ? -1 : _vm->_musicVolume * 25, 1);
|
||||
_vm->_music->setVolume(_vm->_musicVolume, 1);
|
||||
event.type = kEvTOneshot;
|
||||
event.code = kMusicEvent;
|
||||
event.param = _vm->_music->_songTable[param1];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue