[Scummvm-cvs-logs] SF.net SVN: scummvm:[34349] scummvm/trunk/engines/saga

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Fri Sep 5 15:02:04 CEST 2008


Revision: 34349
          http://scummvm.svn.sourceforge.net/scummvm/?rev=34349&view=rev
Author:   thebluegr
Date:     2008-09-05 13:02:03 +0000 (Fri, 05 Sep 2008)

Log Message:
-----------
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

Modified Paths:
--------------
    scummvm/trunk/engines/saga/interface.cpp
    scummvm/trunk/engines/saga/music.cpp
    scummvm/trunk/engines/saga/rscfile.cpp
    scummvm/trunk/engines/saga/sfuncs.cpp

Modified: scummvm/trunk/engines/saga/interface.cpp
===================================================================
--- scummvm/trunk/engines/saga/interface.cpp	2008-09-05 12:53:43 UTC (rev 34348)
+++ scummvm/trunk/engines/saga/interface.cpp	2008-09-05 13:02:03 UTC (rev 34349)
@@ -1646,13 +1646,15 @@
 		}
 		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 @@
 			_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 @@
 		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;

Modified: scummvm/trunk/engines/saga/music.cpp
===================================================================
--- scummvm/trunk/engines/saga/music.cpp	2008-09-05 12:53:43 UTC (rev 34348)
+++ scummvm/trunk/engines/saga/music.cpp	2008-09-05 13:02:03 UTC (rev 34349)
@@ -404,7 +404,7 @@
 }
 
 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 @@
 	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::resume(void) {
-	_player->setVolume(_vm->_musicVolume == 10 ? 255 : _vm->_musicVolume * 25);
+	_player->setVolume(_vm->_musicVolume);
 	_player->setPlaying(true);
 }
 

Modified: scummvm/trunk/engines/saga/rscfile.cpp
===================================================================
--- scummvm/trunk/engines/saga/rscfile.cpp	2008-09-05 12:53:43 UTC (rev 34348)
+++ scummvm/trunk/engines/saga/rscfile.cpp	2008-09-05 13:02:03 UTC (rev 34349)
@@ -805,7 +805,7 @@
 		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);
 	}

Modified: scummvm/trunk/engines/saga/sfuncs.cpp
===================================================================
--- scummvm/trunk/engines/saga/sfuncs.cpp	2008-09-05 12:53:43 UTC (rev 34348)
+++ scummvm/trunk/engines/saga/sfuncs.cpp	2008-09-05 13:02:03 UTC (rev 34349)
@@ -1465,7 +1465,7 @@
 		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 @@
 		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 @@
 	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];


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list