[Scummvm-cvs-logs] SF.net SVN: scummvm:[33559] scummvm/branches/branch-0-12-0/engines/drascula /sound.cpp

eriktorbjorn at users.sourceforge.net eriktorbjorn at users.sourceforge.net
Sun Aug 3 09:42:17 CEST 2008


Revision: 33559
          http://scummvm.svn.sourceforge.net/scummvm/?rev=33559&view=rev
Author:   eriktorbjorn
Date:     2008-08-03 07:42:16 +0000 (Sun, 03 Aug 2008)

Log Message:
-----------
Backported fix for bug #2021902 ("DRASCULA: Can't adjust the volume inside the
game").

Modified Paths:
--------------
    scummvm/branches/branch-0-12-0/engines/drascula/sound.cpp

Modified: scummvm/branches/branch-0-12-0/engines/drascula/sound.cpp
===================================================================
--- scummvm/branches/branch-0-12-0/engines/drascula/sound.cpp	2008-08-03 07:40:04 UTC (rev 33558)
+++ scummvm/branches/branch-0-12-0/engines/drascula/sound.cpp	2008-08-03 07:42:16 UTC (rev 33559)
@@ -37,23 +37,25 @@
 }
 
 void DrasculaEngine::volumeControls() {
-	int masterVolume, voiceVolume, musicVolume;
-
 	copyRect(1, 56, 73, 63, 177, 97, tableSurface, screenSurface);
 	updateScreen(73, 63, 73, 63, 177, 97, screenSurface);
 
-	masterVolume = 72 + 61 - ((_mixer->getVolumeForSoundType(Audio::Mixer::kPlainSoundType) / 16) * 4);
-	voiceVolume = 72 + 61 - ((_mixer->getVolumeForSoundType(Audio::Mixer::kSFXSoundType) / 16) * 4);
-	musicVolume = 72 + 61 - ((_mixer->getVolumeForSoundType(Audio::Mixer::kMusicSoundType) / 16) * 4);
-
 	for (;;) {
+		int masterVolume = CLIP((_mixer->getVolumeForSoundType(Audio::Mixer::kPlainSoundType) / 16), 0, 15);
+		int voiceVolume = CLIP((_mixer->getVolumeForSoundType(Audio::Mixer::kSFXSoundType) / 16), 0, 15);
+		int musicVolume = CLIP((_mixer->getVolumeForSoundType(Audio::Mixer::kMusicSoundType) / 16), 0, 15);
+
+		int masterVolumeY = 72 + 61 - masterVolume * 4;
+		int voiceVolumeY = 72 + 61 - voiceVolume * 4;
+		int musicVolumeY = 72 + 61 - musicVolume * 4;
+
 		updateRoom();
 
 		copyRect(1, 56, 73, 63, 177, 97, tableSurface, screenSurface);
 
-		copyBackground(183, 56, 82, masterVolume, 39, 2 + ((_mixer->getVolumeForSoundType(Audio::Mixer::kPlainSoundType) / 16) * 4), tableSurface, screenSurface);
-		copyBackground(183, 56, 138, voiceVolume, 39, 2 + ((_mixer->getVolumeForSoundType(Audio::Mixer::kSFXSoundType) / 16) * 4), tableSurface, screenSurface);
-		copyBackground(183, 56, 194, musicVolume, 39, 2 + ((_mixer->getVolumeForSoundType(Audio::Mixer::kMusicSoundType) / 16) * 4), tableSurface, screenSurface);
+		copyBackground(183, 56, 82, masterVolumeY, 39, 2 + masterVolume * 4, tableSurface, screenSurface);
+		copyBackground(183, 56, 138, voiceVolumeY, 39, 2 + voiceVolume * 4, tableSurface, screenSurface);
+		copyBackground(183, 56, 194, musicVolumeY, 39, 2 + musicVolume * 4, tableSurface, screenSurface);
 
 		setCursorTable();
 
@@ -68,18 +70,15 @@
 		if (leftMouseButton == 1) {
 			delay(100);
 			if (mouseX > 80 && mouseX < 121) {
-				updateVolume(Audio::Mixer::kPlainSoundType, mouseY);
-				masterVolume = 72 + 61 - ((_mixer->getVolumeForSoundType(Audio::Mixer::kPlainSoundType) / 16) * 4);
+				updateVolume(Audio::Mixer::kPlainSoundType, masterVolumeY);
 			}
 
 			if (mouseX > 136 && mouseX < 178) {
-				updateVolume(Audio::Mixer::kSFXSoundType, mouseY);
-				voiceVolume = 72 + 61 - ((_mixer->getVolumeForSoundType(Audio::Mixer::kSFXSoundType) / 16) * 4);
+				updateVolume(Audio::Mixer::kSFXSoundType, voiceVolumeY);
 			}
 
 			if (mouseX > 192 && mouseX < 233) {
-				updateVolume(Audio::Mixer::kMusicSoundType, mouseY);
-				musicVolume = 72 + 61 - ((_mixer->getVolumeForSoundType(Audio::Mixer::kMusicSoundType) / 16) * 4);
+				updateVolume(Audio::Mixer::kMusicSoundType, musicVolumeY);
 			}
 		}
 


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