diff options
author | Martin Kiewitz | 2010-01-01 14:33:20 +0000 |
---|---|---|
committer | Martin Kiewitz | 2010-01-01 14:33:20 +0000 |
commit | 810478e07ffe3be1b00242477d38ae6fbfbe85b4 (patch) | |
tree | cd53a073b232fcb6d892bea3658f618122f9d425 /engines | |
parent | 25e111bcac879bf9798e1b171a79ae5bc3237796 (diff) | |
download | scummvm-rg350-810478e07ffe3be1b00242477d38ae6fbfbe85b4.tar.gz scummvm-rg350-810478e07ffe3be1b00242477d38ae6fbfbe85b4.tar.bz2 scummvm-rg350-810478e07ffe3be1b00242477d38ae6fbfbe85b4.zip |
SCI/newmusic: better solution for volume - using int16 during fade, volume is now byte again
svn-id: r46829
Diffstat (limited to 'engines')
-rw-r--r-- | engines/sci/sfx/music.cpp | 8 | ||||
-rw-r--r-- | engines/sci/sfx/music.h | 2 |
2 files changed, 6 insertions, 4 deletions
diff --git a/engines/sci/sfx/music.cpp b/engines/sci/sfx/music.cpp index 9d01c2266e..c45cc8c2d9 100644 --- a/engines/sci/sfx/music.cpp +++ b/engines/sci/sfx/music.cpp @@ -559,13 +559,15 @@ void MusicEntry::doFade(Audio::Mixer *mixer) { if (fadeTicker) fadeTicker--; else { + int16 fadeVolume = volume; fadeTicker = fadeTickerStep; - volume += fadeStep; - if (((fadeStep > 0) && (volume >= fadeTo)) || ((fadeStep < 0) && (volume <= fadeTo))) { - volume = fadeTo; + fadeVolume += fadeStep; + if (((fadeStep > 0) && (fadeVolume >= fadeTo)) || ((fadeStep < 0) && (fadeVolume <= fadeTo))) { + fadeVolume = fadeTo; fadeStep = 0; signal = SIGNAL_OFFSET; } + volume = fadeVolume; if (pMidiParser) pMidiParser->setVolume(volume); diff --git a/engines/sci/sfx/music.h b/engines/sci/sfx/music.h index 34925fe127..f1d5edf53c 100644 --- a/engines/sci/sfx/music.h +++ b/engines/sci/sfx/music.h @@ -80,7 +80,7 @@ public: uint16 signal; byte prio; uint16 loop; - int16 volume; + byte volume; byte hold; int16 pauseCounter; |